Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add acceptance test for sharing a folder without create permission
Signed-off-by: Daniel Calviño Sánchez <[email protected]>
  • Loading branch information
danxuliu committed Jun 11, 2020
commit 33222d67ea758d9592aa6adaa51e84ccc0b0c0fa
20 changes: 20 additions & 0 deletions tests/acceptance/features/app-files-sharing.feature
Original file line number Diff line number Diff line change
Expand Up @@ -314,3 +314,23 @@ Feature: app-files-sharing
Then I see that the file is shared with "user1"
And I see that "user1" can not edit the share
And I see that "user1" can not be allowed to edit the share

Scenario: sharee can not reshare a folder with create permission if the sharer disables it
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 act as John
And I create a new folder named "Shared folder"
And I see that the file list contains a file named "Shared folder"
And I share "Shared folder" with "user0"
And I see that the file is shared with "user0"
And I set the share with "user0" as not creatable
And I see that "user0" can not create in the share
When I act as Jane
# The Files app is open again to reload the file list
And I open the Files app
And I share "Shared folder" with "user1"
Then I see that the file is shared with "user1"
And I see that "user1" can not create in the share
And I see that "user1" can not be allowed to create in the share
55 changes: 55 additions & 0 deletions tests/acceptance/features/bootstrap/FilesAppSharingContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,20 @@ public static function canEditCheckboxInput($sharedWithName) {
return self::permissionCheckboxInputFor($sharedWithName, 'Allow editing');
}

/**
* @return Locator
*/
public static function canCreateCheckbox($sharedWithName) {
return self::permissionCheckboxFor($sharedWithName, 'Allow creating');
}

/**
* @return Locator
*/
public static function canCreateCheckboxInput($sharedWithName) {
return self::permissionCheckboxInputFor($sharedWithName, 'Allow creating');
}

/**
* @return Locator
*/
Expand Down Expand Up @@ -397,6 +411,17 @@ public function iSetTheShareWithAsNotEditable($shareWithName) {
$this->actor->find(self::canEditCheckbox($shareWithName), 2)->click();
}

/**
* @When I set the share with :shareWithName as not creatable
*/
public function iSetTheShareWithAsNotCreatable($shareWithName) {
$this->showShareWithMenuIfNeeded($shareWithName);

$this->iSeeThatCanCreateInTheShare($shareWithName);

$this->actor->find(self::canCreateCheckbox($shareWithName), 2)->click();
}

/**
* @When I set the share with :shareWithName as not reshareable
*/
Expand Down Expand Up @@ -464,6 +489,36 @@ public function iSeeThatCanNotEditTheShare($sharedWithName) {
$this->actor->find(self::canEditCheckboxInput($sharedWithName), 10)->isChecked());
}

/**
* @Then I see that :sharedWithName can not be allowed to create in the share
*/
public function iSeeThatCanNotBeAllowedToCreateInTheShare($sharedWithName) {
$this->showShareWithMenuIfNeeded($sharedWithName);

PHPUnit_Framework_Assert::assertEquals(
$this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->getWrappedElement()->getAttribute("disabled"), "disabled");
}

/**
* @Then I see that :sharedWithName can create in the share
*/
public function iSeeThatCanCreateInTheShare($sharedWithName) {
$this->showShareWithMenuIfNeeded($sharedWithName);

PHPUnit_Framework_Assert::assertTrue(
$this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->isChecked());
}

/**
* @Then I see that :sharedWithName can not create in the share
*/
public function iSeeThatCanNotCreateInTheShare($sharedWithName) {
$this->showShareWithMenuIfNeeded($sharedWithName);

PHPUnit_Framework_Assert::assertFalse(
$this->actor->find(self::canCreateCheckboxInput($sharedWithName), 10)->isChecked());
}

/**
* @Then I see that :sharedWithName can reshare the share
*/
Expand Down