[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/xmlsitemap/xmlsitemap_i18n/ -> xmlsitemap_i18n.test (source)

   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  }


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7