From 4566670fa38c64fff020fe012e2bd33254f55b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Fri, 21 Dec 2018 20:14:38 +0100 Subject: [PATCH] Add acceptance tests for opening search results for comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- .../acceptance/features/app-comments.feature | 56 +++++++++++++++++++ .../features/bootstrap/FileListContext.php | 19 +++++++ .../features/bootstrap/SearchContext.php | 16 ++++++ 3 files changed, 91 insertions(+) diff --git a/tests/acceptance/features/app-comments.feature b/tests/acceptance/features/app-comments.feature index 8d188436f2..ee60ece1ce 100644 --- a/tests/acceptance/features/app-comments.feature +++ b/tests/acceptance/features/app-comments.feature @@ -267,3 +267,59 @@ Feature: app-comments # Search results for comments also include the user that wrote the comment. Then I see that the search result 1 is "user0Hello world" And I see that the search result 1 was found in "shared.txt" + + Scenario: open a search result for a comment in a file + Given I am logged in + And I open the details view for "welcome.txt" + And I open the "Comments" tab in the details view + And I create a new comment with "Hello world" as message + And I see a comment with "Hello world" as message + # Force the details view to change to a different file before closing it + And I create a new folder named "Folder" + And I close the details view + When I search for "hello" + And I open the search result 1 + Then I see that the details view is open + And I see that the file name shown in the details view is "welcome.txt" + And I see a comment with "Hello world" as message + And I see that the file list is currently in "Home" + And I see that the file list contains a file named "welcome.txt" + + Scenario: open a search result for a comment in a folder named like its child folder + Given I am logged in + And I create a new folder named "Folder" + And I open the details view for "Folder" + And I open the "Comments" tab in the details view + And I create a new comment with "Hello world" as message + And I see a comment with "Hello world" as message + And I enter in the folder named "Folder" + And I create a new folder named "Folder" + # The Files app is open again to reload the file list + And I open the Files app + When I search for "hello" + And I open the search result 1 + Then I see that the details view is open + And I see that the file name shown in the details view is "Folder" + And I see a comment with "Hello world" as message + And I see that the file list is currently in "Home" + And I see that the file list contains a file named "welcome.txt" + And I see that the file list contains a file named "Folder" + + Scenario: open a search result for a comment in a child folder + Given I am logged in + And I create a new folder named "Folder" + And I enter in the folder named "Folder" + And I create a new folder named "Child folder" + And I open the details view for "Child folder" + And I open the "Comments" tab in the details view + And I create a new comment with "Hello world" as message + And I see a comment with "Hello world" as message + # The Files app is open again to reload the file list + And I open the Files app + When I search for "hello" + And I open the search result 1 + Then I see that the details view is open + And I see that the file name shown in the details view is "Child folder" + And I see a comment with "Hello world" as message + And I see that the file list is currently in "Home/Folder" + And I see that the file list contains a file named "Child folder" diff --git a/tests/acceptance/features/bootstrap/FileListContext.php b/tests/acceptance/features/bootstrap/FileListContext.php index 90d2aeebdc..ee35de40c5 100644 --- a/tests/acceptance/features/bootstrap/FileListContext.php +++ b/tests/acceptance/features/bootstrap/FileListContext.php @@ -87,6 +87,15 @@ class FileListContext implements Context, ActorAwareInterface { describedAs("Main working icon in file list"); } + /** + * @return Locator + */ + public static function breadcrumbs($fileListAncestor) { + return Locator::forThe()->css("#controls .breadcrumb")-> + descendantOf($fileListAncestor)-> + describedAs("Breadcrumbs in file list"); + } + /** * @return Locator */ @@ -375,6 +384,16 @@ class FileListContext implements Context, ActorAwareInterface { } } + /** + * @Then I see that the file list is currently in :path + */ + public function iSeeThatTheFileListIsCurrentlyIn($path) { + // The text of the breadcrumbs is the text of all the crumbs separated + // by white spaces. + PHPUnit_Framework_Assert::assertEquals( + str_replace('/', ' ', $path), $this->actor->find(self::breadcrumbs($this->fileListAncestor), 10)->getText()); + } + /** * @Then I see that it is not possible to create new files */ diff --git a/tests/acceptance/features/bootstrap/SearchContext.php b/tests/acceptance/features/bootstrap/SearchContext.php index 3633160688..d2d6b70806 100644 --- a/tests/acceptance/features/bootstrap/SearchContext.php +++ b/tests/acceptance/features/bootstrap/SearchContext.php @@ -73,6 +73,15 @@ class SearchContext implements Context, ActorAwareInterface { describedAs("Path for search result $number"); } + /** + * @return Locator + */ + public static function searchResultLink($number) { + return Locator::forThe()->css(".link")-> + descendantOf(self::searchResult($number))-> + describedAs("Link for search result $number"); + } + /** * @When I search for :query */ @@ -80,6 +89,13 @@ class SearchContext implements Context, ActorAwareInterface { $this->actor->find(self::searchBoxInput(), 10)->setValue($query . "\r"); } + /** + * @When I open the search result :number + */ + public function iOpenTheSearchResult($number) { + $this->actor->find(self::searchResultLink($number), 10)->click(); + } + /** * @Then I see that the search result :number is :name */