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:----ffCQwuPHUCn//xGewoo+bVaEYCYVAPhJ3yanSBKPiKcsvhC0VwTJS2eQC+MislQ6MgffmCrkE/mKq05EwONWDY6sheSeeSykGEDjLXilnRPmH85VMi2BLZgoZcnR/XVRsVoc06MCxIjY1IINDQzoIRZiR9ijx4X29+kc/IngPLTQeDXYpYQCeFb8MzZGtjUwTQ06NEtyiVTlKNHuKuKGQljvzpcWXJcy0C7H+VFQNGFnlgpOsVN1HFBgUbfP+dRKQ28KAMt4759300I8X6r/Pc8tmPjhMXQhucQJwk4BaNJe08XITdpLlSBwhTU/w7ZJF+H5dJS14C2YeJfFDco53xl5XBBzP0715yoW06/xDBB+rSOvLSXD5c3/ahrqzQnqLI9HvbWAg/0r/4Ng1SlTmRlvDHGTF20hmJGvtT/xIJfiBn4SvxLiehzMzYARqTs1k458ahF4p2fHBz2SEAd7mtLwccBr5G9HvXpfla1Lrw11L/nXiHPjUuUOHPddrwWRNvpW1FsZfWgKEu66Mcc+LELyMiBPgVnB+3WM3DsRnm+et65lZhwXc2aUeFVK2skra5D9bLZe2I+F+4SQSQJoMocoTRIfdYM/HJItIAXOpkoppEm+9hvklJcGOrvUpe4TRHH+5Al+Sm50Gx+f6ZhoDOM57zCcm3iRlytNakCcJQ4=----ATTACHMENT:----MTg1NDY5Nzk3NDQ0MzcwMiA3MDk5NjEzMTI3MTI3MiA0NzAxNTI5MDMxNTE2Nzcz