Skip to content

Commit b8d0139

Browse files
committed
More tests for UserController
1 parent d900ee6 commit b8d0139

2 files changed

Lines changed: 343 additions & 0 deletions

File tree

app/sprinkles/admin/tests/Integration/Controller/UserControllerGuestTest.php

Lines changed: 274 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,68 @@ public function testDeleteWithNoPermission(UserController $controller)
100100
$controller->delete($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
101101
}
102102

103+
/**
104+
* @depends testControllerConstructorWithUser
105+
* @param UserController $controller
106+
*/
107+
public function testGetActivitiesWithNoPermission(UserController $controller)
108+
{
109+
$this->expectException(ForbiddenException::class);
110+
$controller->getActivities($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
111+
}
112+
113+
/**
114+
* @depends testControllerConstructorWithUser
115+
* @param UserController $controller
116+
*/
117+
public function testGetActivitiesWithPartialPermission(UserController $controller)
118+
{
119+
// Guest user
120+
$testUser = $this->createTestUser(false, true);
121+
122+
// Give user partial permissions
123+
$this->giveUserTestPermission($testUser, 'view_user_field');
124+
125+
// Get new controller to propagate new user
126+
$controller = $this->getController();
127+
128+
$result = $controller->getActivities($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
129+
$this->assertSame($result->getStatusCode(), 200);
130+
$this->assertJson((string) $result->getBody());
131+
$this->assertNotEmpty((string) $result->getBody());
132+
}
133+
134+
/**
135+
* @depends testControllerConstructorWithUser
136+
* @param UserController $controller
137+
*/
138+
public function testGetInfoWithNoPermission(UserController $controller)
139+
{
140+
$this->expectException(ForbiddenException::class);
141+
$controller->getInfo($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
142+
}
143+
144+
/**
145+
* @depends testControllerConstructorWithUser
146+
* @param UserController $controller
147+
*/
148+
public function testGetInfoWithPartialPermission(UserController $controller)
149+
{
150+
// Guest user
151+
$testUser = $this->createTestUser(false, true);
152+
153+
// Give user partial permissions
154+
$this->giveUserTestPermission($testUser, 'uri_user');
155+
156+
// Get new controller to propagate new user
157+
$controller = $this->getController();
158+
159+
$result = $controller->getInfo($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
160+
$this->assertSame($result->getStatusCode(), 200);
161+
$this->assertJson((string) $result->getBody());
162+
$this->assertNotEmpty((string) $result->getBody());
163+
}
164+
103165
/**
104166
* @depends testControllerConstructorWithUser
105167
* @param UserController $controller
@@ -138,6 +200,126 @@ public function testGetModalCreateWithNoPermission(UserController $controller)
138200
$controller->getModalCreate($request, $this->getResponse(), []);
139201
}
140202

203+
/**
204+
* @depends testControllerConstructorWithUser
205+
* @param UserController $controller
206+
*/
207+
public function testGetModalCreateWithNoUserGroup(UserController $controller)
208+
{
209+
// Guest user
210+
$testUser = $this->createTestUser(false, true);
211+
212+
// Give user partial permissions
213+
$this->giveUserTestPermission($testUser, 'create_user');
214+
215+
// Get new controller to propagate new user
216+
$controller = $this->getController();
217+
218+
$result = $controller->getModalCreate($this->getRequest(), $this->getResponse(), []);
219+
$this->assertSame($result->getStatusCode(), 200);
220+
$this->assertNotSame('', (string) $result->getBody());
221+
}
222+
223+
/**
224+
* @depends testControllerConstructorWithUser
225+
* @param UserController $controller
226+
*/
227+
public function testGetModalEditWithNoPermissions(UserController $controller)
228+
{
229+
$request = $this->getRequest()->withQueryParams([
230+
'user_name' => 'userfoo'
231+
]);
232+
233+
$this->expectException(ForbiddenException::class);
234+
$controller->getModalEdit($request, $this->getResponse(), []);
235+
}
236+
237+
/**
238+
* @depends testControllerConstructorWithUser
239+
* @param UserController $controller
240+
*/
241+
public function testGetModalEditWithPartialPermissions(UserController $controller)
242+
{
243+
// Guest user
244+
$testUser = $this->createTestUser(false, true);
245+
246+
// Give user partial permissions
247+
$this->giveUserTestPermission($testUser, 'update_user_field');
248+
249+
// Get new controller to propagate new user
250+
$controller = $this->getController();
251+
252+
$request = $this->getRequest()->withQueryParams([
253+
'user_name' => 'userfoo'
254+
]);
255+
256+
$result = $controller->getModalEdit($request, $this->getResponse(), []);
257+
$this->assertSame($result->getStatusCode(), 200);
258+
$this->assertNotSame('', (string) $result->getBody());
259+
}
260+
261+
/**
262+
* @depends testControllerConstructorWithUser
263+
* @param UserController $controller
264+
*/
265+
public function testGetModalEditWithNoGroupPermissions(UserController $controller)
266+
{
267+
// Guest user
268+
$testUser = $this->createTestUser(false, true);
269+
270+
// Give user partial permissions
271+
$this->giveUserTestPermission($testUser, 'update_user_field', "subset(fields,['name','email','locale','flag_enabled','flag_verified','password'])");
272+
273+
// Get new controller to propagate new user
274+
$controller = $this->getController();
275+
276+
$request = $this->getRequest()->withQueryParams([
277+
'user_name' => 'userfoo'
278+
]);
279+
280+
$result = $controller->getModalEdit($request, $this->getResponse(), []);
281+
$this->assertSame($result->getStatusCode(), 200);
282+
$this->assertNotSame('', (string) $result->getBody());
283+
}
284+
285+
/**
286+
* @depends testControllerConstructorWithUser
287+
* @param UserController $controller
288+
*/
289+
public function testGetModalEditPasswordWithNoPermissions(UserController $controller)
290+
{
291+
$request = $this->getRequest()->withQueryParams([
292+
'user_name' => 'userfoo'
293+
]);
294+
295+
$this->expectException(ForbiddenException::class);
296+
$controller->getModalEditPassword($request, $this->getResponse(), []);
297+
}
298+
299+
/**
300+
* @depends testControllerConstructorWithUser
301+
* @param UserController $controller
302+
*/
303+
public function testGetModalEditPasswordWithPartialPermissions(UserController $controller)
304+
{
305+
// Guest user
306+
$testUser = $this->createTestUser(false, true);
307+
308+
// Give user partial permissions
309+
$this->giveUserTestPermission($testUser, 'update_user_field');
310+
311+
// Get new controller to propagate new user
312+
$controller = $this->getController();
313+
314+
$request = $this->getRequest()->withQueryParams([
315+
'user_name' => 'userfoo'
316+
]);
317+
318+
$result = $controller->getModalEditPassword($request, $this->getResponse(), []);
319+
$this->assertSame($result->getStatusCode(), 200);
320+
$this->assertNotSame('', (string) $result->getBody());
321+
}
322+
141323
/**
142324
* @depends testControllerConstructorWithUser
143325
* @param UserController $controller
@@ -152,6 +334,98 @@ public function testGetModalEditRolesWithNoPermission(UserController $controller
152334
$controller->getModalEditRoles($request, $this->getResponse(), []);
153335
}
154336

337+
/**
338+
* @depends testControllerConstructorWithUser
339+
* @param UserController $controller
340+
*/
341+
public function testGetPermissionsWithNoPermissions(UserController $controller)
342+
{
343+
$this->expectException(ForbiddenException::class);
344+
$controller->getPermissions($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
345+
}
346+
347+
/**
348+
* @depends testControllerConstructorWithUser
349+
* @param UserController $controller
350+
*/
351+
public function testGetPermissionsWithPartialPermissions(UserController $controller)
352+
{
353+
// Guest user
354+
$testUser = $this->createTestUser(false, true);
355+
356+
// Give user partial permissions
357+
$this->giveUserTestPermission($testUser, 'view_user_field');
358+
359+
// Get new controller to propagate new user
360+
$controller = $this->getController();
361+
362+
$result = $controller->getPermissions($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
363+
$this->assertSame($result->getStatusCode(), 200);
364+
$this->assertJson((string) $result->getBody());
365+
$this->assertNotEmpty((string) $result->getBody());
366+
}
367+
368+
/**
369+
* @depends testControllerConstructorWithUser
370+
* @param UserController $controller
371+
*/
372+
public function testGetRolesWithNoPermissions(UserController $controller)
373+
{
374+
$this->expectException(ForbiddenException::class);
375+
$controller->getRoles($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
376+
}
377+
378+
/**
379+
* @depends testControllerConstructorWithUser
380+
* @param UserController $controller
381+
*/
382+
public function testGetRolesWithPartialPermissions(UserController $controller)
383+
{
384+
// Guest user
385+
$testUser = $this->createTestUser(false, true);
386+
387+
// Give user partial permissions
388+
$this->giveUserTestPermission($testUser, 'view_user_field');
389+
390+
// Get new controller to propagate new user
391+
$controller = $this->getController();
392+
393+
$result = $controller->getRoles($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
394+
$this->assertSame($result->getStatusCode(), 200);
395+
$this->assertJson((string) $result->getBody());
396+
$this->assertNotEmpty((string) $result->getBody());
397+
}
398+
399+
/**
400+
* @depends testControllerConstructorWithUser
401+
* @param UserController $controller
402+
*/
403+
public function testPageInfoWithNoPermissions(UserController $controller)
404+
{
405+
$this->expectException(ForbiddenException::class);
406+
$controller->pageInfo($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
407+
}
408+
409+
/**
410+
* @depends testControllerConstructorWithUser
411+
* @param UserController $controller
412+
*/
413+
public function testPageInfoWithPartialPermissions(UserController $controller)
414+
{
415+
// Guest user
416+
$testUser = $this->createTestUser(false, true);
417+
418+
// Give user partial permissions
419+
$this->giveUserTestPermission($testUser, 'uri_user');
420+
421+
// Get new controller to propagate new user
422+
$controller = $this->getController();
423+
424+
$result = $controller->pageInfo($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
425+
$this->assertSame($result->getStatusCode(), 200);
426+
$this->assertNotSame('', (string) $result->getBody());
427+
}
428+
155429
/**
156430
* @depends testControllerConstructorWithUser
157431
* @param UserController $controller

app/sprinkles/admin/tests/Integration/Controller/UserControllerTest.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,28 @@ public function testGetModalCreate(UserController $controller)
447447
$this->assertNotSame('', (string) $result->getBody());
448448
}
449449

450+
/**
451+
* @depends testControllerConstructorWithUser
452+
* @depends testGetModalCreate
453+
* @param UserController $controller
454+
*/
455+
public function testGetModalCreateWithNoLocale(UserController $controller)
456+
{
457+
// Admin user, WILL have access
458+
$testUser = User::find(1)->first();
459+
$this->loginUser($testUser);
460+
461+
// Change config
462+
$this->ci->config['site.locales.available'] = [];
463+
464+
// Get new controller to propagate new config
465+
$controller = $this->getController();
466+
467+
$result = $controller->getModalCreate($this->getRequest(), $this->getResponse(), []);
468+
$this->assertSame($result->getStatusCode(), 200);
469+
$this->assertNotSame('', (string) $result->getBody());
470+
}
471+
450472
/**
451473
* @depends testControllerConstructorWithUser
452474
* @param UserController $controller
@@ -462,6 +484,32 @@ public function testGetModalEdit(UserController $controller)
462484
$this->assertNotSame('', (string) $result->getBody());
463485
}
464486

487+
/**
488+
* @depends testControllerConstructorWithUser
489+
* @depends testGetModalEdit
490+
* @param UserController $controller
491+
*/
492+
public function testGetModalEditWithNoLocale(UserController $controller)
493+
{
494+
// Admin user, WILL have access
495+
$testUser = User::find(1)->first();
496+
$this->loginUser($testUser);
497+
498+
// Change config
499+
$this->ci->config['site.locales.available'] = [];
500+
501+
// Get new controller to propagate new config
502+
$controller = $this->getController();
503+
504+
$request = $this->getRequest()->withQueryParams([
505+
'user_name' => 'userfoo'
506+
]);
507+
508+
$result = $controller->getModalEdit($request, $this->getResponse(), []);
509+
$this->assertSame($result->getStatusCode(), 200);
510+
$this->assertNotSame('', (string) $result->getBody());
511+
}
512+
465513
/**
466514
* @depends testControllerConstructorWithUser
467515
* @param UserController $controller
@@ -589,6 +637,27 @@ public function testPageInfo(UserController $controller)
589637
$this->assertNotSame('', (string) $result->getBody());
590638
}
591639

640+
/**
641+
* @depends testControllerConstructorWithUser
642+
* @param UserController $controller
643+
*/
644+
public function testPageInfoWithNoLocale(UserController $controller)
645+
{
646+
// Admin user, WILL have access
647+
$testUser = User::find(1)->first();
648+
$this->loginUser($testUser);
649+
650+
// Change config
651+
$this->ci->config['site.locales.available'] = [];
652+
653+
// Get new controller to propagate new config
654+
$controller = $this->getController();
655+
656+
$result = $controller->pageInfo($this->getRequest(), $this->getResponse(), ['user_name' => 'userfoo']);
657+
$this->assertSame($result->getStatusCode(), 200);
658+
$this->assertNotSame('', (string) $result->getBody());
659+
}
660+
592661
/**
593662
* @depends testControllerConstructorWithUser
594663
* @param UserController $controller

0 commit comments

Comments
 (0)