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