mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 20:30:18 +08:00
80 lines
2.1 KiB
PHP
80 lines
2.1 KiB
PHP
<?php namespace Tests;
|
|
|
|
use BookStack\Entities\Entity;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
|
|
|
abstract class TestCase extends BaseTestCase
|
|
{
|
|
use CreatesApplication;
|
|
use DatabaseTransactions;
|
|
use SharedTestHelpers;
|
|
|
|
/**
|
|
* The base URL to use while testing the application.
|
|
* @var string
|
|
*/
|
|
protected $baseUrl = 'http://localhost';
|
|
|
|
/**
|
|
* Assert a permission error has occurred.
|
|
* @param TestResponse $response
|
|
* @return TestCase
|
|
*/
|
|
protected function assertPermissionError(TestResponse $response)
|
|
{
|
|
$response->assertRedirect('/');
|
|
$this->assertSessionHas('error');
|
|
session()->remove('error');
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Assert the session contains a specific entry.
|
|
* @param string $key
|
|
* @return $this
|
|
*/
|
|
protected function assertSessionHas(string $key)
|
|
{
|
|
$this->assertTrue(session()->has($key), "Session does not contain a [{$key}] entry");
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Override of the get method so we can get visibility of custom TestResponse methods.
|
|
* @param string $uri
|
|
* @param array $headers
|
|
* @return TestResponse
|
|
*/
|
|
public function get($uri, array $headers = [])
|
|
{
|
|
return parent::get($uri, $headers);
|
|
}
|
|
|
|
/**
|
|
* Create the test response instance from the given response.
|
|
*
|
|
* @param \Illuminate\Http\Response $response
|
|
* @return TestResponse
|
|
*/
|
|
protected function createTestResponse($response)
|
|
{
|
|
return TestResponse::fromBaseResponse($response);
|
|
}
|
|
|
|
/**
|
|
* Assert that an activity entry exists of the given key.
|
|
* Checks the activity belongs to the given entity if provided.
|
|
*/
|
|
protected function assertActivityExists(string $key, Entity $entity = null)
|
|
{
|
|
$detailsToCheck = ['key' => $key];
|
|
|
|
if ($entity) {
|
|
$detailsToCheck['entity_type'] = $entity->getMorphClass();
|
|
$detailsToCheck['entity_id'] = $entity->id;
|
|
}
|
|
|
|
$this->assertDatabaseHas('activities', $detailsToCheck);
|
|
}
|
|
} |