Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Nextcloud
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TeDomum
Nextcloud
Commits
75b734ec
Commit
75b734ec
authored
6 years ago
by
Daniel Calviño Sánchez
Browse files
Options
Downloads
Patches
Plain Diff
Add acceptance tests for folders that can not be reshared
Signed-off-by:
Daniel Calviño Sánchez
<
danxuliu@gmail.com
>
parent
d9ad31bd
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
tests/acceptance/features/app-files.feature
+49
-0
49 additions, 0 deletions
tests/acceptance/features/app-files.feature
tests/acceptance/features/bootstrap/FilesAppContext.php
+93
-0
93 additions, 0 deletions
tests/acceptance/features/bootstrap/FilesAppContext.php
with
142 additions
and
0 deletions
tests/acceptance/features/app-files.feature
+
49
−
0
View file @
75b734ec
...
@@ -514,6 +514,55 @@ Feature: app-files
...
@@ -514,6 +514,55 @@ Feature: app-files
And
I enter in the folder named
"Shared folder"
And
I enter in the folder named
"Shared folder"
Then
I see that the file list contains a file named
"Subfolder"
Then
I see that the file list contains a file named
"Subfolder"
Scenario
:
sharee can not reshare a folder 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 reshareable
And
I see that
"user0"
can not reshare the share
When
I act as Jane
# 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
"Shared folder"
And
I open the details view for
"Shared folder"
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"
And
I see that resharing the file is not allowed
Scenario
:
sharee can not reshare a subfolder if the sharer disables it for the parent folder
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 reshareable
And
I see that
"user0"
can not reshare the share
And
I enter in the folder named
"Shared folder"
And
I create a new folder named
"Subfolder"
And
I see that the file list contains a file named
"Subfolder"
When
I act as Jane
# The Files app is open again to reload the file list
And
I open the Files app
And
I enter in the folder named
"Shared folder"
Then
I see that the file list contains a file named
"Subfolder"
And
I open the details view for
"Subfolder"
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 resharing the file is not allowed
Scenario
:
marking a file as favorite causes the file list to be sorted again
Scenario
:
marking a file as favorite causes the file list to be sorted again
Given
I am logged in
Given
I am logged in
And
I create a new folder named
"A name alphabetically lower than welcome.txt"
And
I create a new folder named
"A name alphabetically lower than welcome.txt"
...
...
This diff is collapsed.
Click to expand it.
tests/acceptance/features/bootstrap/FilesAppContext.php
+
93
−
0
View file @
75b734ec
...
@@ -266,6 +266,45 @@ class FilesAppContext implements Context, ActorAwareInterface {
...
@@ -266,6 +266,45 @@ class FilesAppContext implements Context, ActorAwareInterface {
describedAs
(
"Shared with
$sharedWithName
row in the details view in Files app"
);
describedAs
(
"Shared with
$sharedWithName
row in the details view in Files app"
);
}
}
/**
* @return Locator
*/
public
static
function
shareWithMenuButton
(
$sharedWithName
)
{
return
Locator
::
forThe
()
->
css
(
".share-menu > .icon"
)
->
descendantOf
(
self
::
sharedWithRow
(
$sharedWithName
))
->
describedAs
(
"Share with
$sharedWithName
menu button in the details view in Files app"
);
}
/**
* @return Locator
*/
public
static
function
shareWithMenu
(
$sharedWithName
)
{
return
Locator
::
forThe
()
->
css
(
".share-menu > .menu"
)
->
descendantOf
(
self
::
sharedWithRow
(
$sharedWithName
))
->
describedAs
(
"Share with
$sharedWithName
menu in the details view in Files app"
);
}
/**
* @return Locator
*/
public
static
function
canReshareCheckbox
(
$sharedWithName
)
{
// forThe()->checkbox("Can reshare") 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() = 'Can reshare']"
)
->
descendantOf
(
self
::
shareWithMenu
(
$sharedWithName
))
->
describedAs
(
"Can reshare checkbox in the share with
$sharedWithName
menu in the details view in Files app"
);
}
/**
* @return Locator
*/
public
static
function
canReshareCheckboxInput
(
$sharedWithName
)
{
return
Locator
::
forThe
()
->
checkbox
(
"Can reshare"
)
->
descendantOf
(
self
::
shareWithMenu
(
$sharedWithName
))
->
describedAs
(
"Can reshare checkbox input in the share with
$sharedWithName
menu in the details view in Files app"
);
}
/**
/**
* @return Locator
* @return Locator
*/
*/
...
@@ -570,6 +609,17 @@ class FilesAppContext implements Context, ActorAwareInterface {
...
@@ -570,6 +609,17 @@ class FilesAppContext implements Context, ActorAwareInterface {
$this
->
actor
->
find
(
self
::
passwordProtectByTalkCheckbox
(),
2
)
->
click
();
$this
->
actor
->
find
(
self
::
passwordProtectByTalkCheckbox
(),
2
)
->
click
();
}
}
/**
* @When I set the share with :shareWithName as not reshareable
*/
public
function
iSetTheShareWithAsNotReshareable
(
$shareWithName
)
{
$this
->
showShareWithMenuIfNeeded
(
$shareWithName
);
$this
->
iSeeThatCanReshareTheShare
(
$shareWithName
);
$this
->
actor
->
find
(
self
::
canReshareCheckbox
(
$shareWithName
),
2
)
->
click
();
}
/**
/**
* @Then I see that the current page is the Files app
* @Then I see that the current page is the Files app
*/
*/
...
@@ -708,6 +758,36 @@ class FilesAppContext implements Context, ActorAwareInterface {
...
@@ -708,6 +758,36 @@ class FilesAppContext implements Context, ActorAwareInterface {
$this
->
actor
->
find
(
self
::
sharedWithRow
(
$sharedWithName
),
10
)
->
isVisible
());
$this
->
actor
->
find
(
self
::
sharedWithRow
(
$sharedWithName
),
10
)
->
isVisible
());
}
}
/**
* @Then I see that resharing the file is not allowed
*/
public
function
iSeeThatResharingTheFileIsNotAllowed
()
{
PHPUnit_Framework_Assert
::
assertEquals
(
$this
->
actor
->
find
(
self
::
shareWithInput
(),
10
)
->
getWrappedElement
()
->
getAttribute
(
"disabled"
),
"disabled"
);
PHPUnit_Framework_Assert
::
assertEquals
(
$this
->
actor
->
find
(
self
::
shareWithInput
(),
10
)
->
getWrappedElement
()
->
getAttribute
(
"placeholder"
),
"Resharing is not allowed"
);
}
/**
* @Then I see that :sharedWithName can reshare the share
*/
public
function
iSeeThatCanReshareTheShare
(
$sharedWithName
)
{
$this
->
showShareWithMenuIfNeeded
(
$sharedWithName
);
PHPUnit_Framework_Assert
::
assertTrue
(
$this
->
actor
->
find
(
self
::
canReshareCheckboxInput
(
$sharedWithName
),
10
)
->
isChecked
());
}
/**
* @Then I see that :sharedWithName can not reshare the share
*/
public
function
iSeeThatCanNotReshareTheShare
(
$sharedWithName
)
{
$this
->
showShareWithMenuIfNeeded
(
$sharedWithName
);
PHPUnit_Framework_Assert
::
assertFalse
(
$this
->
actor
->
find
(
self
::
canReshareCheckboxInput
(
$sharedWithName
),
10
)
->
isChecked
());
}
/**
/**
* @Then I see that the download of the link share is hidden
* @Then I see that the download of the link share is hidden
*/
*/
...
@@ -809,4 +889,17 @@ class FilesAppContext implements Context, ActorAwareInterface {
...
@@ -809,4 +889,17 @@ class FilesAppContext implements Context, ActorAwareInterface {
}
}
}
}
private
function
showShareWithMenuIfNeeded
(
$shareWithName
)
{
// In some cases the share menu is hidden after clicking on an action of
// the menu. Therefore, if the menu is visible, wait a little just in
// case it is in the process of being hidden due to a previous action,
// in which case it is shown again.
if
(
WaitFor
::
elementToBeEventuallyNotShown
(
$this
->
actor
,
self
::
shareWithMenu
(
$shareWithName
),
$timeout
=
2
*
$this
->
actor
->
getFindTimeoutMultiplier
()))
{
$this
->
actor
->
find
(
self
::
shareWithMenuButton
(
$shareWithName
),
10
)
->
click
();
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment