317 lines
14 KiB
Gherkin
317 lines
14 KiB
Gherkin
|
|
@comments
|
||
|
|
Feature: Comment on work
|
||
|
|
In order to give feedback
|
||
|
|
As a reader
|
||
|
|
I'd like to comment on a work
|
||
|
|
|
||
|
|
Scenario: Comment links from downloads and static pages
|
||
|
|
|
||
|
|
Given the work "Generic Work"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I visit the new comment page for the work "Generic Work"
|
||
|
|
Then I should see the comment form
|
||
|
|
|
||
|
|
Scenario: When logged in I can comment on a work
|
||
|
|
|
||
|
|
Given the work "The One Where Neal is Awesome"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I view the work "The One Where Neal is Awesome"
|
||
|
|
And I fill in "Comment" with "I loved this! 😍🤩"
|
||
|
|
And I press "Comment"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
And I should see "I loved this! 😍🤩" within ".odd"
|
||
|
|
|
||
|
|
Scenario: When a one-shot work becomes multi-chapter, all previous comments say "on Chapter 1"
|
||
|
|
Given the work "The One Where Neal is Awesome"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome"
|
||
|
|
When I view the work "The One Where Neal is Awesome" with comments
|
||
|
|
Then I should not see "commenter on Chapter 1" within "h4.heading.byline"
|
||
|
|
When a chapter is added to "The One Where Neal is Awesome"
|
||
|
|
And I view the work "The One Where Neal is Awesome" in full mode
|
||
|
|
And I follow "Comments (1)"
|
||
|
|
When "AO3-4214" is fixed
|
||
|
|
# Then I should see "commenter on Chapter 1" within "h4.heading.byline"
|
||
|
|
|
||
|
|
Scenario: When commenting on a multi-chapter work, there should be a link to the chapter on the comment
|
||
|
|
|
||
|
|
Given the work "The One Where Neal is Awesome"
|
||
|
|
And a chapter is added to "The One Where Neal is Awesome"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome"
|
||
|
|
Then I should see "commenter on Chapter 1"
|
||
|
|
And I should see a link "Chapter 1" within ".comment h4.heading.byline"
|
||
|
|
And I should see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline"
|
||
|
|
When I follow "Thread"
|
||
|
|
Then I should see a link "Chapter 1" within ".comment h4.heading.byline"
|
||
|
|
And I should see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline"
|
||
|
|
|
||
|
|
Scenario: When commenting on a single-chapter work, there should not be a link to the chapter on the comment
|
||
|
|
|
||
|
|
Given the work "The One Where Neal is Awesome"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome"
|
||
|
|
Then I should see "commenter"
|
||
|
|
And I should not see "commenter on Chapter 1"
|
||
|
|
And I should not see a link "Chapter 1" within ".comment h4.heading.byline"
|
||
|
|
And I should not see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline"
|
||
|
|
When I follow "Thread"
|
||
|
|
Then I should not see a link "Chapter 1" within ".comment h4.heading.byline"
|
||
|
|
And I should not see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline"
|
||
|
|
|
||
|
|
Scenario: I cannot comment with a pseud that I don't own
|
||
|
|
|
||
|
|
Given the work "Random Work"
|
||
|
|
When I attempt to comment on "Random Work" with a pseud that is not mine
|
||
|
|
Then I should not see "Comment created!"
|
||
|
|
And I should not see "on Chapter 1"
|
||
|
|
And I should see "You can't comment with that pseud"
|
||
|
|
|
||
|
|
Scenario: I cannot edit in a pseud that I don't own
|
||
|
|
|
||
|
|
Given the work "Random Work"
|
||
|
|
When I attempt to update a comment on "Random Work" with a pseud that is not mine
|
||
|
|
Then I should not see "Comment was successfully updated"
|
||
|
|
And I should see "You can't comment with that pseud"
|
||
|
|
|
||
|
|
Scenario: Comment editing
|
||
|
|
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I post the work "The One Where Neal is Awesome"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I post the comment "Mistaken comment" on the work "The One Where Neal is Awesome"
|
||
|
|
And it is currently 1 second from now
|
||
|
|
And I follow "Edit"
|
||
|
|
And I fill in "Comment" with "Actually, I meant something different"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "Comment was successfully updated"
|
||
|
|
And I should see "Actually, I meant something different"
|
||
|
|
And I should not see "Mistaken comment"
|
||
|
|
And I should see Last Edited in the right timezone
|
||
|
|
|
||
|
|
Scenario: Comment threading, comment editing
|
||
|
|
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I post the work "The One Where Neal is Awesome"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I post the comment "I loved this!" on the work "The One Where Neal is Awesome"
|
||
|
|
When I follow "Reply"
|
||
|
|
And I fill in "Comment" with "I wanted to say more." within ".odd"
|
||
|
|
And I press "Comment" within ".odd"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
And I should see "I wanted to say more." within ".even"
|
||
|
|
When I am logged in as "commenter2"
|
||
|
|
And I view the work "The One Where Neal is Awesome"
|
||
|
|
And I fill in "Comment" with "I loved it, too."
|
||
|
|
And I press "Comment"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
And I should see "I loved it, too."
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I view the work "The One Where Neal is Awesome"
|
||
|
|
And I follow "Comments (3)"
|
||
|
|
And I follow "Reply" within ".even"
|
||
|
|
And I fill in "Comment" with "Thank you." within ".even"
|
||
|
|
And I press "Comment" within ".even"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
And I should see "Thank you." within "ol.thread li ol.thread li ol.thread li"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I view the work "The One Where Neal is Awesome"
|
||
|
|
And I follow "Comments (4)"
|
||
|
|
And I follow "Reply" within ".thread .thread .odd"
|
||
|
|
And I fill in "Comment" with "Mistaken comment" within ".thread .thread .odd"
|
||
|
|
And I press "Comment" within ".thread .thread .odd"
|
||
|
|
And it is currently 1 second from now
|
||
|
|
And I follow "Edit" within "ol.thread li ol.thread li ol.thread li ol.thread ul.actions"
|
||
|
|
And I fill in "Comment" with "Actually, I meant something different"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "Comment was successfully updated"
|
||
|
|
And I should see "Actually, I meant something different"
|
||
|
|
And I should not see "Mistaken comment"
|
||
|
|
And I should see Last Edited in the right timezone
|
||
|
|
When I am logged in as "commenter3"
|
||
|
|
And I view the work "The One Where Neal is Awesome"
|
||
|
|
And I follow "Comments (5)"
|
||
|
|
And I follow "Reply" within ".thread .even"
|
||
|
|
And I fill in "Comment" with "This should be nested" within ".thread .even"
|
||
|
|
And I press "Comment" within ".thread .even"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
And I should not see "Mistaken comment"
|
||
|
|
And I should see "Actually, I meant something different" within "ol.thread li ol.thread li ol.thread li ol.thread"
|
||
|
|
And I should see "I loved it, too." within "ol.thread"
|
||
|
|
And I should see "Thank you." within "ol.thread li ol.thread li ol.thread"
|
||
|
|
And I should see "This should be nested" within "ol.thread li ol.thread li ol.thread"
|
||
|
|
And I should not see "This should be nested" within ".thread .thread .thread .thread"
|
||
|
|
And I should see "I loved this" within "ol.thread"
|
||
|
|
|
||
|
|
Scenario: A leaves a comment, B replies to it, A deletes their comment, B edits the comment, A should not receive a comment edit notification email
|
||
|
|
|
||
|
|
Given the work "Generic Work" by "creator"
|
||
|
|
And a comment "A's comment (to be deleted)" by "User_A" on the work "Generic Work"
|
||
|
|
And a reply "B's comment (to be edited)" by "User_B" on the work "Generic Work"
|
||
|
|
And 1 email should be delivered to "User_A"
|
||
|
|
And all emails have been delivered
|
||
|
|
When I am logged in as "User_A"
|
||
|
|
And I view the work "Generic Work" with comments
|
||
|
|
And I delete the comment
|
||
|
|
When I am logged in as "User_B"
|
||
|
|
And I view the work "Generic Work" with comments
|
||
|
|
And I follow "Edit"
|
||
|
|
And I fill in "Comment" with "B's improved comment (edited)"
|
||
|
|
And I press "Update"
|
||
|
|
Then 0 emails should be delivered to "User_A"
|
||
|
|
|
||
|
|
Scenario: Try to post an invalid comment
|
||
|
|
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I post the work "Generic Work"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
And I compose an invalid comment
|
||
|
|
And I press "Comment"
|
||
|
|
Then I should see "must be less than"
|
||
|
|
And I should see "Now, we can devour the gods, together!"
|
||
|
|
When I fill in "Comment" with "This is a valid comment"
|
||
|
|
And I press "Comment"
|
||
|
|
And I follow "Reply" within ".thread .odd"
|
||
|
|
And I compose an invalid comment within ".thread .odd"
|
||
|
|
And I press "Comment" within ".thread .odd"
|
||
|
|
Then I should see "must be less than"
|
||
|
|
And I should see "Now, we can devour the gods, together!"
|
||
|
|
When I fill in "Comment" with "This is a valid reply comment"
|
||
|
|
And I press "Comment"
|
||
|
|
And it is currently 1 second from now
|
||
|
|
And I follow "Edit"
|
||
|
|
And I compose an invalid comment
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "must be less than"
|
||
|
|
And I should see "Now, we can devour the gods, together!"
|
||
|
|
|
||
|
|
Scenario: Don't receive comment notifications of your own comments by default
|
||
|
|
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I post the work "Generic Work"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I post the comment "Something" on the work "Generic Work"
|
||
|
|
Then "author" should be emailed
|
||
|
|
And "commenter" should not be emailed
|
||
|
|
|
||
|
|
Scenario: Set preference and receive comment notifications of your own comments
|
||
|
|
|
||
|
|
When I am logged in as "author"
|
||
|
|
And I post the work "Generic Work"
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I set my preferences to turn on copies of my own comments
|
||
|
|
And I post the comment "Something" on the work "Generic Work"
|
||
|
|
Then "author" should be emailed
|
||
|
|
And "commenter" should be emailed
|
||
|
|
And 1 email should be delivered to "commenter"
|
||
|
|
|
||
|
|
Scenario: Try to post a comment with a < angle bracket before a linebreak, without a space before the bracket
|
||
|
|
|
||
|
|
Given the work "Generic Work"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
When I fill in "Comment" with
|
||
|
|
"""
|
||
|
|
Here is a comment with a bracket
|
||
|
|
abc<
|
||
|
|
xyz
|
||
|
|
"""
|
||
|
|
And I press "Comment"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
|
||
|
|
Scenario: Try to post a comment with a < angle bracket before a linebreak, with a space before the bracket
|
||
|
|
|
||
|
|
Given the work "Generic Work"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
When I fill in "Comment" with
|
||
|
|
"""
|
||
|
|
Here is a comment with a bracket
|
||
|
|
abc <
|
||
|
|
xyz
|
||
|
|
"""
|
||
|
|
And I press "Comment"
|
||
|
|
Then I should see "Comment created!"
|
||
|
|
|
||
|
|
Scenario: Users with different time zone preferences should see the time in their own timezone
|
||
|
|
Given the work "Generic Work"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And the user "commenter" sets the time zone to "UTC"
|
||
|
|
And I post the comment "Something" on the work "Generic Work"
|
||
|
|
And it is currently 1 second from now
|
||
|
|
And I follow "Edit"
|
||
|
|
And I fill in "Comment" with "Something else"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "UTC" within ".posted.datetime"
|
||
|
|
And I should see "UTC" within ".edited.datetime"
|
||
|
|
When I am logged in as "reader"
|
||
|
|
And the user "reader" sets the time zone to "Brisbane"
|
||
|
|
And I view the work "Generic Work" with comments
|
||
|
|
Then I should see "AEST" within ".posted.datetime"
|
||
|
|
And I should see "AEST" within ".edited.datetime"
|
||
|
|
|
||
|
|
Scenario: It hides comment actions when a reply form is open
|
||
|
|
Given the work "The One Where Neal is Awesome"
|
||
|
|
And I am logged in as "commenter"
|
||
|
|
And I post the comment "I loved this!" on the work "The One Where Neal is Awesome"
|
||
|
|
When I follow "Reply"
|
||
|
|
Then I should see "Comment as commenter"
|
||
|
|
And I should not see "Thread"
|
||
|
|
|
||
|
|
@javascript
|
||
|
|
Scenario: It shows and hides cancel buttons properly
|
||
|
|
Given the work "Aftermath" by "creator" with guest comments enabled
|
||
|
|
And a comment "Ugh." by "pest" on the work "Aftermath"
|
||
|
|
When I view the work "Aftermath"
|
||
|
|
And I display comments
|
||
|
|
Then I should see "Ugh."
|
||
|
|
When I open the reply box
|
||
|
|
Then I should see "Cancel"
|
||
|
|
But I should not see "Reply"
|
||
|
|
When I cancel the reply box
|
||
|
|
Then I should not see "Cancel"
|
||
|
|
But I should see "Reply"
|
||
|
|
|
||
|
|
@javascript
|
||
|
|
Scenario: It shows and hides cancel buttons properly even on a new page
|
||
|
|
Given the work "Aftermath" by "creator" with guest comments enabled
|
||
|
|
And a comment "Ugh." by "pest" on the work "Aftermath"
|
||
|
|
When I view the work "Aftermath"
|
||
|
|
And I display comments
|
||
|
|
Then I should see "Ugh."
|
||
|
|
# Go to /chapters/XX?add_comment_reply_id=YY&show_comments=true#comment_YY"; akin to a Ctrl+Click on "Reply"
|
||
|
|
When I reply on a new page
|
||
|
|
Then I should see "Cancel"
|
||
|
|
But I should not see "Reply"
|
||
|
|
When I cancel the reply box
|
||
|
|
Then I should not see "Cancel"
|
||
|
|
But I should see "Reply"
|
||
|
|
|
||
|
|
Scenario: Cannot comment (no form) while logged as admin
|
||
|
|
|
||
|
|
Given the work "Generic Work" by "creator" with guest comments enabled
|
||
|
|
And I am logged in as an admin
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
Then I should see "Generic Work"
|
||
|
|
And I should not see "Post Comment"
|
||
|
|
And I should not see a "Comment" button
|
||
|
|
And I should see "Please log out of your admin account to comment."
|
||
|
|
|
||
|
|
Scenario: Cannot reply to comments (no button) while logged as admin
|
||
|
|
|
||
|
|
Given the work "Generic Work" by "creator" with guest comments enabled
|
||
|
|
When I am logged in as "commenter"
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
And I post a comment "Woohoo"
|
||
|
|
When I am logged in as an admin
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
And I follow "Comments (1)"
|
||
|
|
Then I should see "Woohoo"
|
||
|
|
And I should not see "Reply"
|
||
|
|
When I am logged out
|
||
|
|
And I view the work "Generic Work"
|
||
|
|
And I follow "Comments (1)"
|
||
|
|
Then I should see "Woohoo"
|
||
|
|
And I should see "Reply"
|