Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>pull/4462/head
parent
13c84f6629
commit
316710bcb1
@ -0,0 +1,31 @@ |
|||||||
|
Feature: app-files |
||||||
|
|
||||||
|
Scenario: set a password to a shared link |
||||||
|
Given I am logged in |
||||||
|
And I share the link for "welcome.txt" |
||||||
|
When I protect the shared link with the password "abcdef" |
||||||
|
Then I see that the working icon for password protect is shown |
||||||
|
And I see that the working icon for password protect is eventually not shown |
||||||
|
|
||||||
|
Scenario: access a shared link protected by password with a valid password |
||||||
|
Given I act as John |
||||||
|
And I am logged in |
||||||
|
And I share the link for "welcome.txt" protected by the password "abcdef" |
||||||
|
And I write down the shared link |
||||||
|
When I act as Jane |
||||||
|
And I visit the shared link I wrote down |
||||||
|
And I see that the current page is the Authenticate page for the shared link I wrote down |
||||||
|
And I authenticate with password "abcdef" |
||||||
|
Then I see that the current page is the shared link I wrote down |
||||||
|
And I see that the shared file preview shows the text "Welcome to your Nextcloud account!" |
||||||
|
|
||||||
|
Scenario: access a shared link protected by password with an invalid password |
||||||
|
Given I act as John |
||||||
|
And I am logged in |
||||||
|
And I share the link for "welcome.txt" protected by the password "abcdef" |
||||||
|
And I write down the shared link |
||||||
|
When I act as Jane |
||||||
|
And I visit the shared link I wrote down |
||||||
|
And I authenticate with password "fedcba" |
||||||
|
Then I see that the current page is the Authenticate page for the shared link I wrote down |
||||||
|
And I see that a wrong password for the shared file message is shown |
@ -0,0 +1,110 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) |
||||||
|
* |
||||||
|
* @license GNU AGPL version 3 or any later version |
||||||
|
* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU Affero General Public License as |
||||||
|
* published by the Free Software Foundation, either version 3 of the |
||||||
|
* License, or (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU Affero General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU Affero General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
use Behat\Behat\Context\Context; |
||||||
|
|
||||||
|
class FilesSharingAppContext implements Context, ActorAwareInterface { |
||||||
|
|
||||||
|
use ActorAware; |
||||||
|
|
||||||
|
/** |
||||||
|
* @return Locator |
||||||
|
*/ |
||||||
|
public static function passwordField() { |
||||||
|
return Locator::forThe()->field("password")-> |
||||||
|
describedAs("Password field in Authenticate page"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return Locator |
||||||
|
*/ |
||||||
|
public static function authenticateButton() { |
||||||
|
return Locator::forThe()->id("password-submit")-> |
||||||
|
describedAs("Authenticate button in Authenticate page"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return Locator |
||||||
|
*/ |
||||||
|
public static function wrongPasswordMessage() { |
||||||
|
return Locator::forThe()->content("The password is wrong. Try again.")-> |
||||||
|
describedAs("Wrong password message in Authenticate page"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return Locator |
||||||
|
*/ |
||||||
|
public static function textPreview() { |
||||||
|
return Locator::forThe()->css(".text-preview")-> |
||||||
|
describedAs("Text preview in Shared file page"); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @When I visit the shared link I wrote down |
||||||
|
*/ |
||||||
|
public function iVisitTheSharedLinkIWroteDown() { |
||||||
|
$this->actor->getSession()->visit($this->actor->getSharedNotebook()["shared link"]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @When I authenticate with password :password |
||||||
|
*/ |
||||||
|
public function iAuthenticateWithPassword($password) { |
||||||
|
$this->actor->find(self::passwordField(), 10)->setValue($password); |
||||||
|
$this->actor->find(self::authenticateButton())->click(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @Then I see that the current page is the Authenticate page for the shared link I wrote down |
||||||
|
*/ |
||||||
|
public function iSeeThatTheCurrentPageIsTheAuthenticatePageForTheSharedLinkIWroteDown() { |
||||||
|
PHPUnit_Framework_Assert::assertEquals( |
||||||
|
$this->actor->getSharedNotebook()["shared link"] . "/authenticate", |
||||||
|
$this->actor->getSession()->getCurrentUrl()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @Then I see that the current page is the shared link I wrote down |
||||||
|
*/ |
||||||
|
public function iSeeThatTheCurrentPageIsTheSharedLinkIWroteDown() { |
||||||
|
PHPUnit_Framework_Assert::assertEquals( |
||||||
|
$this->actor->getSharedNotebook()["shared link"], |
||||||
|
$this->actor->getSession()->getCurrentUrl()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @Then I see that a wrong password for the shared file message is shown |
||||||
|
*/ |
||||||
|
public function iSeeThatAWrongPasswordForTheSharedFileMessageIsShown() { |
||||||
|
PHPUnit_Framework_Assert::assertTrue( |
||||||
|
$this->actor->find(self::wrongPasswordMessage(), 10)->isVisible()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @Then I see that the shared file preview shows the text :text |
||||||
|
*/ |
||||||
|
public function iSeeThatTheSharedFilePreviewShowsTheText($text) { |
||||||
|
PHPUnit_Framework_Assert::assertContains($text, $this->actor->find(self::textPreview(), 10)->getText()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue