/
MenuTest.php
136 lines (102 loc) · 2.91 KB
/
MenuTest.php
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
namespace Nwidart\Menus\Tests;
use Nwidart\Menus\Menu;
use Nwidart\Menus\MenuBuilder;
class MenuTest extends BaseTestCase
{
/**
* @var Menu
*/
private $menu;
public function setUp() : void
{
parent::setUp();
$this->menu = app(Menu::class);
}
/** @test */
public function it_generates_an_empty_menu()
{
$this->menu->create('test', function (MenuBuilder $menu) {
});
$expected = <<<TEXT
<ul class="nav navbar-nav">
</ul>
TEXT;
self::assertEquals($expected, $this->menu->get('test'));
}
/** @test */
public function it_makes_is_an_alias_for_create()
{
$this->menu->make('test', function (MenuBuilder $menu) {
});
$expected = <<<TEXT
<ul class="nav navbar-nav">
</ul>
TEXT;
self::assertEquals($expected, $this->menu->get('test'));
}
/** @test */
public function it_render_is_an_alias_of_get()
{
$this->menu->make('test', function (MenuBuilder $menu) {
});
$expected = <<<TEXT
<ul class="nav navbar-nav">
</ul>
TEXT;
self::assertEquals($expected, $this->menu->render('test'));
}
/** @test */
public function it_can_get_the_instance_of_a_menu()
{
$this->menu->create('test', function (MenuBuilder $menu) {
});
$this->assertInstanceOf(MenuBuilder::class, $this->menu->instance('test'));
}
/** @test */
public function it_can_modify_a_menu_instance()
{
$this->menu->create('test', function (MenuBuilder $menu) {
});
$this->menu->modify('test', function (MenuBuilder $builder) {
$builder->url('hello', 'world');
});
$this->assertCount(1, $this->menu->instance('test'));
}
/** @test */
public function it_gets_a_partial_for_dropdown_styles()
{
$this->menu->create('test', function (MenuBuilder $menu) {
});
$this->assertContains('.dropdown-submenu', $this->menu->style());
}
/** @test */
public function it_can_get_all_menus()
{
$this->menu->create('main', function (MenuBuilder $menu) {
});
$this->menu->create('footer', function (MenuBuilder $menu) {
});
$this->assertCount(2, $this->menu->all());
}
/** @test */
public function it_can_count_menus()
{
$this->menu->create('main', function (MenuBuilder $menu) {
});
$this->menu->create('footer', function (MenuBuilder $menu) {
});
$this->assertEquals(2, $this->menu->count());
}
/** @test */
public function it_can_destroy_all_menus()
{
$this->menu->create('main', function (MenuBuilder $menu) {
});
$this->menu->create('footer', function (MenuBuilder $menu) {
});
$this->assertCount(2, $this->menu->all());
$this->menu->destroy();
$this->assertCount(0, $this->menu->all());
}
}