MDL-66405 core_h5p: Fix behat tests
[moodle.git] / filter / displayh5p / tests / behat / h5p_filter.feature
1 @editor @filter @filter_displayh5p @core_h5p @_file_upload @_switch_iframe
2 Feature: Render H5P content using filters
3   To write rich text - I need to render H5P content.
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 | |
12       | student1 | Student | 1 | |
13     And the following "course enrolments" exist:
14       | user | course | role |
15       | teacher1 | C1 | editingteacher |
16       | student1 | C1 | student        |
17     And the following "activities" exist:
18       | activity | name       | intro      | introformat | course | content  | contentformat | idnumber |
19       | page     | PageName1  | PageDesc1  | 1           | C1     | H5Ptest  | 1             | 1        |
20       | page     | PageName2  | PageDesc1  | 1           | C1     | H5Ptest  | 1             | 1        |
21     And the "displayh5p" filter is "on"
23   @javascript
24   Scenario: Render an external H5P content URL.
25     Given I log in as "teacher1"
26     And I am on "Course 1" course homepage
27     And I follow "PageName1"
28     And I navigate to "Edit settings" in current page administration
29     And I set the field "Page content" to "<div>Go for it</div>"
30     When I click on "Save and display" "button"
31     And I wait until the page is ready
32     And I switch to "h5p-iframe" class iframe
33     Then I should see "Lorum ipsum"
35   @javascript
36   Scenario: Add an external H5P content URL in a link. Shouldn't be rendered.
37     Given I log in as "teacher1"
38     And I am on "Course 1" course homepage
39     And I follow "PageName1"
40     And I navigate to "Edit settings" in current page administration
41     And I set the field "Page content" to "<a href=''>Go to</a>"
42     When I click on "Save and display" "button"
43     And I wait until the page is ready
44     Then ".h5p-iframe" "css_element" should not exist
46   @javascript
47   Scenario: Render a local H5P file as admin
48     Given I log in as "admin"
49     And I am on "Course 1" course homepage with editing mode on
50     And I add a "File" to section "1"
51     And I set the following fields to these values:
52       | Name                      | ipsumFile     |
53     And I upload "filter/displayh5p/tests/fixtures/ipsums.h5p" file to "Select files" filemanager
54     And I press "Save and return to course"
55     And I follow "PageName1"
56     And I navigate to "Edit settings" in current page administration
57     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
58     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
59     And I click on "Server files" "link" in the ".fp-repo-area" "css_element"
60     And I click on "ipsumFile (File)" "link"
61     And I click on "ipsums.h5p" "link"
62     And I click on "Select this file" "button"
63     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
64     And I wait until the page is ready
65     When I click on "Save and display" "button"
66 #   Switch to iframe created by filter
67     And I switch to "h5p-iframe" class iframe
68 #   Switch to iframe created by embed.php page
69     And I switch to "h5p-iframe" class iframe
70     Then I should see "Lorum ipsum"
71     And I switch to the main frame
72     And I log out
73     And I log in as "student1"
74     And I am on "Course 1" course homepage
75     And I follow "PageName1"
76 #   Switch to iframe created by filter
77     And I switch to "h5p-iframe" class iframe
78 #   Switch to iframe created by embed.php page
79     And I switch to "h5p-iframe" class iframe
80     And I should not see "you don't have access"
81     And I should see "Lorum ipsum"
83   @javascript
84   Scenario: Render a local H5P file as teacher
85     Given I log in as "teacher1"
86     And I am on "Course 1" course homepage with editing mode on
87     And I add a "File" to section "1"
88     And I set the following fields to these values:
89       | Name                      | ipsumFile     |
90     And I upload "filter/displayh5p/tests/fixtures/ipsums.h5p" file to "Select files" filemanager
91     And I press "Save and return to course"
92     And I follow "PageName1"
93     And I navigate to "Edit settings" in current page administration
94     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
95     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
96     And I click on "Server files" "link" in the ".fp-repo-area" "css_element"
97     And I click on "ipsumFile (File)" "link"
98     And I click on "ipsums.h5p" "link"
99     And I click on "Select this file" "button"
100     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
101     And I wait until the page is ready
102     When I click on "Save and display" "button"
103 #   Switch to iframe created by filter
104     And I switch to "h5p-iframe" class iframe
105     Then I should see "Note that the libraries may exist in the file you uploaded, but you're not allowed to upload new libraries."
106     And I should see "missing-required-library"
108   @javascript
109   Scenario: Render a local H5P file with existing libraries
110     Given I log in as "teacher1"
111     And I am on "Course 1" course homepage with editing mode on
112     And I add a "File" to section "1"
113     And I set the following fields to these values:
114       | Name                      | ipsumFileTeacher     |
115     And I upload "filter/displayh5p/tests/fixtures/ipsums.h5p" file to "Select files" filemanager
116     And I press "Save and return to course"
117     And I follow "PageName1"
118     And I navigate to "Edit settings" in current page administration
119     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
120     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
121     And I click on "Server files" "link" in the ".fp-repo-area" "css_element"
122     And I click on "ipsumFileTeacher (File)" "link"
123     And I click on "ipsums.h5p" "link"
124     And I click on "Select this file" "button"
125     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
126     And I wait until the page is ready
127     And I click on "Save and display" "button"
128 #   Switch to iframe created by filter
129     And I switch to "h5p-iframe" class iframe
130 #   Libraries don't exist, so an error should be displayed.
131     And I should see "missing-required-library"
132     And I switch to the main frame
133     And I log out
134     And I log in as "admin"
135     And I am on "Course 1" course homepage with editing mode on
136     And I add a "File" to section "1"
137     And I set the following fields to these values:
138       | Name                      | ipsumFile     |
139     And I upload "filter/displayh5p/tests/fixtures/ipsums.h5p" file to "Select files" filemanager
140     And I press "Save and return to course"
141     And I follow "PageName2"
142     And I navigate to "Edit settings" in current page administration
143     And I click on "Insert H5P" "button" in the "#fitem_id_page" "css_element"
144     And I click on "Browse repositories..." "button" in the "Insert H5P" "dialogue"
145     And I click on "Server files" "link" in the ".fp-repo-area" "css_element"
146     And I click on "ipsumFile (File)" "link"
147     And I click on "ipsums.h5p" "link"
148     And I click on "Select this file" "button"
149     And I click on "Insert H5P" "button" in the "Insert H5P" "dialogue"
150     And I wait until the page is ready
151     And I click on "Save and display" "button"
152 #   Switch to iframe created by filter
153     And I switch to "h5p-iframe" class iframe
154 #   Switch to iframe created by embed.php page
155     And I switch to "h5p-iframe" class iframe
156 #   Libraries have been installed.
157     And I should see "Lorum ipsum"
158     And I switch to the main frame
159     And I log out
160     When I log in as "teacher1"
161     And I am on "Course 1" course homepage
162     And I follow "PageName1"
163 #   Switch to iframe created by filter
164     And I switch to "h5p-iframe" class iframe
165 #   Switch to iframe created by embed.php page
166     And I switch to "h5p-iframe" class iframe
167     Then I should not see "missing-required-library"
168     And I should see "Lorum ipsum"