setMinDepth($min_depth); $this->assertEquals($expected, $parameters->minDepth); } /** * Tests addExpandedParents(). * * @covers ::addExpandedParents */ public function testAddExpanded() { $parameters = new MenuTreeParameters(); // Verify default value. $this->assertEquals([], $parameters->expandedParents); // Add actual menu link plugin IDs to be expanded. $parameters->addExpandedParents(['foo', 'bar', 'baz']); $this->assertEquals(['foo', 'bar', 'baz'], $parameters->expandedParents); // Add additional menu link plugin IDs; they should be merged, not replacing // the old ones. $parameters->addExpandedParents(['qux', 'quux']); $this->assertEquals(['foo', 'bar', 'baz', 'qux', 'quux'], $parameters->expandedParents); // Add pre-existing menu link plugin IDs; they should not be added again; // this is a set. $parameters->addExpandedParents(['bar', 'quux']); $this->assertEquals(['foo', 'bar', 'baz', 'qux', 'quux'], $parameters->expandedParents); } /** * Tests addCondition(). * * @covers ::addCondition */ public function testAddCondition() { $parameters = new MenuTreeParameters(); // Verify default value. $this->assertEquals([], $parameters->conditions); // Add a condition. $parameters->addCondition('expanded', 1); $this->assertEquals(['expanded' => 1], $parameters->conditions); // Add another condition. $parameters->addCondition('has_children', 0); $this->assertEquals(['expanded' => 1, 'has_children' => 0], $parameters->conditions); // Add a condition with an operator. $parameters->addCondition('provider', ['module1', 'module2'], 'IN'); $this->assertEquals(['expanded' => 1, 'has_children' => 0, 'provider' => [['module1', 'module2'], 'IN']], $parameters->conditions); // Add another condition with an operator. $parameters->addCondition('id', 1337, '<'); $this->assertEquals(['expanded' => 1, 'has_children' => 0, 'provider' => [['module1', 'module2'], 'IN'], 'id' => [1337, '<']], $parameters->conditions); // It's impossible to add two conditions on the same field; in that case, // the old condition will be overwritten. $parameters->addCondition('provider', 'other_module'); $this->assertEquals(['expanded' => 1, 'has_children' => 0, 'provider' => 'other_module', 'id' => [1337, '<']], $parameters->conditions); } /** * Tests onlyEnabledLinks(). * * @covers ::onlyEnabledLinks */ public function testOnlyEnabledLinks() { $parameters = new MenuTreeParameters(); $parameters->onlyEnabledLinks(); $this->assertEquals(1, $parameters->conditions['enabled']); } /** * Tests setTopLevelOnly(). * * @covers ::setTopLevelOnly */ public function testSetTopLevelOnly() { $parameters = new MenuTreeParameters(); $parameters->setTopLevelOnly(); $this->assertEquals(1, $parameters->maxDepth); } /** * Tests excludeRoot(). * * @covers ::excludeRoot */ public function testExcludeRoot() { $parameters = new MenuTreeParameters(); $parameters->excludeRoot(); $this->assertEquals(1, $parameters->minDepth); } }