Browse Source
Add intergration tests
Add intergration tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>pull/2471/head
No known key found for this signature in database
GPG Key ID: F941078878347C0C
3 changed files with 141 additions and 0 deletions
-
10build/integration/config/behat.yml
-
72build/integration/features/bootstrap/FilesDropContext.php
-
59build/integration/filesdrop_features/filesdrop.feature
@ -0,0 +1,72 @@ |
|||
<?php |
|||
|
|||
use Behat\Behat\Context\Context; |
|||
use Behat\Behat\Context\SnippetAcceptingContext; |
|||
use Behat\Behat\Tester\Exception\PendingException; |
|||
use GuzzleHttp\Client; |
|||
|
|||
require __DIR__ . '/../../vendor/autoload.php'; |
|||
|
|||
class FilesDropContext implements Context, SnippetAcceptingContext { |
|||
use WebDav; |
|||
|
|||
/** |
|||
* @When Dropping file :path with :content |
|||
*/ |
|||
public function droppingFileWith($path, $content) { |
|||
$client = new Client(); |
|||
$options = []; |
|||
if (count($this->lastShareData->data->element) > 0){ |
|||
$token = $this->lastShareData->data[0]->token; |
|||
} else { |
|||
$token = $this->lastShareData->data[0]->token; |
|||
} |
|||
|
|||
$base = substr($this->baseUrl, 0, -4); |
|||
$fullUrl = $base . '/public.php/webdav' . $path; |
|||
|
|||
$options['auth'] = [$token, '']; |
|||
$options['headers'] = [ |
|||
'X-REQUESTED-WITH' => 'XMLHttpRequest' |
|||
]; |
|||
|
|||
$request = $client->createRequest('PUT', $fullUrl, $options); |
|||
$file = \GuzzleHttp\Stream\Stream::factory($content); |
|||
$request->setBody($file); |
|||
|
|||
try { |
|||
$this->response = $client->send($request); |
|||
} catch (\GuzzleHttp\Exception\ClientException $e) { |
|||
$this->response = $e->getResponse(); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* @When Creating folder :folder in drop |
|||
*/ |
|||
public function creatingFolderInDrop($folder) { |
|||
$client = new Client(); |
|||
$options = []; |
|||
if (count($this->lastShareData->data->element) > 0){ |
|||
$token = $this->lastShareData->data[0]->token; |
|||
} else { |
|||
$token = $this->lastShareData->data[0]->token; |
|||
} |
|||
|
|||
$base = substr($this->baseUrl, 0, -4); |
|||
$fullUrl = $base . '/public.php/webdav/' . $folder; |
|||
|
|||
$options['auth'] = [$token, '']; |
|||
$options['headers'] = [ |
|||
'X-REQUESTED-WITH' => 'XMLHttpRequest' |
|||
]; |
|||
|
|||
$request = $client->createRequest('MKCOL', $fullUrl, $options); |
|||
|
|||
try { |
|||
$this->response = $client->send($request); |
|||
} catch (\GuzzleHttp\Exception\ClientException $e) { |
|||
$this->response = $e->getResponse(); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
Feature: FilesDrop |
|||
|
|||
Scenario: Put file via files drop |
|||
Given user "user0" exists |
|||
And As an "user0" |
|||
And user "user0" created a folder "/drop" |
|||
And as "user0" creating a share with |
|||
| path | drop | |
|||
| shareType | 3 | |
|||
| publicUpload | true | |
|||
And Updating last share with |
|||
| permissions | 4 | |
|||
When Dropping file "/a.txt" with "abc" |
|||
And Downloading file "/drop/a.txt" |
|||
Then Downloaded content should be "abc" |
|||
|
|||
Scenario: Put file same file multiple times via files drop |
|||
Given user "user0" exists |
|||
And As an "user0" |
|||
And user "user0" created a folder "/drop" |
|||
And as "user0" creating a share with |
|||
| path | drop | |
|||
| shareType | 3 | |
|||
| publicUpload | true | |
|||
And Updating last share with |
|||
| permissions | 4 | |
|||
When Dropping file "/a.txt" with "abc" |
|||
And Dropping file "/a.txt" with "def" |
|||
And Downloading file "/drop/a.txt" |
|||
Then Downloaded content should be "abc" |
|||
And Downloading file "/drop/a (2).txt" |
|||
Then Downloaded content should be "def" |
|||
|
|||
Scenario: Files drop ignores directory |
|||
Given user "user0" exists |
|||
And As an "user0" |
|||
And user "user0" created a folder "/drop" |
|||
And as "user0" creating a share with |
|||
| path | drop | |
|||
| shareType | 3 | |
|||
| publicUpload | true | |
|||
And Updating last share with |
|||
| permissions | 4 | |
|||
When Dropping file "/folder/a.txt" with "abc" |
|||
And Downloading file "/drop/a.txt" |
|||
Then Downloaded content should be "abc" |
|||
|
|||
Scenario: Files drop forbis MKCOL |
|||
Given user "user0" exists |
|||
And As an "user0" |
|||
And user "user0" created a folder "/drop" |
|||
And as "user0" creating a share with |
|||
| path | drop | |
|||
| shareType | 3 | |
|||
| publicUpload | true | |
|||
And Updating last share with |
|||
| permissions | 4 | |
|||
When Creating folder "folder" in drop |
|||
Then the HTTP status code should be "405" |
Write
Preview
Loading…
Cancel
Save
Reference in new issue