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