1+ <?php
2+
3+ namespace Tests \Unit ;
4+
5+ use Illuminate \Foundation \Testing \DatabaseMigrations ;
6+ use Illuminate \Foundation \Testing \RefreshDatabase ;
7+ use Illuminate \Foundation \Testing \WithFaker ;
8+ use Spatie \Permission \Models \Role ;
9+ use Tests \TestCase ;
10+ use App \Models \Menulist ;
11+ use App \Models \Menus ;
12+ use App \Models \Menurole ;
13+
14+ class MenuElementTest extends TestCase
15+ {
16+ use DatabaseMigrations;
17+
18+ public function testMenuElementsIndex (){
19+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
20+ Role::create (['name ' => 'admin ' ]);
21+ $ user ->assignRole ('admin ' );
22+ $ menulist = new Menulist ();
23+ $ menulist ->name = 'test2 ' ;
24+ $ menulist ->save ();
25+ $ menulist = new Menulist ();
26+ $ menulist ->name = 'test3 ' ;
27+ $ menulist ->save ();
28+ $ response = $ this ->actingAs ($ user )->get ('/menu/element?menu=2 ' );
29+ $ response ->assertSee ('<option value="1">test2</option> ' );
30+ $ response ->assertSee ('<option value="2" selected>test3</option> ' );
31+ $ response ->assertSee ('Menu Elements ' );
32+ }
33+
34+ public function testMenuCreate (){
35+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
36+ Role::create (['name ' => 'admin ' ]);
37+ $ user ->assignRole ('admin ' );
38+ $ menulist = new Menulist ();
39+ $ menulist ->name = 'test2 ' ;
40+ $ menulist ->save ();
41+ $ response = $ this ->actingAs ($ user )->get ('/menu/element/create ' );
42+ $ response ->assertSee ('<option value="1">test2</option> ' );
43+ $ response ->assertSee ('<input type="checkbox" name="role[]" value="admin" class="form-control"/> ' );
44+ $ response ->assertSee ('Create menu element ' );
45+ }
46+
47+ public function testMenuStore (){
48+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
49+ Role::create (['name ' => 'admin ' ]);
50+ $ user ->assignRole ('admin ' );
51+ $ menulist = new Menulist ();
52+ $ menulist ->name = 'test2 ' ;
53+ $ menulist ->save ();
54+ $ postArray = [
55+ 'menu ' => '1 ' ,
56+ 'role ' => [
57+ 'admin '
58+ ],
59+ 'name ' => 'test2 ' ,
60+ 'type ' => 'link ' ,
61+ 'href ' => 'test3 ' ,
62+ 'parent ' => '1 ' ,
63+ 'icon ' => 'test4 ' ,
64+ ];
65+ $ response = $ this ->actingAs ($ user )->post ('/menu/element/store ' , $ postArray );
66+ $ this ->assertDatabaseHas ('menu_role ' ,[
67+ 'role_name ' => 'admin ' ,
68+ 'menus_id ' => 1 ,
69+ ]);
70+ $ this ->assertDatabaseHas ('menus ' ,[
71+ 'slug ' => 'link ' ,
72+ 'menu_id ' => 1 ,
73+ 'name ' => 'test2 ' ,
74+ 'icon ' => 'test4 ' ,
75+ 'href ' => 'test3 ' ,
76+ 'parent_id ' => 1 ,
77+ 'sequence ' => 1 ,
78+ ]);
79+ }
80+
81+ public function testMenuEdit (){
82+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
83+ Role::create (['name ' => 'admin ' ]);
84+ $ user ->assignRole ('admin ' );
85+ $ menulist = new Menulist ();
86+ $ menulist ->name = 'test2 ' ;
87+ $ menulist ->save ();
88+ $ menus = new Menus ();
89+ $ menus ->slug = 'link ' ;
90+ $ menus ->menu_id = 1 ;
91+ $ menus ->name = 'test2 ' ;
92+ $ menus ->icon = 'test4 ' ;
93+ $ menus ->href = 'test3 ' ;
94+ $ menus ->parent_id = 1 ;
95+ $ menus ->sequence = 1 ;
96+ $ menus ->save ();
97+ $ response = $ this ->actingAs ($ user )->get ('/menu/element/edit?id=1 ' );
98+ $ response ->assertSee ('<option value="1" selected>test2</option> ' );
99+ $ response ->assertSee ('<input type="checkbox" name="role[]" value="admin" class="form-control"/> ' );
100+ $ response ->assertSee ('test2 ' );
101+ $ response ->assertSee ('test4 ' );
102+ $ response ->assertSee ('test3 ' );
103+ $ response ->assertSee ('Edit menu element ' );
104+ }
105+
106+ public function testMenuUpdate (){
107+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
108+ Role::create (['name ' => 'admin ' ]);
109+ $ user ->assignRole ('admin ' );
110+ $ menulist = new Menulist ();
111+ $ menulist ->name = 'test2 ' ;
112+ $ menulist ->save ();
113+ $ menus = new Menus ();
114+ $ menus ->slug = 'link ' ;
115+ $ menus ->menu_id = 1 ;
116+ $ menus ->name = 'test2 ' ;
117+ $ menus ->icon = 'test4 ' ;
118+ $ menus ->href = 'test3 ' ;
119+ $ menus ->parent_id = 1 ;
120+ $ menus ->sequence = 1 ;
121+ $ menus ->save ();
122+ $ postArray = [
123+ 'id ' => '1 ' ,
124+ 'menu ' => '1 ' ,
125+ 'role ' => [
126+ 'admin '
127+ ],
128+ 'name ' => 'test22 ' ,
129+ 'type ' => 'link ' ,
130+ 'href ' => 'test33 ' ,
131+ 'parent ' => '2 ' ,
132+ 'icon ' => 'test44 ' ,
133+ ];
134+ $ this ->assertDatabaseHas ('menus ' ,[
135+ 'slug ' => 'link ' ,
136+ 'menu_id ' => 1 ,
137+ 'name ' => 'test2 ' ,
138+ 'icon ' => 'test4 ' ,
139+ 'href ' => 'test3 ' ,
140+ 'parent_id ' => 1 ,
141+ 'sequence ' => 1 ,
142+ ]);
143+ $ response = $ this ->actingAs ($ user )->post ('/menu/element/update ' , $ postArray );
144+ $ this ->assertDatabaseHas ('menu_role ' ,[
145+ 'role_name ' => 'admin ' ,
146+ 'menus_id ' => 1 ,
147+ ]);
148+ $ this ->assertDatabaseHas ('menus ' ,[
149+ 'slug ' => 'link ' ,
150+ 'menu_id ' => 1 ,
151+ 'name ' => 'test22 ' ,
152+ 'icon ' => 'test44 ' ,
153+ 'href ' => 'test33 ' ,
154+ 'parent_id ' => 2 ,
155+ 'sequence ' => 1 ,
156+ ]);
157+ }
158+
159+ public function testMenuDelete (){
160+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
161+ Role::create (['name ' => 'admin ' ]);
162+ $ user ->assignRole ('admin ' );
163+ $ menus = new Menus ();
164+ $ menus ->slug = 'link ' ;
165+ $ menus ->menu_id = 1 ;
166+ $ menus ->name = 'test2 ' ;
167+ $ menus ->icon = 'test4 ' ;
168+ $ menus ->href = 'test3 ' ;
169+ $ menus ->parent_id = 1 ;
170+ $ menus ->sequence = 1 ;
171+ $ menus ->save ();
172+ $ menuRole = new Menurole ();
173+ $ menuRole ->role_name = 'admin ' ;
174+ $ menuRole ->menus_id = $ menus ->id ;
175+ $ menuRole ->save ();
176+ $ this ->assertDatabaseHas ('menus ' ,['id ' => $ menus ->id ]);
177+ $ response = $ this ->actingAs ($ user )->get ('/menu/element/delete?id= ' . $ menus ->id );
178+ $ this ->assertDatabaseMissing ('menus ' ,['id ' => $ menus ->id ]);
179+ $ this ->assertDatabaseMissing ('menu_role ' ,['menus_id ' => $ menus ->id ]);
180+ }
181+ }
0 commit comments