123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- /**
- * ownCloud
- *
- * @author Joas Schilling
- * @copyright 2015 Joas Schilling nickvergessen@owncloud.com
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
- namespace Test;
- use OC\NavigationManager;
- class NavigationManagerTest extends TestCase {
- /** @var \OC\NavigationManager */
- protected $navigationManager;
- protected function setUp() {
- parent::setUp();
- $this->navigationManager = new NavigationManager();
- }
- public function addArrayData() {
- return [
- [
- [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- 'icon' => 'optional',
- 'href' => 'url',
- ],
- [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- 'icon' => 'optional',
- 'href' => 'url',
- 'active' => false,
- ],
- ],
- [
- [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- //'icon' => 'optional',
- 'href' => 'url',
- 'active' => true,
- ],
- [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- 'icon' => '',
- 'href' => 'url',
- 'active' => false,
- ],
- ],
- ];
- }
- /**
- * @dataProvider addArrayData
- *
- * @param array $entry
- * @param array $expectedEntry
- */
- public function testAddArray(array $entry, array $expectedEntry) {
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists');
- $this->navigationManager->add($entry);
- $navigationEntries = $this->navigationManager->getAll();
- $this->assertEquals(1, sizeof($navigationEntries), 'Expected that 1 navigation entry exists');
- $this->assertEquals($expectedEntry, $navigationEntries[0]);
- $this->navigationManager->clear();
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists after clear()');
- }
- /**
- * @dataProvider addArrayData
- *
- * @param array $entry
- * @param array $expectedEntry
- */
- public function testAddClosure(array $entry, array $expectedEntry) {
- global $testAddClosureNumberOfCalls;
- $testAddClosureNumberOfCalls = 0;
- $this->navigationManager->add(function () use ($entry) {
- global $testAddClosureNumberOfCalls;
- $testAddClosureNumberOfCalls++;
- return $entry;
- });
- $this->assertEquals(0, $testAddClosureNumberOfCalls, 'Expected that the closure is not called by add()');
- $navigationEntries = $this->navigationManager->getAll();
- $this->assertEquals(1, $testAddClosureNumberOfCalls, 'Expected that the closure is called by getAll()');
- $this->assertEquals(1, sizeof($navigationEntries), 'Expected that 1 navigation entry exists');
- $this->assertEquals($expectedEntry, $navigationEntries[0]);
- $navigationEntries = $this->navigationManager->getAll();
- $this->assertEquals(1, $testAddClosureNumberOfCalls, 'Expected that the closure is only called once for getAll()');
- $this->assertEquals(1, sizeof($navigationEntries), 'Expected that 1 navigation entry exists');
- $this->assertEquals($expectedEntry, $navigationEntries[0]);
- $this->navigationManager->clear();
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists after clear()');
- }
- public function testAddArrayClearGetAll() {
- $entry = [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- 'icon' => 'optional',
- 'href' => 'url',
- ];
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists');
- $this->navigationManager->add($entry);
- $this->navigationManager->clear();
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists after clear()');
- }
- public function testAddClosureClearGetAll() {
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists');
- $entry = [
- 'id' => 'entry id',
- 'name' => 'link text',
- 'order' => 1,
- 'icon' => 'optional',
- 'href' => 'url',
- ];
- global $testAddClosureNumberOfCalls;
- $testAddClosureNumberOfCalls = 0;
- $this->navigationManager->add(function () use ($entry) {
- global $testAddClosureNumberOfCalls;
- $testAddClosureNumberOfCalls++;
- return $entry;
- });
- $this->assertEquals(0, $testAddClosureNumberOfCalls, 'Expected that the closure is not called by add()');
- $this->navigationManager->clear();
- $this->assertEquals(0, $testAddClosureNumberOfCalls, 'Expected that the closure is not called by clear()');
- $this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists after clear()');
- $this->assertEquals(0, $testAddClosureNumberOfCalls, 'Expected that the closure is not called by getAll()');
- }
- }
|