MDL-50919 tags: new UI for managing tags
[moodle.git] / tag / tests / behat / official_tags.feature
1 @core @core_tag
2 Feature: Manager can add official tags and change the tag type of existing tags
3   In order to use tags
4   As a manage
5   I need to be able to change tag type
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email                |
10       | manager1 | Manager   | 1        | |
11       | user1    | User      | 1        |    |
12     And the following "system role assigns" exist:
13       | user     | course               | role    |
14       | manager1 | Acceptance test site | manager |
15     And the following "tags" exist:
16       | name | tagtype  |
17       | Tag0 | default  |
18       | Tag1 | default  |
19       | Tag2 | default  |
20       | Tag3 | official |
22   Scenario: Adding official tags
23     When I log in as "manager1"
24     And I navigate to "Manage tags" node in "Site administration > Appearance"
25     Then "Make official" "link" should exist in the "Tag0" "table_row"
26     And "Make official" "link" should exist in the "Tag1" "table_row"
27     And "Make official" "link" should exist in the "Tag2" "table_row"
28     And "Remove from official tags" "link" should exist in the "Tag3" "table_row"
29     And I set the following fields to these values:
30       | Add official tags | Tag1,TAG2,Tag3,Tag4,Tag5 |
31     And I press "Add official tags"
32     And I should see "Official tag(s) added"
33     # No changes to Tag0
34     And "Make official" "link" should exist in the "Tag0" "table_row"
35     # Tag1 was already present, now it is official
36     And "Remove from official" "link" should exist in the "Tag1" "table_row"
37     # Tag2 was already present, now it is official. It was not renamed to TAG2
38     And "Remove from official" "link" should exist in the "Tag2" "table_row"
39     And I should not see "TAG2"
40     # Tag3 was already present and it already was official
41     And "Remove from official tags" "link" should exist in the "Tag3" "table_row"
42     # Tag4 and Tag5 were added as official
43     And "Remove from official tags" "link" should exist in the "Tag4" "table_row"
44     And "Remove from official tags" "link" should exist in the "Tag5" "table_row"
45     And I log out
47   Scenario: Changing tag type with javascript disabled
48     When I log in as "manager1"
49     And I navigate to "Manage tags" node in "Site administration > Appearance"
50     And I click on "Make official" "link" in the "Tag0" "table_row"
51     And I should see "Tag type changed"
52     And I click on "Make official" "link" in the "Tag1" "table_row"
53     And I should see "Tag type changed"
54     And I click on "Remove from official tags" "link" in the "Tag0" "table_row"
55     And I should see "Tag type changed"
56     And I click on "Remove from official tags" "link" in the "Tag3" "table_row"
57     And I should see "Tag type changed"
58     Then "Make official" "link" should exist in the "Tag0" "table_row"
59     And "Remove from official tags" "link" should exist in the "Tag1" "table_row"
60     And "Make official" "link" should exist in the "Tag2" "table_row"
61     And "Make official" "link" should exist in the "Tag3" "table_row"
62     And I log out
64   @javascript
65   Scenario: Changing tag type with javascript enabled
66     When I log in as "manager1"
67     And I navigate to "Manage tags" node in "Site administration > Appearance"
68     And I click on "Make official" "link" in the "Tag0" "table_row"
69     And I click on "Make official" "link" in the "Tag1" "table_row"
70     And I wait until "//tr[contains(.,'Tag0')]//a[contains(@title,'Remove from official tags')]" "xpath_element" exists
71     And I wait until "//tr[contains(.,'Tag1')]//a[contains(@title,'Remove from official tags')]" "xpath_element" exists
72     And I click on "Remove from official tags" "link" in the "Tag0" "table_row"
73     And I click on "Remove from official tags" "link" in the "Tag3" "table_row"
74     And I wait until "//tr[contains(.,'Tag0')]//a[contains(@title,'Make official')]" "xpath_element" exists
75     And I wait until "//tr[contains(.,'Tag3')]//a[contains(@title,'Make official')]" "xpath_element" exists
76     Then "Make official" "link" should exist in the "Tag0" "table_row"
77     And "Remove from official tags" "link" should exist in the "Tag1" "table_row"
78     And "Make official" "link" should exist in the "Tag2" "table_row"
79     And "Make official" "link" should exist in the "Tag3" "table_row"
80     And I follow "Manage tags"
81     And "Make official" "link" should exist in the "Tag0" "table_row"
82     And "Remove from official tags" "link" should exist in the "Tag1" "table_row"
83     And "Make official" "link" should exist in the "Tag2" "table_row"
84     And "Make official" "link" should exist in the "Tag3" "table_row"
85     And I log out
87   Scenario: Changing tag type in edit form
88     When I log in as "manager1"
89     And I navigate to "Manage tags" node in "Site administration > Appearance"
90     And I click on "Edit this tag" "link" in the "Tag1" "table_row"
91     And I set the following fields to these values:
92       | Official | 1 |
93     And I press "Update"
94     Then "Remove from official tags" "link" should exist in the "Tag1" "table_row"
95     And I click on "Edit this tag" "link" in the "Tag1" "table_row"
96     And I set the following fields to these values:
97       | Official | 0 |
98     And I press "Update"
99     And "Make official" "link" should exist in the "Tag1" "table_row"
100     And I log out