MDL-50919 tags: new UI for managing tags
[moodle.git] / tag / tests / behat / flag_tags.feature
1 @core @core_tag
2 Feature: Users can flag tags and manager can reset flags
3   In order to use tags
4   As a user
5   I need to be able to flag the tag as inappropriate
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email                |
10       | manager1 | Manager   | 1        | manager1@example.com |
11       | user1    | User      | 1        | user1@example.com    |
12       | user2    | User      | 2        | user2@example.com    |
13       | user3    | User      | 3        | user3@example.com    |
14     And the following "system role assigns" exist:
15       | user     | course               | role    |
16       | manager1 | Acceptance test site | manager |
17     And the following "tags" exist:
18       | name         | tagtype  |
19       | Neverusedtag | official |
20     And I log in as "user1"
21     And I navigate to "Site blogs" node in "Site pages"
22     And I follow "Add a new entry"
23     And I set the following fields to these values:
24       | Entry title                                 | Blog post from teacher    |
25       | Blog entry body                             | Teacher blog post content |
26       | Other tags (enter tags separated by commas) | Nicetag, Badtag, Sweartag |
27     And I press "Save changes"
28     And I log out
29     And I log in as "user2"
30     And I navigate to "Site blogs" node in "Site pages"
31     And I follow "Badtag"
32     And I follow "Flag as inappropriate"
33     And I should see "The person responsible will be notified"
34     And I follow "Continue"
35     And I navigate to "Site blogs" node in "Site pages"
36     And I follow "Sweartag"
37     And I follow "Flag as inappropriate"
38     And I should see "The person responsible will be notified"
39     And I follow "Continue"
40     And I log out
41     And I log in as "user3"
42     And I navigate to "Site blogs" node in "Site pages"
43     And I follow "Sweartag"
44     And I follow "Flag as inappropriate"
45     And I should see "The person responsible will be notified"
46     And I follow "Continue"
47     And I log out
49   Scenario: Managing tag flags with javascript disabled
50     When I log in as "manager1"
51     And I navigate to "Manage tags" node in "Site administration > Appearance"
52     Then "Sweartag" "link" should appear before "Badtag" "link"
53     And "Badtag" "link" should appear before "Nicetag" "link"
54     And "(2)" "text" should exist in the "//tr[contains(.,'Sweartag')]//td[contains(@class,'col-flag')]" "xpath_element"
55     And "(1)" "text" should exist in the "//tr[contains(.,'Badtag')]//td[contains(@class,'col-flag')]" "xpath_element"
56     And "(" "text" should not exist in the "//tr[contains(.,'Nicetag')]//td[contains(@class,'col-flag')]" "xpath_element"
57     And "(" "text" should not exist in the "//tr[contains(.,'Neverusedtag')]//td[contains(@class,'col-flag')]" "xpath_element"
58     And I click on "Reset flag" "link" in the "Sweartag" "table_row"
59     And I click on "Reset flag" "link" in the "Badtag" "table_row"
60     And I click on "Flag as inappropriate" "link" in the "Sweartag" "table_row"
61     And I click on "Flag as inappropriate" "link" in the "Nicetag" "table_row"
62     And "(1)" "text" should exist in the "//tr[contains(.,'Sweartag')]//td[contains(@class,'col-flag')]" "xpath_element"
63     And "(1)" "text" should exist in the "//tr[contains(.,'Nicetag')]//td[contains(@class,'col-flag')]" "xpath_element"
64     And "(" "text" should not exist in the "//tr[contains(.,'Badtag')]//td[contains(@class,'col-flag')]" "xpath_element"
65     And "(" "text" should not exist in the "//tr[contains(.,'Neverusedtag')]//td[contains(@class,'col-flag')]" "xpath_element"
66     And I log out
68   @javascript
69   Scenario: Managing tag flags with javascript enabled
70     When I log in as "manager1"
71     And I navigate to "Manage tags" node in "Site administration > Appearance"
72     Then "Sweartag" "link" should appear before "Badtag" "link"
73     And "Badtag" "link" should appear before "Nicetag" "link"
74     And "(2)" "text" should exist in the "//tr[contains(.,'Sweartag')]//td[contains(@class,'col-flag')]" "xpath_element"
75     And "(1)" "text" should exist in the "//tr[contains(.,'Badtag')]//td[contains(@class,'col-flag')]" "xpath_element"
76     And "(" "text" should not exist in the "//tr[contains(.,'Nicetag')]//td[contains(@class,'col-flag')]" "xpath_element"
77     And "(" "text" should not exist in the "//tr[contains(.,'Neverusedtag')]//td[contains(@class,'col-flag')]" "xpath_element"
78     And I click on "Reset flag" "link" in the "Sweartag" "table_row"
79     And I click on "Reset flag" "link" in the "Badtag" "table_row"
80     And I wait until "//tr[contains(.,'Sweartag')]//a[contains(@title,'Flag as inappropriate')]" "xpath_element" exists
81     And I click on "Flag as inappropriate" "link" in the "Sweartag" "table_row"
82     And I click on "Flag as inappropriate" "link" in the "Nicetag" "table_row"
83     And "(1)" "text" should exist in the "//tr[contains(.,'Sweartag')]//td[contains(@class,'col-flag')]" "xpath_element"
84     And "(1)" "text" should exist in the "//tr[contains(.,'Nicetag')]//td[contains(@class,'col-flag')]" "xpath_element"
85     And "(" "text" should not exist in the "//tr[contains(.,'Badtag')]//td[contains(@class,'col-flag')]" "xpath_element"
86     And "(" "text" should not exist in the "//tr[contains(.,'Neverusedtag')]//td[contains(@class,'col-flag')]" "xpath_element"
87     And I follow "Manage tags"
88     And "Nicetag" "link" should appear before "Sweartag" "link"
89     And "Sweartag" "link" should appear before "Badtag" "link"
90     And "(1)" "text" should exist in the "//tr[contains(.,'Sweartag')]//td[contains(@class,'col-flag')]" "xpath_element"
91     And "(1)" "text" should exist in the "//tr[contains(.,'Nicetag')]//td[contains(@class,'col-flag')]" "xpath_element"
92     And "(" "text" should not exist in the "//tr[contains(.,'Badtag')]//td[contains(@class,'col-flag')]" "xpath_element"
93     And "(" "text" should not exist in the "//tr[contains(.,'Neverusedtag')]//td[contains(@class,'col-flag')]" "xpath_element"
94     And I log out