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

This commit is contained in:
Thomas Müller 2015-10-29 15:13:29 +01:00
parent d11b69bfb9
commit fcc2a0c830
5 changed files with 43 additions and 39 deletions

View File

@ -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"
}
}

View File

@ -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/

View File

@ -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);
}
}
}

View File

@ -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

View File

@ -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