]> BookStack Code Mirror - bookstack/blobdiff - tests/TestCase.php
Major permission naming refactor and database migration cleanup
[bookstack] / tests / TestCase.php
index d3b41831edde3bc816ee2a2d30aa64a3d48aecb6..5d0545b6633ba5b459a9c604f2a5781e44f6954b 100644 (file)
@@ -65,6 +65,8 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
         $page = factory(BookStack\Page::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]);
         $book->chapters()->saveMany([$chapter]);
         $chapter->pages()->saveMany([$page]);
+        $restrictionService = $this->app[\BookStack\Services\PermissionService::class];
+        $restrictionService->buildJointPermissionsForEntity($book);
         return [
             'book' => $book,
             'chapter' => $chapter,
@@ -171,11 +173,27 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
         return $this;
     }
 
-    protected function actingAsUsers($usersArray, $callback)
+    /**
+     * Check if the page contains the given element.
+     * @param  string  $selector
+     * @return bool
+     */
+    protected function pageHasElement($selector)
     {
-        foreach ($usersArray as $user) {
-            $this->actingAs($user);
-            $callback($user);
-        }
+        $elements = $this->crawler->filter($selector);
+        $this->assertTrue(count($elements) > 0, "The page does not contain an element matching " . $selector);
+        return $this;
+    }
+
+    /**
+     * Check if the page contains the given element.
+     * @param  string  $selector
+     * @return bool
+     */
+    protected function pageNotHasElement($selector)
+    {
+        $elements = $this->crawler->filter($selector);
+        $this->assertFalse(count($elements) > 0, "The page contains " . count($elements) . " elements matching " . $selector);
+        return $this;
     }
 }