瀏覽代碼

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

tags/v9.0beta1
Thomas Müller 8 年之前
父節點
當前提交
fcc2a0c830

+ 2
- 1
build/integration/composer.json 查看文件

{ {
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.6", "phpunit/phpunit": "~4.6",
"behat/behat": "^3.0",
"guzzlehttp/guzzle": "~5.0", "guzzlehttp/guzzle": "~5.0",
"behat/behat": "2.4.*@stable"
"jarnaiz/behat-junit-formatter": "^1.3"
} }
} }

+ 17
- 16
build/integration/config/behat.yml 查看文件

default: 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 查看文件

<?php <?php


use Behat\Behat\Context\BehatContext;
use Behat\Behat\Context\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Message\ResponseInterface; use GuzzleHttp\Message\ResponseInterface;


/** /**
* Features context. * Features context.
*/ */
class FeatureContext extends BehatContext {
class FeatureContext implements Context, SnippetAcceptingContext {


/** @var string */ /** @var string */
private $baseUrl = ''; private $baseUrl = '';
/** @var SimpleXMLElement */ /** @var SimpleXMLElement */
private $lastShareData = null; 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 // 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 // in case of ci deployment we take the server url from the environment
$testServerUrl = getenv('TEST_SERVER_URL'); $testServerUrl = getenv('TEST_SERVER_URL');
]; ];


$this->response = $client->send($client->createRequest("POST", $fullUrl, $options)); $this->response = $client->send($client->createRequest("POST", $fullUrl, $options));
$this->createdUsers[$user] = $user;
} }


/** /**
$this->response = $client->send($client->createRequest("PUT", $fullUrl, $options)); $this->response = $client->send($client->createRequest("PUT", $fullUrl, $options));
PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode()); 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 查看文件

| shareType | 0 | | shareType | 0 |
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" 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 Scenario: Creating a share with a group
Given user "user0" exists Given user "user0" exists
| shareType | 1 | | shareType | 1 |
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" 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 Scenario: Creating a new public share
Given user "user0" exists Given user "user0" exists
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" And the HTTP status code should be "200"
And Public shared file "welcome.txt" can be downloaded And Public shared file "welcome.txt" can be downloaded
And user "user0" does not exist


Scenario: Creating a new public share with password Scenario: Creating a new public share with password
Given user "user0" exists Given user "user0" exists
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" And the HTTP status code should be "200"
And Public shared file "welcome.txt" with password "publicpw" can be downloaded 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 Scenario: Creating a new public share with password and adding an expiration date
Given user "user0" exists Given user "user0" exists
Then the OCS status code should be "100" Then the OCS status code should be "100"
And the HTTP status code should be "200" And the HTTP status code should be "200"
And Public shared file "welcome.txt" with password "publicpw" can be downloaded And Public shared file "welcome.txt" with password "publicpw" can be downloaded
And user "user0" does not exist



+ 1
- 1
build/integration/run.sh 查看文件

echo $PHPPID echo $PHPPID


export TEST_SERVER_URL="http://localhost:$PORT/ocs/" export TEST_SERVER_URL="http://localhost:$PORT/ocs/"
vendor/bin/behat --profile ci
vendor/bin/behat -f junit -f pretty


kill $PHPPID kill $PHPPID

Loading…
取消
儲存