Chris@0: adminUser = $this->drupalCreateUser(['access toolbar', 'translate interface', 'administer languages', 'access administration pages']); Chris@0: $this->drupalLogin($this->adminUser); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests that toolbar classes don't change when adding a translation. Chris@0: */ Chris@0: public function testToolbarClasses() { Chris@0: $langcode = 'es'; Chris@0: Chris@0: // Add Spanish. Chris@0: $edit['predefined_langcode'] = $langcode; Chris@0: $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add language')); Chris@0: Chris@0: // The menu item 'Structure' in the toolbar will be translated. Chris@0: $menu_item = 'Structure'; Chris@0: Chris@0: // Visit a page that has the string on it so it can be translated. Chris@0: $this->drupalGet($langcode . '/admin/structure'); Chris@0: Chris@0: // Search for the menu item. Chris@0: $search = [ Chris@0: 'string' => $menu_item, Chris@0: 'langcode' => $langcode, Chris@0: 'translation' => 'untranslated', Chris@0: ]; Chris@0: $this->drupalPostForm('admin/config/regional/translate', $search, t('Filter')); Chris@0: // Make sure will be able to translate the menu item. Chris@0: $this->assertNoText('No strings available.', 'Search found the menu item as untranslated.'); Chris@0: Chris@0: // Check that the class is on the item before we translate it. Chris@0: $xpath = $this->xpath('//a[contains(@class, "icon-system-admin-structure")]'); Chris@0: $this->assertEqual(count($xpath), 1, 'The menu item class ok before translation.'); Chris@0: Chris@0: // Translate the menu item. Chris@0: $menu_item_translated = $this->randomMachineName(); Chris@0: $textarea = current($this->xpath('//textarea')); Chris@0: $lid = (string) $textarea->getAttribute('name'); Chris@0: $edit = [ Chris@0: $lid => $menu_item_translated, Chris@0: ]; Chris@0: $this->drupalPostForm('admin/config/regional/translate', $edit, t('Save translations')); Chris@0: Chris@0: // Search for the translated menu item. Chris@0: $search = [ Chris@0: 'string' => $menu_item, Chris@0: 'langcode' => $langcode, Chris@0: 'translation' => 'translated', Chris@0: ]; Chris@0: $this->drupalPostForm('admin/config/regional/translate', $search, t('Filter')); Chris@0: // Make sure the menu item string was translated. Chris@0: $this->assertText($menu_item_translated, 'Search found the menu item as translated: ' . $menu_item_translated . '.'); Chris@0: Chris@0: // Go to another page in the custom language and make sure the menu item Chris@0: // was translated. Chris@0: $this->drupalGet($langcode . '/admin/structure'); Chris@0: $this->assertText($menu_item_translated, 'Found the menu translated.'); Chris@0: Chris@0: // Toolbar icons are included based on the presence of a specific class on Chris@0: // the menu item. Ensure that class also exists for a translated menu item. Chris@0: $xpath = $this->xpath('//a[contains(@class, "icon-system-admin-structure")]'); Chris@0: $this->assertEqual(count($xpath), 1, 'The menu item class is the same.'); Chris@0: } Chris@0: Chris@0: }