diff --git a/tests/acceptance/features/app-files-sharing.feature b/tests/acceptance/features/app-files-sharing.feature index 401384816e..e3b0ec30cf 100644 --- a/tests/acceptance/features/app-files-sharing.feature +++ b/tests/acceptance/features/app-files-sharing.feature @@ -20,6 +20,33 @@ Feature: app-files-sharing And I see that the "Sharing" tab in the details view is eventually loaded And I see that the file is shared with me by "admin" + Scenario: share a file with another user that needs to accept shares + Given I act as John + And I am logged in as the admin + And I act as Jane + And I am logged in + And I visit the settings page + And I open the "Sharing" section + And I disable accepting the shares by default + And I see that shares are not accepted by default + And I act as John + And I rename "welcome.txt" to "farewell.txt" + And I see that the file list contains a file named "farewell.txt" + When I share "farewell.txt" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + And I open the Files app + And I see that the file list does not contain a file named "farewell.txt" + And I accept the share for "/farewell.txt" in the notifications + # The Files app is open again to reload the file list + And I open the Files app + Then I see that the file list contains a file named "farewell.txt" + And I open the details view for "farewell.txt" + And I see that the details view is open + And I open the "Sharing" tab in the details view + And I see that the "Sharing" tab in the details view is eventually loaded + And I see that the file is shared with me by "admin" + Scenario: share a file with another user who already has a file with that name Given I act as John And I am logged in as the admin diff --git a/tests/acceptance/features/bootstrap/SettingsContext.php b/tests/acceptance/features/bootstrap/SettingsContext.php index edbb6a94d1..82b22c4333 100644 --- a/tests/acceptance/features/bootstrap/SettingsContext.php +++ b/tests/acceptance/features/bootstrap/SettingsContext.php @@ -27,6 +27,25 @@ class SettingsContext implements Context, ActorAwareInterface { use ActorAware; + /** + * @return Locator + */ + public static function acceptSharesByDefaultCheckbox() { + // forThe()->checkbox("Accept user...") can not be used here; that would + // return the checkbox itself, but the element that the user interacts + // with is the label. + return Locator::forThe()->xpath("//label[normalize-space() = 'Accept user and group shares by default']")-> + describedAs("Accept shares by default checkbox in Sharing section in Personal Sharing Settings"); + } + + /** + * @return Locator + */ + public static function acceptSharesByDefaultCheckboxInput() { + return Locator::forThe()->checkbox("Accept user and group shares by default")-> + describedAs("Accept shares by default checkbox input in Sharing section in Personal Sharing Settings"); + } + /** * @return Locator */ @@ -84,6 +103,15 @@ class SettingsContext implements Context, ActorAwareInterface { describedAs("Reset button in system tags section in Administration Settings"); } + /** + * @When I disable accepting the shares by default + */ + public function iDisableAcceptingTheSharesByDefault() { + $this->iSeeThatSharesAreAcceptedByDefault(); + + $this->actor->find(self::acceptSharesByDefaultCheckbox(), 2)->click(); + } + /** * @When I create the tag :tag in the settings */ @@ -93,6 +121,22 @@ class SettingsContext implements Context, ActorAwareInterface { $this->actor->find(self::systemTagsCreateOrUpdateButton())->click(); } + /** + * @Then I see that shares are accepted by default + */ + public function iSeeThatSharesAreAcceptedByDefault() { + PHPUnit_Framework_Assert::assertTrue( + $this->actor->find(self::acceptSharesByDefaultCheckboxInput(), 10)->isChecked()); + } + + /** + * @Then I see that shares are not accepted by default + */ + public function iSeeThatSharesAreNotAcceptedByDefault() { + PHPUnit_Framework_Assert::assertFalse( + $this->actor->find(self::acceptSharesByDefaultCheckboxInput(), 10)->isChecked()); + } + /** * @Then I see that the button to select tags is shown */