pathauto_i18n.test.inc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * @file
  4. * Tests for the pathauto_i18n node module.
  5. */
  6. /**
  7. * Test functionality for nodes when language selected.
  8. */
  9. class Pathautoi18nTest extends DrupalWebTestCase {
  10. /**
  11. * Fully loaded user object of an admin user that has required access rights.
  12. *
  13. * @var object
  14. */
  15. protected $admin;
  16. /**
  17. * Default language.
  18. */
  19. protected $contentLanguage;
  20. /**
  21. * Available languages.
  22. */
  23. protected $availableLanguages;
  24. /**
  25. * Title.
  26. */
  27. protected $title;
  28. /**
  29. * Prepare test.
  30. */
  31. public function prepareTest($modules) {
  32. $modules[] = 'pathauto_i18n';
  33. parent::setUp($modules);
  34. $this->admin = $this->drupalCreateUser(array(
  35. 'access administration pages',
  36. 'administer nodes',
  37. 'administer languages',
  38. 'administer content types',
  39. 'administer url aliases',
  40. 'create url aliases',
  41. 'administer pathauto',
  42. ));
  43. $this->drupalLogin($this->admin);
  44. // Set content language and all available languages.
  45. $this->contentLanguage = 'en';
  46. $this->availableLanguages = array(
  47. 'en',
  48. 'fr',
  49. 'de',
  50. );
  51. $this->title = 'pathautoi18n';
  52. foreach ($this->availableLanguages as $language) {
  53. if ($language != $this->contentLanguage) {
  54. $this->drupalPost('admin/config/regional/language/add', array('langcode' => $language), t('Add language'));
  55. }
  56. }
  57. drupal_static_reset('language_list');
  58. // Enabel multilingual support for content type.
  59. $this->drupalPost('admin/structure/types/manage/article', array('language_content_type' => 1), t('Save content type'));
  60. }
  61. /**
  62. * Set settings to test cleanstring.
  63. */
  64. public function setCleanStringSettings() {
  65. $data = array();
  66. foreach ($this->availableLanguages as $language) {
  67. $data['pathauto_ignore_words_' . $language . '_language'] = $language;
  68. }
  69. $this->drupalPost('admin/config/search/path/settings', $data, t('Save configuration'));
  70. }
  71. /**
  72. * Return suffix for certain language.
  73. */
  74. public function getCleanStringSuffix($skip_language) {
  75. $suffix = array();
  76. foreach ($this->availableLanguages as $language) {
  77. if ($language != $skip_language) {
  78. $suffix[] = $language;
  79. }
  80. }
  81. return implode('-', $suffix);
  82. }
  83. }