Commit fcc2a0c8 authored by Thomas Müller's avatar Thomas Müller
Browse files

Upgrade behat to 3.0.x and use @BeforeScenario and @AfterScenario to clean up users

parent d11b69bf
{
"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"
}
}
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/
<?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);
}
}
}
......@@ -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
......@@ -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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment