| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: xmlsitemap_i18n.test,v 1.1.2.12 2010/04/29 16:22:15 davereid Exp $ 3 4 /** 5 * @file 6 * Unit tests for the xmlsitemap_i18n module. 7 */ 8 9 /** 10 * Common base test class for XML sitemap internationalization tests. 11 */ 12 class XMLSitemapI18nWebTestCase extends XMLSitemapTestHelper { 13 protected $admin_user; 14 15 /** 16 * Set up an administrative user account and testing keys. 17 */ 18 function setUp() { 19 // Call parent::setUp() allowing test cases to pass further modules. 20 $modules = func_get_args(); 21 $modules = array_merge(array('locale', 'translation', 'i18n', 'xmlsitemap_i18n'), $modules); 22 call_user_func_array(array($this, 'parent::setUp'), $modules); 23 24 // Add predefined language and reset the locale cache. 25 require_once './includes/locale.inc'; 26 locale_add_language('fr', NULL, NULL, LANGUAGE_LTR, '', 'fr'); 27 language_list('language', TRUE); 28 drupal_init_language(); 29 30 variable_set('xmlsitemap_languages', array('en', 'fr')); 31 variable_set('language_negotiation', LANGUAGE_NEGOTIATION_PATH); 32 //variable_set('language_default', xmlsitemap_language_load('en')); 33 34 // Create the two different language-context sitemaps. 35 db_query("DELETE FROM {xmlsitemap_sitemap}"); 36 xmlsitemap_sitemap_save(array('context' => array('language' => 'en'))); 37 xmlsitemap_sitemap_save(array('context' => array('language' => 'fr'))); 38 } 39 } 40 41 class XMLSitemapI18nTest extends XMLSitemapI18nWebTestCase { 42 public static function getInfo() { 43 return array( 44 'name' => 'XML sitemap i18n tests', 45 'description' => 'Functional and integration tests for the XML sitemap and internationalization modules.', 46 'group' => 'XML sitemap', 47 'dependencies' => array('i18n'), 48 ); 49 } 50 51 function testLanguageSelection() { 52 // Create our three different language nodes. 53 $node = $this->addSitemapLink(array('type' => 'node', 'language' => '')); 54 $node_en = $this->addSitemapLink(array('type' => 'node', 'language' => 'en')); 55 $node_fr = $this->addSitemapLink(array('type' => 'node', 'language' => 'fr')); 56 57 // Create three non-node language nodes. 58 $link = $this->addSitemapLink(array('language' => '')); 59 $link_en = $this->addSitemapLink(array('language' => 'en')); 60 $link_fr = $this->addSitemapLink(array('language' => 'fr')); 61 62 variable_set('i18n_selection_mode', 'off'); 63 $this->regenerateSitemap(); 64 $this->drupalGetSitemap('en'); 65 $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); 66 $this->drupalGetSitemap('fr'); 67 $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); 68 69 variable_set('i18n_selection_mode', 'simple'); 70 $this->regenerateSitemap(); 71 $this->drupalGetSitemap('en'); 72 $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); 73 $this->assertNoRawSitemapLinks($node_fr, $link_fr); 74 $this->drupalGetSitemap('fr'); 75 $this->assertRawSitemapLinks($node, $node_fr, $link, $link_fr); 76 $this->assertNoRawSitemapLinks($node_en, $link_en); 77 78 variable_set('i18n_selection_mode', 'mixed'); 79 $this->regenerateSitemap(); 80 $this->drupalGetSitemap('en'); 81 $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); 82 $this->assertNoRawSitemapLinks($node_fr, $link_fr); 83 $this->drupalGetSitemap('fr'); 84 $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); 85 86 variable_set('i18n_selection_mode', 'default'); 87 $this->regenerateSitemap(); 88 $this->drupalGetSitemap('en'); 89 $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); 90 $this->assertNoRawSitemapLinks($node_fr, $link_fr); 91 $this->drupalGetSitemap('fr'); 92 $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); 93 $this->assertNoRawSitemapLinks($node_fr, $link_fr); 94 95 // With strict mode, the language neutral node should not be found, but the 96 // language neutral non-node should be. 97 variable_set('i18n_selection_mode', 'strict'); 98 $this->regenerateSitemap(); 99 $this->drupalGetSitemap('en'); 100 $this->assertRawSitemapLinks($node_en, $link, $link_en); 101 $this->assertNoRawSitemapLinks($node, $node_fr, $link_fr); 102 $this->drupalGetSitemap('fr'); 103 $this->assertRawSitemapLinks($node_fr, $link, $link_fr); 104 $this->assertNoRawSitemapLinks($node, $node_en, $link_en); 105 } 106 } 107 108 class XMLSitemapI18nNodeTest extends XMLSitemapI18nWebTestCase { 109 public static function getInfo() { 110 return array( 111 'name' => 'XML sitemap i18n node tests', 112 'description' => 'Functional and integration tests for the XML sitemap node and internationalization modules.', 113 'group' => 'XML sitemap', 114 'dependencies' => array('i18n'), 115 ); 116 } 117 118 function setUp() { 119 parent::setUp('xmlsitemap_node'); 120 121 variable_set('language_content_type_page', 1); 122 $this->admin_user = $this->drupalCreateUser(array('administer nodes')); 123 $this->drupalLogin($this->admin_user); 124 } 125 126 function testNodeLanguageData() { 127 $node = $this->drupalCreateNode(array()); 128 129 $this->drupalPost('node/' . $node->nid . '/edit', array('language' => 'en'), t('Save')); 130 $link = $this->assertSitemapLink('node', $node->nid); 131 $this->assertIdentical($link['language'], 'en'); 132 133 $this->drupalPost('node/' . $node->nid . '/edit', array('language' => 'fr'), t('Save')); 134 $link = $this->assertSitemapLink('node', $node->nid); 135 $this->assertIdentical($link['language'], 'fr'); 136 } 137 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |