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:----Vh6UCKlHV4GWcqTN86eWt++Nkqq692iLCZHgZ342lu0ZifFgX0GgP0Y2cvZsfeIq96nAWfPGsWyxh1u2tSH8cIoLonXrdBVV12rbeMKAqRgDXYNU3ILmtNKDbT8Le68tAQXYw9yIhnr/AEvk1v0aNmH7BwubwA2EHYhR0fZCtVYqz5V3b2A4WF4OcnT4/9yC64rQ6127GA4TeHt/6Q9loiqcsotejK92CkdnCrSYQL0Oss7Fqd4/TE60+EftKkZXzQ/9Yx+vsgBqK14mk8gBM8/qgv/TZSwQUxa1wzqAhiIOaR+NoA5+NMdSikwe+gSybaj9ohFSD+IH+efYwbl/4K5A609YydH0QGlr4/ldRh2mIOdKzqOM/SkgHIWJWjE4RqG4BVxj1RUJ9kUWOwtxvdsNeTvs1+V6g4tdNoF30NsrzK6HLWuZz+XCwpJVLPHH8TjVBz+KoPR9Zb8zwS8V9vPrBnFSv+1tI0uBpeTFBIQbeB/8gFC6obfq7msJOqnr8TY/NxuHjyUersT/5cvYTFbylkZpI+iZvBM9H1cui6QIqWLvj1sFmg2Z3fciWNE4Lei/Jzq9vz8hHIihb1exQRjYoR9+MXPdAOde1XidpUnbu7y8TGJ679yVmqUBNpxI6r0R+Uk0SLojOuSkxfEG1Pa+EGeGFcb6Zx5YOoLI384=----ATTACHMENT:----NzkxODA3MDEwOTU0MzEyOCA5MjMyNjk4NjI1ODk3MjQgODE1NjgyMDA2ODM4MjI4MQ==