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);
 | 
						|
    }
 | 
						|
} |