aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/lib/classes/ActionMenuTest.php
blob: ece2c4e8b4d467ee9edd9e588d7de86b965801b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
/**
 * @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
 * @since Stud.IP 5.4
 */
class ActionMenuTest extends \Codeception\Test\Unit
{
    public function setup(): void
    {
        Config::set(new Config(['ACTION_MENU_THRESHOLD' => 1]));
    }

    public function testClassShouldExist(): void
    {
        $this->assertTrue(class_exists(ActionMenu::class));
    }

    /**
     * @covers ActionMenu::get
     */
    public function testInstanceGeneration(): void
    {
        $actionmenu = ActionMenu::get();

        $this->assertInstanceOf(ActionMenu::class, $actionmenu);
        $this->assertNotSame($actionmenu, ActionMenu::get());
    }

    public function testThreshold(): void
    {
        $actionmenu = ActionMenu::get();

        $this->assertEquals(ActionMenu::RENDERING_MODE_ICONS, $actionmenu->getRenderingMode());

        $actionmenu->addLink('#1', 'foo');
        $this->assertEquals(ActionMenu::RENDERING_MODE_ICONS, $actionmenu->getRenderingMode());

        $actionmenu->addLink('#2', 'bar');
        $this->assertEquals(ActionMenu::RENDERING_MODE_MENU, $actionmenu->getRenderingMode());
    }

    /**
     * @covers ActionMenu::setRenderingMode
     * @covers ActionMenu::getRenderingMode
     */
    public function testForcingOfRenderingMode(): void
    {
        $actionmenu = ActionMenu::get();
        $this->assertEquals(ActionMenu::RENDERING_MODE_ICONS, $actionmenu->getRenderingMode());

        $actionmenu->setRenderingMode(ActionMenu::RENDERING_MODE_ICONS);
        $this->assertEquals(ActionMenu::RENDERING_MODE_ICONS, $actionmenu->getRenderingMode());

        $actionmenu->setRenderingMode(ActionMenu::RENDERING_MODE_MENU);
        $this->assertEquals(ActionMenu::RENDERING_MODE_MENU, $actionmenu->getRenderingMode());

        $actionmenu->setRenderingMode(null);
        $this->assertEquals(ActionMenu::RENDERING_MODE_ICONS, $actionmenu->getRenderingMode());
    }
}