diff --git a/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php b/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php new file mode 100644 index 0000000..b076b29 --- /dev/null +++ b/core/modules/menu/lib/Drupal/menu/Tests/MenuLanguageTest.php @@ -0,0 +1,135 @@ + 'Menu language', + 'description' => 'Create menu in non-English language and menu link item.', + 'group' => 'Menu' + ); + } + + function setUp() { + parent::setUp(); + + // Create user. + $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer menu', 'create article content')); + $this->drupalLogin($this->admin_user); + + // Add some custom languages. + foreach (array('aa', 'bb', 'cc') as $language_code) { + $language = new Language(array( + 'langcode' => $language_code, + 'name' => $this->randomName(), + )); + language_save($language); + } + } + + /** + * Tests menu language settings. + */ + function testMenuLanguage() { + $menu_name = drupal_strtolower($this->randomName(16)); + $label = $this->randomName(16); +/* + $edit = array( + 'id' => $menu_name, + 'description' => '', + 'label' => $label, + 'langcode' => 'aa', + 'default_menu_links_language' => array('default_language' => array( + 'langcode' => 'bb', + 'language_show' => TRUE, + )) + ); + $this->drupalPost('admin/structure/menu/add', $edit, t('Save')); + $this->drupalGet('admin/structure/menu/manage/' . $menu_name); + + // Assert the new menu is in that language and the default menu link info. + $this->assertRaw($label, 'Custom menu was added.'); + // Assert menu langcode aa. + // Assert default_menu_links_language langcode bb. + // Assert default_menu_links_language language_show TRUE. + + // Make an article to link to. + $node1 = $this->drupalCreateNode(array('type' => 'article')); + + $item1 = $this->addMenuLink(0, 'node/' . $node1->nid, $menu_name); + // Edit menu link. + // Assert language select is there with default bb. + $this->assertMenuLink($menu_link->id(), array('menu_name' => $menu_name, 'link_path' => $link, 'has_children' => 0, 'plid' => $plid)); + + // Edit menu to change default menu link item language. + $menu = entity_edit('menu', array( + 'langcode' => 'cc', + )); + $edit = array( + 'link_path' => 'node/' . $node1->nid, + 'link_title' => $title, + 'description' => '', + 'parent' => $menu_name . ':' . 0, + ); + // Add menu link. + $this->drupalPost(NULL, $edit, t('Save')); + + $menu_links = entity_load_multiple_by_properties('menu_link', array('link_title' => $title)); + $menu_link = reset($menu_links); + $menu->save(); + $this->drupalGet('admin/structure/menu/manage/' . $menu_name); + + $item2 = $this->addMenuLink(0, 'node/' . $node1->nid, $menu_name); + // Edit menu link. + // Assert language select is there with default cc. + $this->assertMenuLink($menu_link->id(), array('menu_name' => $menu_name, 'link_path' => $link, 'has_children' => 0, 'plid' => $plid)); + + // Edit menu to change hide language select on menu link item add. + $edit = array( + 'link_path' => '', + 'link_title' => $title, + 'description' => '', + 'parent' => $menu_name . ':' . 0, + ); + // Add menu link. + $this->drupalPost(NULL, $edit, t('Save')); + + $menu_links = entity_load_multiple_by_properties('menu_link', array('link_title' => $title)); + $menu_link = reset($menu_links); + $this->drupalGet('admin/structure/menu/manage/' . $menu_name); + + // Edit menu link. + $item2 = $this->addMenuLink(0, , $menu_name); + $this->drupalGet("admin/structure/menu/manage/$menu_name/edit"); + $this->assertResponse(200); + + $title = '!link_' . $this->randomName(16); + // Assert language select not present. + $this->assertMenuLink($menu_link->id(), array('menu_name' => $menu_name, 'link_path' => $link, 'has_children' => 0, 'plid' => $plid)); + + // Delete custom menu. + // @todo Make an issue to add tests for deleting, and verifying config is + // also removed. +*/ + } + +}