Add integration tests

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This commit is contained in:
Lukas Reschke 2017-04-11 01:30:32 +02:00
parent aacbb560ae
commit b882f65fbb
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
3 changed files with 51 additions and 0 deletions

View File

@ -22,6 +22,7 @@
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException; use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ServerException;
use GuzzleHttp\Cookie\CookieJar; use GuzzleHttp\Cookie\CookieJar;
require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/autoload.php';
@ -68,6 +69,8 @@ trait Auth {
$this->response = $this->client->send($request); $this->response = $this->client->send($request);
} catch (ClientException $ex) { } catch (ClientException $ex) {
$this->response = $ex->getResponse(); $this->response = $ex->getResponse();
} catch (ServerException $ex) {
$this->response = $ex->getResponse();
} }
} }

View File

@ -36,6 +36,20 @@ class CommandLineContext implements \Behat\Behat\Context\Context {
$this->remoteBaseUrl = $baseUrl; $this->remoteBaseUrl = $baseUrl;
} }
/**
* @Given Maintenance mode is enabled
*/
public function maintenanceModeIsEnabled() {
$this->runOcc(['maintenance:mode', '--on']);
}
/**
* @Then Maintenance mode is disabled
*/
public function maintenanceModeIsDisabled() {
$this->runOcc(['maintenance:mode', '--off']);
}
/** @BeforeScenario */ /** @BeforeScenario */
public function gatherContexts(BeforeScenarioScope $scope) { public function gatherContexts(BeforeScenarioScope $scope) {
$environment = $scope->getEnvironment(); $environment = $scope->getEnvironment();

View File

@ -0,0 +1,34 @@
Feature: maintenance-mode
Background:
Given Maintenance mode is enabled
Scenario: Accessing /index.php with maintenance mode enabled
When requesting "/index.php" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled
Scenario: Accessing /remote.php/webdav with maintenance mode enabled
When requesting "/remote.php/webdav" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled
Scenario: Accessing /remote.php/dav with maintenance mode enabled
When requesting "/remote.php/dav" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled
Scenario: Accessing /ocs/v1.php with maintenance mode enabled
When requesting "/ocs/v1.php" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled
Scenario: Accessing /ocs/v2.php with maintenance mode enabled
When requesting "/ocs/v2.php" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled
Scenario: Accessing /public.php/webdav with maintenance mode enabled
When requesting "/public.php/webdav" with "GET"
Then the HTTP status code should be "503"
Then Maintenance mode is disabled