MDL-42616 filelib: New user interface to edit and add file types (2/2)
[moodle.git] / admin / tool / filetypes / tests / behat / add_filetypes.feature
1 @tool @tool_filetypes
2 Feature: Add customised file types
3   In order to support a file mime type which doesn't exist in Moodle
4   As an administrator
5   I need to add a new customised file type
7   Scenario: Add a new file type
8     Given I log in as "admin"
9     And I navigate to "File types" node in "Site administration > Server"
10     And I press "Add"
11     # Try setting all the form fields, not just the optional ones.
12     And I set the following fields to these values:
13       | Extension                  | frog                                      |
14       | MIME type                  | application/x-frog                        |
15       | File icon                  | archive                                   |
16       | Type groups                | document                                  |
17       | Description type           | Custom description specified in this form |
18       | Custom description         | Froggy file                               |
19       | Default icon for MIME type | 1                                         |
20     When I press "Save changes"
21     Then I should see "Froggy file" in the "application/x-frog" "table_row"
22     And I should see "document" in the "application/x-frog" "table_row"
23     And I should see "frog" in the "application/x-frog" "table_row"
24     And "//img[contains(@src, 'archive')]" "xpath_element" should exist in the "application/x-frog" "table_row"
26   Scenario: Update an existing file type
27     Given I log in as "admin"
28     And I navigate to "File types" node in "Site administration > Server"
29     When I click on "Edit 7z" "link"
30     And I set the following fields to these values:
31       | Extension | doc |
32     And I press "Save changes"
33     Then I should see "File extensions must be unique"
34     And I set the following fields to these values:
35       | Extension | frog |
36     And I press "Save changes"
37     And I should see "frog" in the "application/x-7z-compressed" "table_row"
39   Scenario: Delete an existing file type
40     Given I log in as "admin"
41     And I navigate to "File types" node in "Site administration > Server"
42     When I click on "Delete 7z" "link"
43     Then I should see "Are you absolutely sure you want to remove .7z?"
44     And I press "Yes"
45     And I should see "Deleted" in the "7z" "table_row"
47   Scenario: Delete a custom file type
48     Given I log in as "admin"
49     And I navigate to "File types" node in "Site administration > Server"
50     And I press "Add"
51     And I set the following fields to these values:
52       | Extension                  | frog                                      |
53       | MIME type                  | application/x-frog                        |
54     And I press "Save changes"
55     When I click on "Delete frog" "link"
56     And I press "Yes"
57     Then I should not see "frog"
59   Scenario: Revert changes to deleted file type
60     Given I log in as "admin"
61     And I navigate to "File types" node in "Site administration > Server"
62     When I click on "Delete 7z" "link"
63     And I press "Yes"
64     And I follow "Restore 7z to Moodle defaults"
65     And I press "Yes"
66     Then I should not see "Deleted" in the "7z" "table_row"
68   Scenario: Revert changes to updated file type
69     Given I log in as "admin"
70     And I navigate to "File types" node in "Site administration > Server"
71     And I click on "Edit 7z" "link"
72     And I set the following fields to these values:
73       | File icon | document |
74     And I press "Save changes"
75     When I follow "Restore 7z to Moodle defaults"
76     And I press "Yes"
77     Then "//img[contains(@src, 'archive')]" "xpath_element" should exist in the "7z" "table_row"
79   @javascript
80   Scenario: Create a resource activity which contains a customised file type
81     Given the following "courses" exist:
82       | fullname | shortname |
83       | Course 1 | C1        |
84     And I log in as "admin"
85     And I navigate to "File types" node in "Site administration > Server"
86     And I press "Add"
87     And I set the following fields to these values:
88       | Extension          | frog                                      |
89       | MIME type          | application/x-frog                        |
90       | File icon          | archive                                   |
91       | Description type   | Custom description specified in this form |
92       | Custom description | Froggy file                               |
93     And I press "Save changes"
94     # Create a resource activity and add it to a course
95     And I am on homepage
96     And I follow "Course 1"
97     And I turn editing mode on
98     When I add a "File" to section "1"
99     And I set the following fields to these values:
100       | Name        | An example of customised file type |
101       | Description | File description                   |
102     And I upload "admin/tool/filetypes/tests/fixtures/test.frog" file to "Select files" filemanager
103     And I expand all fieldsets
104     And I set the field "Show type" to "1"
105     And I press "Save and return to course"
106     Then I should see "Froggy file"
107     And the "src" attribute of ".modtype_resource a img" "css_element" should contain "archive"