summaryrefslogtreecommitdiffstats
path: root/build/integration
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-10-29 15:13:29 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-10-29 17:10:52 +0100
commitfcc2a0c8304020ce040a421472dc0c9e722e2bc8 (patch)
treeab8a0078ec07737b6318d524a992b107f37bb9f2 /build/integration
parentd11b69bfb9fdb75389fd6c3f6234e52eb85b88ce (diff)
downloadnextcloud-server-fcc2a0c8304020ce040a421472dc0c9e722e2bc8.tar.gz
nextcloud-server-fcc2a0c8304020ce040a421472dc0c9e722e2bc8.zip
Upgrade behat to 3.0.x and use @BeforeScenario and @AfterScenario to clean up users
Diffstat (limited to 'build/integration')
-rw-r--r--build/integration/composer.json3
-rw-r--r--build/integration/config/behat.yml33
-rw-r--r--build/integration/features/bootstrap/FeatureContext.php36
-rw-r--r--build/integration/features/sharing-v1.feature8
-rwxr-xr-xbuild/integration/run.sh2
5 files changed, 43 insertions, 39 deletions
diff --git a/build/integration/composer.json b/build/integration/composer.json
index 98b2f294c7a..2f0f8a815ce 100644
--- a/build/integration/composer.json
+++ b/build/integration/composer.json
@@ -1,7 +1,8 @@
{
"require-dev": {
"phpunit/phpunit": "~4.6",
+ "behat/behat": "^3.0",
"guzzlehttp/guzzle": "~5.0",
- "behat/behat": "2.4.*@stable"
+ "jarnaiz/behat-junit-formatter": "^1.3"
}
}
diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml
index 8b6699cb086..c9d6754a0fa 100644
--- a/build/integration/config/behat.yml
+++ b/build/integration/config/behat.yml
@@ -1,18 +1,19 @@
default:
- paths:
- features: ../features
- bootstrap: %behat.paths.features%/bootstrap
+ autoload:
+ '': %paths.base%/../features/bootstrap
+ suites:
+ default:
+ paths:
+ - %paths.base%/../features
+ contexts:
+ - FeatureContext:
+ baseUrl: http://localhost:8080/ocs/
+ admin:
+ - admin
+ - admin
+ regular_user_password: 123456
- context:
- parameters:
- baseUrl: http://localhost:8080/ocs/
- admin:
- - admin
- - admin
- regular_user_password: 123456
-
-ci:
- formatter:
- name: pretty,junit
- parameters:
- output_path: null,./output
+ extensions:
+ jarnaiz\JUnitFormatter\JUnitFormatterExtension:
+ filename: report.xml
+ outputDir: %paths.base%/../output/
diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php
index df4b853edde..8633727ee04 100644
--- a/build/integration/features/bootstrap/FeatureContext.php
+++ b/build/integration/features/bootstrap/FeatureContext.php
@@ -1,6 +1,7 @@
<?php
-use Behat\Behat\Context\BehatContext;
+use Behat\Behat\Context\Context;
+use Behat\Behat\Context\SnippetAcceptingContext;
use GuzzleHttp\Client;
use GuzzleHttp\Message\ResponseInterface;
@@ -9,7 +10,7 @@ require __DIR__ . '/../../vendor/autoload.php';
/**
* Features context.
*/
-class FeatureContext extends BehatContext {
+class FeatureContext implements Context, SnippetAcceptingContext {
/** @var string */
private $baseUrl = '';
@@ -26,18 +27,15 @@ class FeatureContext extends BehatContext {
/** @var SimpleXMLElement */
private $lastShareData = null;
- /**
- * Initializes context.
- * Every scenario gets it's own context object.
- *
- * @param array $parameters context parameters (set them up through behat.yml)
- */
- public function __construct(array $parameters) {
+ /** @var array */
+ private $createdUsers = [];
+
+ public function __construct($baseUrl, $admin, $regular_user_password) {
// Initialize your context here
- $this->baseUrl = $parameters['baseUrl'];
- $this->adminUser = $parameters['admin'];
- $this->regularUser = $parameters['regular_user_password'];
+ $this->baseUrl = $baseUrl;
+ $this->adminUser = $admin;
+ $this->regularUser = $regular_user_password;
// in case of ci deployment we take the server url from the environment
$testServerUrl = getenv('TEST_SERVER_URL');
@@ -389,7 +387,7 @@ class FeatureContext extends BehatContext {
];
$this->response = $client->send($client->createRequest("POST", $fullUrl, $options));
-
+ $this->createdUsers[$user] = $user;
}
/**
@@ -604,4 +602,16 @@ class FeatureContext extends BehatContext {
$this->response = $client->send($client->createRequest("PUT", $fullUrl, $options));
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
}
+
+ /**
+ * @BeforeScenario
+ * @AfterScenario
+ */
+ public function cleanupUsers()
+ {
+ foreach($this->createdUsers as $user) {
+ $this->deleteUser($user);
+ }
+ }
+
}
diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature
index ed5ac8930a6..abf9fe1c8d8 100644
--- a/build/integration/features/sharing-v1.feature
+++ b/build/integration/features/sharing-v1.feature
@@ -12,8 +12,6 @@ Feature: sharing
| shareType | 0 |
Then the OCS status code should be "100"
And the HTTP status code should be "200"
- And user "user0" does not exist
- And user "user1" does not exist
Scenario: Creating a share with a group
Given user "user0" exists
@@ -26,9 +24,6 @@ Feature: sharing
| shareType | 1 |
Then the OCS status code should be "100"
And the HTTP status code should be "200"
- And user "user0" does not exist
- And user "user1" does not exist
- And group "sharing-group" does not exist
Scenario: Creating a new public share
Given user "user0" exists
@@ -39,7 +34,6 @@ Feature: sharing
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And Public shared file "welcome.txt" can be downloaded
- And user "user0" does not exist
Scenario: Creating a new public share with password
Given user "user0" exists
@@ -51,7 +45,6 @@ Feature: sharing
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And Public shared file "welcome.txt" with password "publicpw" can be downloaded
- And user "user0" does not exist
Scenario: Creating a new public share with password and adding an expiration date
Given user "user0" exists
@@ -64,5 +57,4 @@ Feature: sharing
Then the OCS status code should be "100"
And the HTTP status code should be "200"
And Public shared file "welcome.txt" with password "publicpw" can be downloaded
- And user "user0" does not exist
diff --git a/build/integration/run.sh b/build/integration/run.sh
index 08f10b86c5f..5456a784404 100755
--- a/build/integration/run.sh
+++ b/build/integration/run.sh
@@ -14,6 +14,6 @@ PHPPID=$!
echo $PHPPID
export TEST_SERVER_URL="http://localhost:$PORT/ocs/"
-vendor/bin/behat --profile ci
+vendor/bin/behat -f junit -f pretty
kill $PHPPID