MDL-50919 tags: new UI for managing tags
[moodle.git] / tag / tests / behat / edit_tag.feature
1 @core @core_tag
2 Feature: Users can edit tags to add description or rename
3   In order to use tags
4   As a manager
5   I need to be able to edit tags
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       | editor1  | Editor    | 1        | editor1@example.com  |
13     Given the following "roles" exist:
14       | name       | shortname |
15       | Tag editor | tageditor |
16     And the following "system role assigns" exist:
17       | user     | course               | role      |
18       | manager1 | Acceptance test site | manager   |
19       | editor1  | Acceptance test site | tageditor |
20     And the following "tags" exist:
21       | name         | tagtype  |
22       | Neverusedtag | official |
23     And I log in as "user1"
24     And I navigate to "Site blogs" node in "Site pages"
25     And I follow "Add a new entry"
26     And I set the following fields to these values:
27       | Entry title                                 | Blog post header  |
28       | Blog entry body                             | Blog post content |
29       | Other tags (enter tags separated by commas) | Cat,Dog,Turtle    |
30     And I press "Save changes"
31     And I log out
33   Scenario: User with tag editing capability can change tag description
34     Given I log in as "admin"
35     And I set the following system permissions of "Tag editor" role:
36       | capability      | permission |
37       | moodle/tag:edit | Allow      |
38     And I log out
39     When I log in as "editor1"
40     And I navigate to "Site blogs" node in "Site pages"
41     And I follow "Cat"
42     And I follow "Edit this tag"
43     And I should not see "Tag name"
44     And I should not see "Official"
45     And I set the following fields to these values:
46       | Description | Description of tag 1 |
47       | Related tags | Dog,  Turtle,Fish |
48     And I press "Update"
49     Then "Cat" "text" should exist in the ".breadcrumb-nav" "css_element"
50     And "Description of tag 1" "text" should exist in the "#tag-description" "css_element"
51     And I should see "Related tags: Dog, Turtle, Fish"
52     And I log out
54   Scenario: Manager can change tag description, related tags and rename the tag from tag view page
55     When I log in as "manager1"
56     And I navigate to "Site blogs" node in "Site pages"
57     And I follow "Cat"
58     And I follow "Edit this tag"
59     And I set the following fields to these values:
60       | Tag name | Kitten |
61       | Description | Description of tag 1 |
62       | Related tags | Dog,  Turtle,Fish |
63       | Official | 0 |
64     And I press "Update"
65     Then "Kitten" "text" should exist in the ".breadcrumb-nav" "css_element"
66     And "Description of tag 1" "text" should exist in the "#tag-description" "css_element"
67     And I should see "Related tags: Dog, Turtle, Fish"
68     And I follow "Edit this tag"
69     And I set the following fields to these values:
70       | Related tags | Turtle, Fish |
71     And I press "Update"
72     Then "Kitten" "text" should exist in the ".breadcrumb-nav" "css_element"
73     And "Description of tag 1" "text" should exist in the "#tag-description" "css_element"
74     And I should see "Related tags: Turtle, Fish"
75     And I should not see "Dog"
76     And I log out
78   Scenario: Renaming the tag from tag view page
79     When I log in as "manager1"
80     And I navigate to "Site blogs" node in "Site pages"
81     And I follow "Cat"
82     And I follow "Edit this tag"
83     And I set the following fields to these values:
84       | Tag name | DOG |
85     And I press "Update"
86     And I should see "DOG: Tag names already being used"
87     And I set the following fields to these values:
88       | Tag name | Kitten |
89     And I press "Update"
90     Then "Kitten" "text" should exist in the ".breadcrumb-nav" "css_element"
91     And I follow "Edit this tag"
92     And I set the following fields to these values:
93       | Tag name | KITTEN |
94     And I press "Update"
95     And "KITTEN" "text" should exist in the ".breadcrumb-nav" "css_element"
96     And I log out
98   Scenario: Manager can change tag description and rename the tag from tag manage page
99     When I log in as "manager1"
100     And I navigate to "Manage tags" node in "Site administration > Appearance"
101     And I click on "Edit this tag" "link" in the "Cat" "table_row"
102     And I set the following fields to these values:
103       | Tag name | Kitten |
104       | Description | Description of tag 1 |
105       | Related tags | Dog,  Turtle,Fish |
106       | Official | 0 |
107     And I press "Update"
108     Then "Manage tags" "link" should exist in the ".breadcrumb-nav" "css_element"
109     And I follow "Kitten"
110     And "Description of tag 1" "text" should exist in the "#tag-description" "css_element"
111     And I should see "Related tags: Dog, Turtle, Fish"
112     And I log out
114   Scenario: Renaming the tag in edit tag form from tag manage page
115     When I log in as "manager1"
116     And I navigate to "Manage tags" node in "Site administration > Appearance"
117     And I click on "Edit this tag" "link" in the "Cat" "table_row"
118     And I set the following fields to these values:
119       | Tag name | DOG |
120     And I press "Update"
121     And I should see "DOG: Tag names already being used"
122     And I set the following fields to these values:
123       | Tag name | Kitten |
124     And I press "Update"
125     Then "Manage tags" "text" should exist in the ".breadcrumb-nav" "css_element"
126     And I click on "Edit this tag" "link" in the "Kitten" "table_row"
127     And I set the following fields to these values:
128       | Tag name | KITTEN |
129     And I press "Update"
130     And "Manage tags" "text" should exist in the ".breadcrumb-nav" "css_element"
131     And I should see "KITTEN"
132     And I should not see "Kitten"
133     And I log out
135   @javascript
136   Scenario: Renaming the tag using quick edit field on tag manage page
137     When I log in as "manager1"
138     And I navigate to "Manage tags" node in "Site administration > Appearance"
139     # Renaming tag to a valid name
140     And I click on "Edit tag name" "link" in the "Cat" "table_row"
141     And I set the field "New name for tag Cat" to "Kitten"
142     And I press key "13" in the field "New name for tag Cat"
143     Then I should not see "Cat"
144     And "New name for tag" "field" should not be visible
145     And I wait until "Kitten" "link" exists
146     And I follow "Manage tags"
147     And I should see "Kitten"
148     And I should not see "Cat"
149     # Renaming tag to an invalid name
150     And I click on "Edit tag name" "link" in the "Turtle" "table_row"
151     And I set the field "New name for tag Turtle" to "DOG"
152     And I press key "13" in the field "New name for tag Turtle"
153     And I should see "Tag names already being used"
154     And I press "Ok"
155     And "New name for tag" "field" should not be visible
156     And I should see "Turtle"
157     And I should see "Dog"
158     And I should not see "DOG"
159     And I follow "Manage tags"
160     And I should see "Turtle"
161     And I should see "Dog"
162     And I should not see "DOG"
163     # Cancel tag renaming
164     And I click on "Edit tag name" "link" in the "Dog" "table_row"
165     And I set the field "New name for tag Dog" to "Penguin"
166     And I press key "27" in the field "New name for tag Dog"
167     And "New name for tag" "field" should not be visible
168     And I should see "Turtle"
169     And I should not see "Penguin"
170     And I follow "Manage tags"
171     And I should see "Turtle"
172     And I should not see "Penguin"
173     And I log out