Only match LOCAL and REMOTE as servers, correctly make use of the sharer server from the command

This commit is contained in:
Joas Schilling 2016-03-14 10:51:52 +01:00
parent e0998c27ff
commit f62a7b2447
3 changed files with 30 additions and 30 deletions

View File

@ -69,18 +69,20 @@ trait BasicStructure {
} }
/** /**
* @Given /^Using server "([^"]*)"$/ * @Given /^Using server "(LOCAL|REMOTE)"$/
* @param string $server * @param string $server
* @return string Previous used server
*/ */
public function usingServer($server) { public function usingServer($server) {
$previousServer = $this->currentServer;
if ($server === 'LOCAL'){ if ($server === 'LOCAL'){
$this->baseUrl = $this->localBaseUrl; $this->baseUrl = $this->localBaseUrl;
$this->currentServer = 'LOCAL'; $this->currentServer = 'LOCAL';
} elseif ($server === 'REMOTE'){ return $previousServer;
} else {
$this->baseUrl = $this->remoteBaseUrl; $this->baseUrl = $this->remoteBaseUrl;
$this->currentServer = 'REMOTE'; $this->currentServer = 'REMOTE';
} else{ return $previousServer;
PHPUnit_Framework_Assert::fail("Server can only be LOCAL or REMOTE");
} }
} }

View File

@ -15,22 +15,32 @@ class FederationContext implements Context, SnippetAcceptingContext {
use Sharing; use Sharing;
/** /**
* @When /^User "([^"]*)" from server "([^"]*)" shares "([^"]*)" with user "([^"]*)" from server "([^"]*)"$/ * @Given /^User "([^"]*)" from server "(LOCAL|REMOTE)" shares "([^"]*)" with user "([^"]*)" from server "(LOCAL|REMOTE)"$/
*
* @param string $sharerUser
* @param string $sharerServer "LOCAL" or "REMOTE"
* @param string $sharerPath
* @param string $shareeUser
* @param string $shareeServer "LOCAL" or "REMOTE"
*/ */
public function federateSharing($userLocal, $serverLocal, $pathLocal, $userRemote, $serverRemote){ public function federateSharing($sharerUser, $sharerServer, $sharerPath, $shareeUser, $shareeServer){
if ($serverRemote == "REMOTE"){ if ($shareeServer == "REMOTE"){
$shareWith = "$userRemote@" . substr($this->remoteBaseUrl, 0, -4); $shareWith = "$shareeUser@" . substr($this->remoteBaseUrl, 0, -4);
} elseif ($serverRemote == "LOCAL") { } else {
$shareWith = "$userRemote@" . substr($this->localBaseUrl, 0, -4); $shareWith = "$shareeUser@" . substr($this->localBaseUrl, 0, -4);
} }
$this->createShare($userLocal, $pathLocal, 6, $shareWith, null, null, null); $previous = $this->usingServer($sharerServer);
$this->createShare($sharerUser, $sharerPath, 6, $shareWith, null, null, null);
$this->usingServer($previous);
} }
/** /**
* @When /^User "([^"]*)" from server "([^"]*)" accepts last pending share$/ * @When /^User "([^"]*)" from server "(LOCAL|REMOTE)" accepts last pending share$/
* @param string $user
* @param string $server
*/ */
public function acceptLastPendingShare($user, $server){ public function acceptLastPendingShare($user, $server){
$this->usingServer($server); $previous = $this->usingServer($server);
$this->asAn($user); $this->asAn($user);
$this->sendingToWith('GET', "/apps/files_sharing/api/v1/remote_shares/pending", null); $this->sendingToWith('GET', "/apps/files_sharing/api/v1/remote_shares/pending", null);
$this->theHTTPStatusCodeShouldBe('200'); $this->theHTTPStatusCodeShouldBe('200');
@ -39,18 +49,6 @@ class FederationContext implements Context, SnippetAcceptingContext {
$this->sendingToWith('POST', "/apps/files_sharing/api/v1/remote_shares/pending/{$share_id}", null); $this->sendingToWith('POST', "/apps/files_sharing/api/v1/remote_shares/pending/{$share_id}", null);
$this->theHTTPStatusCodeShouldBe('200'); $this->theHTTPStatusCodeShouldBe('200');
$this->theOCSStatusCodeShouldBe('100'); $this->theOCSStatusCodeShouldBe('100');
$this->usingServer($previous);
} }
/**
* @param string $app
* @param string $parameter
* @param string $value
*/
protected function modifyServerConfig($app, $parameter, $value) {
$body = new \Behat\Gherkin\Node\TableNode([['value', $value]]);
$this->sendingToWith('post', "/apps/testing/api/v1/app/{$app}/{$parameter}", $body);
$this->theHTTPStatusCodeShouldBe('200');
$this->theOCSStatusCodeShouldBe('100');
}
} }

View File

@ -97,10 +97,10 @@ Feature: federated
And Using server "REMOTE" And Using server "REMOTE"
And As an "user1" And As an "user1"
When creating a share with When creating a share with
| path | /textfile0 (2).txt | | path | /textfile0 (2).txt |
| shareType | 0 | | shareType | 0 |
| shareWith | user2 | | shareWith | user2 |
| permissions | 19 | | permissions | 19 |
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 Share fields of last share match with And Share fields of last share match with