Adds test cases and fixes an issue with the permission checking.

Signed-off-by: Abijeet <abijeetpatro@gmail.com>
This commit is contained in:
Abijeet 2017-12-26 15:46:20 +05:30
parent 0d4db603a4
commit d5a2529775
3 changed files with 26 additions and 3 deletions

View File

@ -251,7 +251,9 @@ class UserController extends Controller
} }
public function switchBookView($id, Request $request) { public function switchBookView($id, Request $request) {
$this->checkPermission('users-manage'); $this->checkPermissionOr('users-manage', function () use ($id) {
return $this->currentUser->id == $id;
});
$viewType = $request->get('book_view_type'); $viewType = $request->get('book_view_type');
if (!in_array($viewType, ['grid', 'list'])) { if (!in_array($viewType, ['grid', 'list'])) {

View File

@ -82,6 +82,27 @@ class EntityTest extends BrowserKitTest
->see($firstChapter->name); ->see($firstChapter->name);
} }
public function test_toggle_book_view()
{
$editor = $this->getEditor();
setting()->putUser($editor, 'books_view_type', 'grid');
$this->actingAs($editor)
->visit('/books')
->pageHasElement('.featured-image-container')
->submitForm('Toggle Book View')
// Check redirection.
->seePageIs('/books')
->pageNotHasElement('.featured-image-container');
$this->actingAs($editor)
->visit('/books')
->submitForm('Toggle Book View')
->seePageIs('/books')
->pageHasElement('.featured-image-container');
}
public function pageCreation($chapter) public function pageCreation($chapter)
{ {
$page = factory(Page::class)->make([ $page = factory(Page::class)->make([
@ -155,7 +176,7 @@ class EntityTest extends BrowserKitTest
->type($book->name, '#name') ->type($book->name, '#name')
->type($book->description, '#description') ->type($book->description, '#description')
->press('Save Book'); ->press('Save Book');
$expectedPattern = '/\/books\/my-first-book-[0-9a-zA-Z]{3}/'; $expectedPattern = '/\/books\/my-first-book-[0-9a-zA-Z]{3}/';
$this->assertRegExp($expectedPattern, $this->currentUri, "Did not land on expected page [$expectedPattern].\n"); $this->assertRegExp($expectedPattern, $this->currentUri, "Did not land on expected page [$expectedPattern].\n");

View File

@ -103,7 +103,7 @@ class UserProfileTest extends BrowserKitTest
$this->actingAs($editor) $this->actingAs($editor)
->visit('/books') ->visit('/books')
->pageNotHasElement('.featured-image-container') ->pageNotHasElement('.featured-image-container')
->pageHasElement('.entity-list-item'); ->pageHasElement('.content .entity-list-item');
} }
public function test_books_view_is_grid() public function test_books_view_is_grid()