From dab4a70bcf75878cf1542d010f5894e5c7e272ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 11 Jan 2018 04:30:52 +0100 Subject: [PATCH] Add acceptance test for renaming a file with the details view open MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- tests/acceptance/features/app-files.feature | 7 +++ .../features/bootstrap/FilesAppContext.php | 50 +++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/tests/acceptance/features/app-files.feature b/tests/acceptance/features/app-files.feature index 2cb43611b9..ef3d07ae49 100644 --- a/tests/acceptance/features/app-files.feature +++ b/tests/acceptance/features/app-files.feature @@ -23,6 +23,13 @@ Feature: app-files When I open the details view for "welcome.txt" Then I see that the details view for "All files" section is open + Scenario: rename a file with the details view open + Given I am logged in + And I open the details view for "welcome.txt" + When I rename "welcome.txt" to "farewell.txt" + Then I see that the file list contains a file named "farewell.txt" + And I see that the file name shown in the details view is "farewell.txt" + Scenario: open the menu in a public shared link Given I act as John And I am logged in diff --git a/tests/acceptance/features/bootstrap/FilesAppContext.php b/tests/acceptance/features/bootstrap/FilesAppContext.php index 4951dc43f1..117f3b54fb 100644 --- a/tests/acceptance/features/bootstrap/FilesAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesAppContext.php @@ -86,6 +86,15 @@ class FilesAppContext implements Context, ActorAwareInterface { describedAs("Close current section details view in Files app"); } + /** + * @return Locator + */ + public static function fileNameInCurrentSectionDetailsView() { + return Locator::forThe()->css(".fileName")-> + descendantOf(self::currentSectionDetailsView())-> + describedAs("File name in current section details view in Files app"); + } + /** * @return Locator */ @@ -316,6 +325,14 @@ class FilesAppContext implements Context, ActorAwareInterface { describedAs("Main link for file $fileName in Files app"); } + /** + * @return Locator + */ + public static function renameInputForFile($fileName) { + return Locator::forThe()->css("input.filename")->descendantOf(self::rowForFile($fileName))-> + describedAs("Rename input for file $fileName in Files app"); + } + /** * @return Locator */ @@ -347,6 +364,13 @@ class FilesAppContext implements Context, ActorAwareInterface { return self::fileActionsMenuItemFor("Details"); } + /** + * @return Locator + */ + public static function renameMenuItem() { + return self::fileActionsMenuItemFor("Rename"); + } + /** * @return Locator */ @@ -417,6 +441,17 @@ class FilesAppContext implements Context, ActorAwareInterface { $this->actor->find(self::tabHeaderInCurrentSectionDetailsViewNamed($tabName), 10)->click(); } + /** + * @Given I rename :fileName1 to :fileName2 + */ + public function iRenameTo($fileName1, $fileName2) { + $this->actor->find(self::fileActionsMenuButtonForFile($fileName1), 10)->click(); + + $this->actor->find(self::renameMenuItem(), 2)->click(); + + $this->actor->find(self::renameInputForFile($fileName1), 10)->setValue($fileName2 . "\r"); + } + /** * @Given I mark :fileName as favorite */ @@ -542,6 +577,13 @@ class FilesAppContext implements Context, ActorAwareInterface { } } + /** + * @Then I see that the file list contains a file named :fileName + */ + public function iSeeThatTheFileListContainsAFileNamed($fileName) { + PHPUnit_Framework_Assert::assertNotNull($this->actor->find(self::rowForFile($fileName), 10)); + } + /** * @Then I see that :fileName1 precedes :fileName2 in the file list */ @@ -563,6 +605,14 @@ class FilesAppContext implements Context, ActorAwareInterface { PHPUnit_Framework_Assert::assertNotNull($this->actor->find(self::notFavoritedStateIconForFile($fileName), 10)); } + /** + * @Then I see that the file name shown in the details view is :fileName + */ + public function iSeeThatTheFileNameShownInTheDetailsViewIs($fileName) { + PHPUnit_Framework_Assert::assertEquals( + $this->actor->find(self::fileNameInCurrentSectionDetailsView(), 10)->getText(), $fileName); + } + /** * @Then I see that the input field for tags in the details view is shown */