<?php
namespace GitList\Test;
use Symfony\Component\HttpKernel\Client;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use PHPUnit\Framework\TestCase;
/**
* WebTestCase is the base class for functional tests.
*
* @author Igor Wiedler <igor@wiedler.ch>
*/
abstract class WebTestCase extends TestCase
{
/**
* HttpKernelInterface instance.
*
* @var HttpKernelInterface
*/
protected $app;
/**
* PHPUnit setUp for setting up the application.
*
* Note: Child classes that define a setUp method must call
* parent::setUp().
*/
public function setUp(): void
{
$this->app = $this->createApplication();
}
/**
* Creates the application.
*
* @return HttpKernelInterface
*/
abstract public function createApplication();
/**
* Creates a Client.
*
* @param array $server Server parameters
*
* @return Client A Client instance
*/
public function createClient(array $server = array())
{
if (!class_exists('Symfony\Component\BrowserKit\Client')) {
throw new \LogicException('Component "symfony/browser-kit" is required by WebTestCase.'.PHP_EOL.'Run composer require symfony/browser-kit');
}
return new Client($this->app, $server);
}
}