]> BookStack Code Mirror - bookstack/blobdiff - tests/TestCase.php
Added Popular books list with relevant tests
[bookstack] / tests / TestCase.php
index d48bb3ef285b3f5f24bc7ebaf9b64de309d02b6f..3a0967c8e626e4867021e53b22718776d7a323ba 100644 (file)
@@ -32,8 +32,47 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
     public function asAdmin()
     {
         if($this->admin === null) {
-            $this->admin = \Oxbow\User::find(1);
+            $this->admin = \BookStack\User::find(1);
         }
         return $this->actingAs($this->admin);
     }
+
+    /**
+     * Quickly sets an array of settings.
+     * @param $settingsArray
+     */
+    protected function setSettings($settingsArray)
+    {
+        $settings = app('BookStack\Services\SettingService');
+        foreach ($settingsArray as $key => $value) {
+            $settings->put($key, $value);
+        }
+    }
+
+    /**
+     * Assert that a given string is seen inside an element.
+     *
+     * @param  bool|string|null $element
+     * @param  integer          $position
+     * @param  string           $text
+     * @param  bool             $negate
+     * @return $this
+     */
+    protected function seeInNthElement($element, $position, $text, $negate = false)
+    {
+        $method = $negate ? 'assertNotRegExp' : 'assertRegExp';
+
+        $rawPattern = preg_quote($text, '/');
+
+        $escapedPattern = preg_quote(e($text), '/');
+
+        $content = $this->crawler->filter($element)->eq($position)->html();
+
+        $pattern = $rawPattern == $escapedPattern
+            ? $rawPattern : "({$rawPattern}|{$escapedPattern})";
+
+        $this->$method("/$pattern/i", $content);
+
+        return $this;
+    }
 }