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