[moodle.git] / lib / editor / atto / plugins / h5p / tests / behat / h5p.feature
1 @editor @editor_atto @atto @atto_h5p @core_h5p @_file_upload @_switch_iframe
2 Feature: Add h5ps to Atto
3   To write rich text - I need to add h5ps.
5   Background:
6     Given the following "courses" exist:
7       | shortname | fullname |
8       | C1        | Course 1 |
9     And the following "users" exist:
10       | username | firstname | lastname | email |
11       | teacher1 | Teacher | 1 | teacher1@example.com |
12     And the following "course enrolments" exist:
13       | user | course | role |
14       | teacher1 | C1 | editingteacher |
15     And the following "activities" exist:
16       | activity | name       | intro      | introformat | course | content  | contentformat | idnumber |
17       | page     | PageName1  | PageDesc1  | 1           | C1     | H5Ptest  | 1             | 1        |
18     And the "displayh5p" filter is "on"
20   @javascript
21   Scenario: Insert an embedded h5p
22     Given I log in as "admin"
23     And I change window size to "large"
24     And I am on "Course 1" course homepage
25     And I follow "PageName1"
26     And I navigate to "Edit settings" in current page administration
27     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
28     And I set the field with xpath "//textarea[@data-region='h5purl']" to "https://h5p.org/h5p/embed/576651"
29     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
30     And I wait until the page is ready
31     When I click on "Save and display" "button"
32     Then ".h5p-placeholder" "css_element" should exist
34   @javascript
35   Scenario: Insert an h5p file
36     Given I log in as "admin"
37     And I follow "Manage private files..."
38     And I upload "lib/editor/atto/tests/fixtures/guess-the-answer.h5p" file to "Files" filemanager
39     And I click on "Save changes" "button"
40     And I am on "Course 1" course homepage
41     And I follow "PageName1"
42     And I navigate to "Edit settings" in current page administration
43     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
44     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
45     And I click on "Private files" "link" in the ".fp-repo-area" "css_element"
46     And I click on "guess-the-answer.h5p" "link"
47     And I click on "Select this file" "button"
48     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
49     And I wait until the page is ready
50     When I click on "Save and display" "button"
51     Then ".h5p-placeholder" "css_element" should exist
53   @javascript
54   Scenario: Test an invalid url
55     Given I log in as "admin"
56     And I change window size to "large"
57     And I am on "Course 1" course homepage
58     And I follow "PageName1"
59     And I navigate to "Edit settings" in current page administration
60     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
61     And I set the field with xpath "//textarea[@data-region='h5purl']" to "ftp://h5p.org/h5p/embed/576651"
62     When I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
63     And I wait until the page is ready
64     Then I should see "Invalid URL" in the "Insert H5P" "dialogue"
66   @javascript
67   Scenario: No h5p capabilities
68     Given the following "permission overrides" exist:
69     | capability | permission | role | contextlevel | reference |
70     | atto/h5p:addembed | Prohibit | editingteacher | Course | C1 |
71     | moodle/h5p:deploy | Prohibit | editingteacher | Course | C1 |
72     And I log in as "teacher1"
73     And I am on "Course 1" course homepage
74     And I follow "PageName1"
75     When I navigate to "Edit settings" in current page administration
76     Then "Insert H5P" "button" should not exist
78   @javascript
79   Scenario: No embed h5p capabilities
80     Given the following "permission overrides" exist:
81     | capability | permission | role | contextlevel | reference |
82     | atto/h5p:addembed | Prohibit | editingteacher | Course | C1 |
83     And I log in as "teacher1"
84     And I am on "Course 1" course homepage
85     And I follow "PageName1"
86     When I navigate to "Edit settings" in current page administration
87     And I click on "Insert H5P" "button"
88     Then I should not see "URL or embed code" in the "Insert H5P" "dialogue"
90   @javascript
91   Scenario: No upload h5p capabilities
92     Given the following "permission overrides" exist:
93     | capability | permission | role | contextlevel | reference |
94     | moodle/h5p:deploy | Prohibit | editingteacher | Course | C1 |
95     And I log in as "teacher1"
96     And I am on "Course 1" course homepage
97     And I follow "PageName1"
98     When I navigate to "Edit settings" in current page administration
99     And I click on "Insert H5P" "button"
100     Then I should not see "H5P file upload" in the "Insert H5P" "dialogue"
102   @javascript
103   Scenario: Edit H5P content
104     Given I log in as "teacher1"
105     And I follow "Manage private files..."
106     And I upload "lib/editor/atto/tests/fixtures/drag.h5p" file to "Files" filemanager
107     And I click on "Save changes" "button"
108     And I am on "Course 1" course homepage
109     And I follow "PageName1"
110     And I navigate to "Edit settings" in current page administration
111     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
112 #   H5P file content
113     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
114     And I click on "Private files" "link" in the ".fp-repo-area" "css_element"
115     And I click on "drag" "link"
116     And I click on "Select this file" "button"
117     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
118     And I wait until the page is ready
119     When I click on "Save and display" "button"
120     And I switch to "h5pcontent" iframe
121     And I switch to "h5p-iframe" class iframe
122     Then I should not see "reveal"
123     And I should see "Cloudberries"
124     And I switch to the main frame
125     And I navigate to "Edit settings" in current page administration
126     And I click on ".h5p-placeholder" "css_element"
127     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
128 #   External URL
129     And I set the field with xpath "//textarea[@data-region='h5purl']" to "https://h5p.org/h5p/embed/576651"
130     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
131     And I wait until the page is ready
132     And I click on "Save and display" "button"
133     And I switch to "h5pcontent" iframe
134     And I should see "Lorum ipsum"
135     And I should not see "Cloudberries"
137   @javascript
138   Scenario: Enable/disable H5P options
139     Given I log in as "teacher1"
140     And I follow "Manage private files..."
141     And I upload "lib/editor/atto/tests/fixtures/guess-the-answer.h5p" file to "Files" filemanager
142     And I click on "Save changes" "button"
143     And I am on "Course 1" course homepage
144     And I follow "PageName1"
145     And I navigate to "Edit settings" in current page administration
146     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
147     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
148     And I click on "Private files" "link" in the ".fp-repo-area" "css_element"
149     And I click on "guess-the-answer.h5p" "link"
150     And I click on "Select this file" "button"
151 #   No display option button displayed
152     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
153     And I wait until the page is ready
154     When I click on "Save and display" "button"
155     And I wait until the page is ready
156     And I switch to "h5pcontent" iframe
157     And I switch to "h5p-iframe" class iframe
158     Then I should not see "Reuse"
159     And I should not see "Embed"
160     And I should not see "Rights of use"
161     And I switch to the main frame
162     And I navigate to "Edit settings" in current page administration
163     And I click on ".h5p-placeholder" "css_element"
164     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
165     And I click on "H5P options" "link"
166 #   Only Allow Download button displayed
167     And I click on "Allow download" "checkbox"
168     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
169     And I wait until the page is ready
170     And I click on "Save and display" "button"
171     And I wait until the page is ready
172     And I switch to "h5pcontent" iframe
173     And I switch to "h5p-iframe" class iframe
174     And I should see "Reuse"
175     And I should not see "Embed"
176     And I should not see "Rights of use"
177     And I switch to the main frame
178     And I navigate to "Edit settings" in current page administration
179     And I click on ".h5p-placeholder" "css_element"
180     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
181 #   Embed and copyright buttons displayed. Download not displayed
182     And I click on "Allow download" "checkbox"
183     And I click on "Embed button" "checkbox"
184     And I click on "Copyright button" "checkbox"
185     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
186     And I wait until the page is ready
187     And I click on "Save and display" "button"
188     And I wait until the page is ready
189     And I switch to "h5pcontent" iframe
190     And I switch to "h5p-iframe" class iframe
191     And I should not see "Reuse"
192     And I should see "Embed"
193     And I should see "Rights of use"
195   @javascript
196   Scenario: Private H5P files are shown to students
197     Given the following "users" exist:
198       | username | firstname | lastname | email |
199       | student1 | Student   | 1 | student1@example.com |
200     And the following "course enrolments" exist:
201       | user | course | role |
202       | student1 | C1 | student |
203     And I log in as "teacher1"
204     And I follow "Manage private files..."
205     And I upload "lib/editor/atto/tests/fixtures/guess-the-answer.h5p" file to "Files" filemanager
206     And I click on "Save changes" "button"
207     And I am on "Course 1" course homepage
208     And I follow "PageName1"
209     And I navigate to "Edit settings" in current page administration
210     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
211     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
212     And I click on "Private files" "link" in the ".fp-repo-area" "css_element"
213     And I click on "guess-the-answer.h5p" "link"
214     And I click on "Select this file" "button"
215     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
216     And I wait until the page is ready
217     And I click on "Save and display" "button"
218     And I log out
219     When I log in as "student1"
220     And I am on "Course 1" course homepage
221     And I follow "PageName1"
222     Then I switch to "h5pcontent" iframe
223     And I switch to "h5p-iframe" class iframe
224     And I should see "reveal"