execute(); $sitemap = new stdClass(); $sitemap->context = array('language' => 'en'); xmlsitemap_sitemap_save($sitemap); $sitemap = new stdClass(); $sitemap->context = array('language' => 'fr'); xmlsitemap_sitemap_save($sitemap); } } /** * I18n Test. */ class XMLSitemapI18nTest extends XMLSitemapI18nWebTestCase { /** * Get Info. */ public static function getInfo() { return array( 'name' => 'XML sitemap i18n tests', 'description' => 'Functional and integration tests for the XML sitemap and internationalization modules.', 'group' => 'XML sitemap', 'dependencies' => array('i18n', 'disable-this-test-for-now'), ); } /** * Language Selection. */ public function testLanguageSelection() { // Create our three different language nodes. $node = $this->addSitemapLink(array('type' => 'node', 'language' => LANGUAGE_NONE)); $node_en = $this->addSitemapLink(array('type' => 'node', 'language' => 'en')); $node_fr = $this->addSitemapLink(array('type' => 'node', 'language' => 'fr')); // Create three non-node language nodes. $link = $this->addSitemapLink(array('language' => LANGUAGE_NONE)); $link_en = $this->addSitemapLink(array('language' => 'en')); $link_fr = $this->addSitemapLink(array('language' => 'fr')); variable_set('i18n_selection_mode', 'off'); $this->regenerateSitemap(); $this->drupalGetSitemap(array('language' => 'en')); $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); $this->drupalGetSitemap(array('language' => 'fr')); $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); variable_set('i18n_selection_mode', 'simple'); $this->regenerateSitemap(); $this->drupalGetSitemap(array('language' => 'en')); $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); $this->assertNoRawSitemapLinks($node_fr, $link_fr); $this->drupalGetSitemap(array('language' => 'fr')); $this->assertRawSitemapLinks($node, $node_fr, $link, $link_fr); $this->assertNoRawSitemapLinks($node_en, $link_en); variable_set('i18n_selection_mode', 'mixed'); $this->regenerateSitemap(); $this->drupalGetSitemap(array('language' => 'en')); $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); $this->assertNoRawSitemapLinks($node_fr, $link_fr); $this->drupalGetSitemap(array('language' => 'fr')); $this->assertRawSitemapLinks($node, $node_en, $node_fr, $link, $link_en, $link_fr); variable_set('i18n_selection_mode', 'default'); $this->regenerateSitemap(); $this->drupalGetSitemap(array('language' => 'en')); $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); $this->assertNoRawSitemapLinks($node_fr, $link_fr); $this->drupalGetSitemap(array('language' => 'fr')); $this->assertRawSitemapLinks($node, $node_en, $link, $link_en); $this->assertNoRawSitemapLinks($node_fr, $link_fr); // With strict mode, the language neutral node should not be found, but the // language neutral non-node should be. variable_set('i18n_selection_mode', 'strict'); $this->regenerateSitemap(); $this->drupalGetSitemap(array('language' => 'en')); $this->assertRawSitemapLinks($node_en, $link, $link_en); $this->assertNoRawSitemapLinks($node, $node_fr, $link_fr); $this->drupalGetSitemap(array('language' => 'fr')); $this->assertRawSitemapLinks($node_fr, $link, $link_fr); $this->assertNoRawSitemapLinks($node, $node_en, $link_en); } } /** * Node Test. */ class XMLSitemapI18nNodeTest extends XMLSitemapI18nWebTestCase { /** * Get Info. */ public static function getInfo() { return array( 'name' => 'XML sitemap i18n node tests', 'description' => 'Functional and integration tests for the XML sitemap node and internationalization modules.', 'group' => 'XML sitemap', 'dependencies' => array('i18n', 'disable-this-test-for-now'), ); } /** * Setup. */ public function setUp($modules = array()) { $modules[] = 'xmlsitemap_node'; parent::setUp($modules); variable_set('language_content_type_page', 1); $this->admin_user = $this->drupalCreateUser(array('administer nodes')); $this->drupalLogin($this->admin_user); } /** * Node Language Data. */ public function testNodeLanguageData() { $node = $this->drupalCreateNode(array()); $this->drupalPost('node/' . $node->nid . '/edit', array('language' => 'en'), t('Save')); $link = $this->assertSitemapLink('node', $node->nid); $this->assertIdentical($link['language'], 'en'); $this->drupalPost('node/' . $node->nid . '/edit', array('language' => 'fr'), t('Save')); $link = $this->assertSitemapLink('node', $node->nid); $this->assertIdentical($link['language'], 'fr'); } }