2021-06-26 17:23:15 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Tests;
|
2015-07-12 21:01:42 +02:00
|
|
|
|
2020-11-22 01:17:45 +01:00
|
|
|
use BookStack\Entities\Models\Entity;
|
2017-02-05 15:37:50 +01:00
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
2017-02-04 12:58:42 +01:00
|
|
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
2015-09-02 19:26:33 +02:00
|
|
|
|
2017-02-04 12:58:42 +01:00
|
|
|
abstract class TestCase extends BaseTestCase
|
2015-07-12 21:01:42 +02:00
|
|
|
{
|
2017-02-04 12:58:42 +01:00
|
|
|
use CreatesApplication;
|
2017-02-05 15:37:50 +01:00
|
|
|
use DatabaseTransactions;
|
2018-04-14 19:47:13 +02:00
|
|
|
use SharedTestHelpers;
|
2018-09-21 16:15:16 +02:00
|
|
|
|
2018-01-28 14:33:50 +01:00
|
|
|
/**
|
|
|
|
* The base URL to use while testing the application.
|
2021-06-26 17:23:15 +02:00
|
|
|
*
|
2018-01-28 14:33:50 +01:00
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $baseUrl = 'http://localhost';
|
|
|
|
|
2018-09-21 16:15:16 +02:00
|
|
|
/**
|
|
|
|
* Assert the session contains a specific entry.
|
2021-06-26 17:23:15 +02:00
|
|
|
*
|
2018-09-21 16:15:16 +02:00
|
|
|
* @param string $key
|
2021-06-26 17:23:15 +02:00
|
|
|
*
|
2018-09-21 16:15:16 +02:00
|
|
|
* @return $this
|
|
|
|
*/
|
|
|
|
protected function assertSessionHas(string $key)
|
|
|
|
{
|
|
|
|
$this->assertTrue(session()->has($key), "Session does not contain a [{$key}] entry");
|
2021-06-26 17:23:15 +02:00
|
|
|
|
2018-09-21 16:15:16 +02:00
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Override of the get method so we can get visibility of custom TestResponse methods.
|
2021-06-26 17:23:15 +02:00
|
|
|
*
|
|
|
|
* @param string $uri
|
|
|
|
* @param array $headers
|
|
|
|
*
|
2018-09-21 16:15:16 +02:00
|
|
|
* @return TestResponse
|
|
|
|
*/
|
|
|
|
public function get($uri, array $headers = [])
|
|
|
|
{
|
|
|
|
return parent::get($uri, $headers);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create the test response instance from the given response.
|
|
|
|
*
|
2021-06-26 17:23:15 +02:00
|
|
|
* @param \Illuminate\Http\Response $response
|
|
|
|
*
|
2018-09-21 16:15:16 +02:00
|
|
|
* @return TestResponse
|
|
|
|
*/
|
|
|
|
protected function createTestResponse($response)
|
|
|
|
{
|
|
|
|
return TestResponse::fromBaseResponse($response);
|
2017-08-28 14:55:39 +02:00
|
|
|
}
|
2020-01-12 15:45:54 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Assert that an activity entry exists of the given key.
|
|
|
|
* Checks the activity belongs to the given entity if provided.
|
|
|
|
*/
|
2021-09-15 21:55:10 +02:00
|
|
|
protected function assertActivityExists(string $type, ?Entity $entity, ?string $detail)
|
2020-01-12 15:45:54 +01:00
|
|
|
{
|
2020-11-08 01:03:19 +01:00
|
|
|
$detailsToCheck = ['type' => $type];
|
2020-01-12 15:45:54 +01:00
|
|
|
|
|
|
|
if ($entity) {
|
|
|
|
$detailsToCheck['entity_type'] = $entity->getMorphClass();
|
|
|
|
$detailsToCheck['entity_id'] = $entity->id;
|
|
|
|
}
|
|
|
|
|
2021-09-15 21:55:10 +02:00
|
|
|
if ($detail) {
|
|
|
|
$detailsToCheck['detail'] = $detail;
|
|
|
|
}
|
|
|
|
|
2020-01-12 15:45:54 +01:00
|
|
|
$this->assertDatabaseHas('activities', $detailsToCheck);
|
|
|
|
}
|
2021-06-26 17:23:15 +02:00
|
|
|
}
|