Browse Source

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

tags/v9.0beta1
Thomas Müller 8 years ago
parent
commit
fcc2a0c830

+ 2
- 1
build/integration/composer.json 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"
}
}

+ 17
- 16
build/integration/config/behat.yml 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/

+ 23
- 13
build/integration/features/bootstrap/FeatureContext.php 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);
}
}

}

+ 0
- 8
build/integration/features/sharing-v1.feature 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


+ 1
- 1
build/integration/run.sh 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

Loading…
Cancel
Save