View source
<?php
namespace Drupal\Tests\taxonomy_menu\Functional;
use Drupal\Tests\BrowserTestBase;
class TaxonomyMenuOperationsTest extends BrowserTestBase {
public static $modules = [
'taxonomy_menu',
'system',
'menu_ui',
'taxonomy',
'dblog',
];
protected $defaultTheme = 'stark';
public function setUp() {
parent::setUp();
$user1 = $this
->drupalCreateUser([
'administer site configuration',
'administer taxonomy',
]);
$this
->drupalLogin($user1);
$this
->drupalGet('admin/structure/taxonomy/add');
$edit = [
'vid' => 'test_tax_vocab',
'name' => 'Test',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$perms = [
'administer site configuration',
'administer taxonomy',
'administer menu',
];
$admin_user = $this
->drupalCreateUser($perms);
$this
->drupalLogin($admin_user);
$this
->drupalGet('admin/structure/taxonomy/manage/test_tax_vocab/add');
$edit = [
'name[0][value]' => 'test term 1',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->drupalGet('admin/structure/taxonomy/manage/test_tax_vocab/add');
$edit = [
'name[0][value]' => 'test term 1-A',
'parent[]' => '1',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->drupalGet('admin/structure/taxonomy/manage/test_tax_vocab/add');
$edit = [
'name[0][value]' => 'test term 2',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->drupalGet('admin/structure/menu/add');
$edit = [
'id' => 'test-menu',
'label' => 'Test',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->drupalGet('admin/structure/taxonomy_menu/add');
$edit = [
'id' => 'test_tax_menu',
'label' => 'test tax menu',
'vocabulary' => 'test_tax_vocab',
'menu' => 'test-menu',
'expanded' => 1,
'depth' => '1',
'menu_parent' => 'test-menu:',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
}
public function testTaxMenuCreate() {
$this
->drupalGet('admin/structure/menu/manage/test-menu');
$this
->assertSession()
->fieldExists('links[menu_plugin_id:taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.1][enabled]');
$this
->assertSession()
->fieldExists('links[menu_plugin_id:taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.2][enabled]');
$this
->assertSession()
->fieldExists('links[menu_plugin_id:taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.3][enabled]');
$this
->drupalGet('admin/structure/menu/link/taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.2/edit');
$this
->assertSession()
->fieldExists('menu_parent');
$this
->assertSession()
->fieldValueEquals('menu_parent', 'test-menu:taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.1');
}
public function testTaxTermCreate() {
$this
->drupalGet('admin/structure/taxonomy/manage/test_tax_vocab/add');
$edit = [
'name[0][value]' => 'test term 3',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->drupalGet('admin/structure/menu/manage/test-menu');
$this
->assertSession()
->fieldExists('links[menu_plugin_id:taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.3][enabled]');
}
public function testTaxTermDelete() {
$this
->drupalGet('taxonomy/term/3/delete');
$edit = [];
$this
->drupalPostForm(NULL, $edit, t('Delete'));
$this
->assertSession()
->fieldNotExists('enabled');
}
public function testTaxMenuLinkExpanded() {
$this
->drupalGet('admin/structure/menu/link/taxonomy_menu.menu_link:taxonomy_menu.menu_link.test_tax_menu.1/edit');
$this
->assertSession()
->fieldValueEquals('expanded', 1);
}
}