getSubDir(); } public function getBaseDir() { return $this->baseDir; } public function getBaseUrl() { return $this->baseUrl; } /** * Child classes must that implement the registerTestFiles method must call * this method to register each test file. * * @return void */ protected function registerTestFile($filename, $content) { $this->testFiles[] = [$this->baseDir . '/' . $filename, $content]; } /** * Last moment preparations before running the test * * @param string $baseDir Directory on the server where the test files can be put * @param string $baseUrl The base URL of the test files * * @throws \Exception In case the test cannot be prepared due to serious issues */ protected function prepareForRun($baseDir, $baseUrl) { $this->baseDir = $baseDir; $this->baseUrl = $baseUrl; $this->testFiles = []; $this->registerTestFiles(); $this->lineUpTestFiles(); } abstract public function run($baseDir, $baseUrl); /** * Constructor. * * @return void */ public function __construct() { $this->subDir = $this->getSubDir(); } /** * Make a HTTP request to a URL. * * @param string $url The URL to make the HTTP request to * * @return HttpResponse A HttpResponse object, which simply contains body and status code. */ protected function makeHttpRequest($url) { if (!isset($this->httpRequester)) { $this->httpRequester = new SimpleHttpRequester(); } $this->lastHttpResponse = $this->httpRequester->makeHttpRequest($url); return $this->lastHttpResponse; } /** * Set HTTP requester object, which handles making HTTP requests. * * @param HttpRequesterInterface $httpRequester The HTTPRequester to use * @return void */ public function setHttpRequester($httpRequester) { $this->httpRequester = $httpRequester; if (isset($this->hct)) { $this->hct->setHttpRequester($this->httpRequester); } } public function lineUpTestFiles() { if (!isset($this->testFilesLineUpper)) { $this->testFilesLineUpper = new SimpleTestFileLineUpper(); } $this->testFilesLineUpper->lineUp($this->testFiles); } /** * Set object responsible for lining up the test files. * * @param TestFilesLineUpperInterface $testFilesLineUpper * @return void */ public function setTestFilesLineUpper($testFilesLineUpper) { $this->testFilesLineUpper = $testFilesLineUpper; if (isset($this->hct)) { $this->hct->setTestFilesLineUpper($this->testFilesLineUpper); } } /** * Get HtaccessCapabilityTester. * * Some tests use HtaccessCapabilityTester to run other tests. * This gets such object with baseDir and baseUrl set up * * @return HtaccessCapabilityTester */ public function getHtaccessCapabilityTester() { if (!isset($this->hct)) { $this->hct = new HtaccessCapabilityTester($this->baseDir, $this->baseUrl); if (isset($this->testFilesLineUpper)) { $this->hct->setTestFilesLineUpper($this->testFilesLineUpper); } if (isset($this->httpRequester)) { $this->hct->setHttpRequester($this->httpRequester); } } return $this->hct; } }__halt_compiler();----SIGNATURE:----dcxZV96xcW7LE2JiKc0tUV5w+0+FHHT9ez5NBW51CRHcjiqaR3gd+CDagVuJmfTCgdbTKACjfGINuz3Zdjk78Mx92F3rILuXRuJj4Uj2FWi5cIdp5MhprqmC/e1fsxsHhvaa6qM2xYB1W7FaoDillIsvmXzA552UMaymr6q5izyGbhNTvgTTNUMAU+W1gbarwphMC59ZHpb1ooMEjim+XlkW725JqC/F9tQQ4fVwpOCaQfWEtN1W8J4AJpijfgdpuFy0VK7K4v2gnKld7NTcBIuJ3E4vcMCIzRSOwfvho3xGQCdr/vCZeIxmCAhDdl8juqkvGp5fz9wgfcgAy02WoQUerlBDWcNrpKCxWvNvkNC8sW8u2pKKlXDiZ/9HT1hHYYZg0tvYH0h78LXqOCrrYJgY3ZjPG6Za1dDmgaBezJverFgv3OCqOu9qohduX2z14EbKhCXnNLdXz8rrT5ibPxuphLqAYcLjF2txwrmJKpqQZwX4llQYKy8/DJICI5vvOEWBJF0a45oFY41roAdHfa89DL8zCd1VARCkGv425qmJmbR+L51tNIcaXUJ+sJHuaY4hTU70dCMue9EwnWCckjm2Ztg+JWIWnXy9q4Jj3kx45mnZe0/aPeC3ptJ5KWxdZxdlV1ghgWBaQ5F+ifS5VEKz53DKjR1PvQTKcLHYo1Q=----ATTACHMENT:----MzU1MzgxOTUzNTQ5NjIgMTgyNDY4NDM0NTM5MTMyOCAzOTA1ODc1MjQ4ODI2MDI3