From b882f65fbb408aaf820bdd37420efb1dcbbfaba3 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Tue, 11 Apr 2017 01:30:32 +0200 Subject: [PATCH] Add integration tests Signed-off-by: Lukas Reschke --- build/integration/features/bootstrap/Auth.php | 3 ++ .../features/bootstrap/CommandLineContext.php | 14 ++++++++ .../features/maintenance-mode.feature | 34 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 build/integration/features/maintenance-mode.feature diff --git a/build/integration/features/bootstrap/Auth.php b/build/integration/features/bootstrap/Auth.php index fd1b2e05a8..7addcab5f9 100644 --- a/build/integration/features/bootstrap/Auth.php +++ b/build/integration/features/bootstrap/Auth.php @@ -22,6 +22,7 @@ use GuzzleHttp\Client; use GuzzleHttp\Exception\ClientException; +use GuzzleHttp\Exception\ServerException; use GuzzleHttp\Cookie\CookieJar; require __DIR__ . '/../../vendor/autoload.php'; @@ -68,6 +69,8 @@ trait Auth { $this->response = $this->client->send($request); } catch (ClientException $ex) { $this->response = $ex->getResponse(); + } catch (ServerException $ex) { + $this->response = $ex->getResponse(); } } diff --git a/build/integration/features/bootstrap/CommandLineContext.php b/build/integration/features/bootstrap/CommandLineContext.php index c8253966cd..9a48c8517c 100644 --- a/build/integration/features/bootstrap/CommandLineContext.php +++ b/build/integration/features/bootstrap/CommandLineContext.php @@ -36,6 +36,20 @@ class CommandLineContext implements \Behat\Behat\Context\Context { $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 */ public function gatherContexts(BeforeScenarioScope $scope) { $environment = $scope->getEnvironment(); diff --git a/build/integration/features/maintenance-mode.feature b/build/integration/features/maintenance-mode.feature new file mode 100644 index 0000000000..a2e61a7e60 --- /dev/null +++ b/build/integration/features/maintenance-mode.feature @@ -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