diff --git a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php index 58469d2720..2ff6bec0ea 100644 --- a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php @@ -112,11 +112,11 @@ class CommentPropertiesPlugin extends ServerPlugin { if ($parentPath === '') { $parentPath = '/'; } - // if we already cached the folder this file is in we know there are no shares for this file + // if we already cached the folder this file is in we know there are no comments for this file if (array_search($parentPath, $this->cachedFolders) === false) { - return $this->getUnreadCount($node); - } else { return 0; + } else { + return $this->getUnreadCount($node); } } }); diff --git a/tests/acceptance/features/app-comments.feature b/tests/acceptance/features/app-comments.feature index 42893e5ea3..31e902f01c 100644 --- a/tests/acceptance/features/app-comments.feature +++ b/tests/acceptance/features/app-comments.feature @@ -30,3 +30,189 @@ Feature: app-comments When I create a new comment with "Comment in welcome.txt" as message Then I see a comment with "Comment in welcome.txt" as message And I see that there is no comment with "Comment in Folder" as message + + + + Scenario: read a comment written by the sharer + 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 rename "welcome.txt" to "shared.txt" + And I share "shared.txt" with "user0" + And I see that the file is shared with "user0" + # The details view should already be open + 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 + When I act as Jane + # The Files app is open again to reload the file list and the comments + And I open the Files app + And I open the details view for "shared.txt" + And I open the "Comments" tab in the details view + Then I see a comment with "Hello world" as message + + Scenario: read a comment written by the sharee + 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 rename "welcome.txt" to "shared.txt" + And I share "shared.txt" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + And I open the details view for "shared.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 + When I act as John + # The Files app is open again to reload the file list and the comments + And I open the Files app + And I open the details view for "shared.txt" + And I open the "Comments" tab in the details view + Then I see a comment with "Hello world" as message + + + + Scenario: unread comment icon shown for comment written by the sharer in a shared file + 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 rename "welcome.txt" to "shared.txt" + And I share "shared.txt" with "user0" + And I see that the file is shared with "user0" + # The details view should already be open + 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 + When I act as Jane + # The Files app is open again to reload the file list and the comments + And I open the Files app + Then I see that "shared.txt" has unread comments + And I open the unread comments for "shared.txt" + And I see that the details view is open + And I see a comment with "Hello world" as message + + Scenario: unread comment icon shown for comment written by the sharee in a shared file + 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 rename "welcome.txt" to "shared.txt" + And I share "shared.txt" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + And I open the details view for "shared.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 + When I act as John + # The Files app is open again to reload the file list and the comments + And I open the Files app + Then I see that "shared.txt" has unread comments + And I open the unread comments for "shared.txt" + And I see that the details view is open + And I see a comment with "Hello world" as message + + Scenario: unread comment icon shown for comment written by the sharer in a shared 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 "Folder" + And I share "Folder" with "user0" + And I see that the file is shared with "user0" + # The details view should already be open + 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 + When I act as Jane + # The Files app is open again to reload the file list and the comments + And I open the Files app + Then I see that "Folder" has unread comments + And I open the unread comments for "Folder" + And I see that the details view is open + And I see a comment with "Hello world" as message + + Scenario: unread comment icon shown for comment written by the sharee in a shared 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 "Folder" + And I share "Folder" with "user0" + And I see that the file is shared with "user0" + And I act as Jane + # The Files app is open again to reload the file list + And I open the Files app + 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 + When I act as John + # The Files app is open again to reload the file list and the comments + And I open the Files app + Then I see that "Folder" has unread comments + And I open the unread comments for "Folder" + And I see that the details view is open + And I see a comment with "Hello world" as message + + Scenario: unread comment icon shown for comment written by the sharer in a child folder of a shared 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 "Folder" + And I share "Folder" with "user0" + And I see that the file is shared with "user0" + And I enter in the folder named "Folder" + And I create a new folder named "Child folder" + # The details view should already be open + 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 + When I act as Jane + # The Files app is open again to reload the file list and the comments + And I open the Files app + And I enter in the folder named "Folder" + Then I see that "Child folder" has unread comments + And I open the unread comments for "Child folder" + And I see that the details view is open + And I see a comment with "Hello world" as message + + Scenario: unread comment icon shown for comment written by the sharee in a child folder of a shared 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 "Folder" + And I share "Folder" with "user0" + And I see that the file is shared with "user0" + And 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 "Folder" + And I create a new folder named "Child folder" + # The details view should already be open + 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 + When I act as John + And I enter in the folder named "Folder" + Then I see that "Child folder" has unread comments + And I open the unread comments for "Child folder" + And I see that the details view is open + And I see a comment with "Hello world" as message diff --git a/tests/acceptance/features/bootstrap/FileListContext.php b/tests/acceptance/features/bootstrap/FileListContext.php index 5206e6417d..90d2aeebdc 100644 --- a/tests/acceptance/features/bootstrap/FileListContext.php +++ b/tests/acceptance/features/bootstrap/FileListContext.php @@ -184,6 +184,15 @@ class FileListContext implements Context, ActorAwareInterface { describedAs("Rename input for file $fileName in file list"); } + /** + * @return Locator + */ + public static function commentActionForFile($fileListAncestor, $fileName) { + return Locator::forThe()->css(".action-comment")-> + descendantOf(self::rowForFile($fileListAncestor, $fileName))-> + describedAs("Comment action for file $fileName in file list"); + } + /** * @return Locator */ @@ -347,6 +356,13 @@ class FileListContext implements Context, ActorAwareInterface { $this->actor->find(self::deleteMenuItem(), 2)->click(); } + /** + * @When I open the unread comments for :fileName + */ + public function iOpenTheUnreadCommentsFor($fileName) { + $this->actor->find(self::commentActionForFile($this->fileListAncestor, $fileName), 10)->click(); + } + /** * @Then I see that the file list is eventually loaded */ @@ -396,4 +412,11 @@ class FileListContext implements Context, ActorAwareInterface { PHPUnit_Framework_Assert::assertNotNull($this->actor->find(self::notFavoritedStateIconForFile($this->fileListAncestor, $fileName), 10)); } + /** + * @Then I see that :fileName has unread comments + */ + public function iSeeThatHasUnreadComments($fileName) { + PHPUnit_Framework_Assert::assertTrue($this->actor->find(self::commentActionForFile($this->fileListAncestor, $fileName), 10)->isVisible()); + } + }