MDL-67813 repository_contentbank: Add behat tests
[moodle.git] / repository / contentbank / tests / behat / search_content.feature
1 @repository @repository_contentbank @javascript
2 Feature: Search content bank files using the content bank files repository
3   In order to find the content I need to select in the file picker
4   As a user
5   I need to be able to search in the content bank files repository by content name
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email                |
10       | student  | Student   | 1        | student@example.com  |
11       | teacher  | Teacher   | 1        | teacher1@example.com |
12     And the following "categories" exist:
13       | name      | category | idnumber |
14       | Category1 | 0        | CAT1     |
15       | Category2 | 0        | CAT2     |
16     And the following "courses" exist:
17       | fullname | shortname | category |
18       | Course1  | C1        | CAT1     |
19       | Course2  | C2        | CAT2     |
20     And the following "contentbank content" exist:
21       | contextlevel | reference | contenttype     | user  | contentname          | filepath                                    |
22       | Course       | C1        | contenttype_h5p | admin | coursecontent1.h5p   | /h5p/tests/fixtures/filltheblanks.h5p       |
23       | Course       | C2        | contenttype_h5p | admin | coursecontent2.h5p   | /h5p/tests/fixtures/find-the-words.h5p      |
24       | Category     | CAT1      | contenttype_h5p | admin | categorycontent1.h5p | /h5p/tests/fixtures/ipsums.h5p              |
25       | Category     | CAT2      | contenttype_h5p | admin | categorycontent2.h5p | /h5p/tests/fixtures/multiple-choice-2-6.h5p |
26       | System       |           | contenttype_h5p | admin | systemcontent.h5p    | /h5p/tests/fixtures/greeting-card-887.h5p   |
27     And the following "activities" exist:
28       | activity | name       | intro      | introformat | course | idnumber |
29       | folder   | Folder     | FolderDesc | 1           | C1     | folder   |
30     And the following "course enrolments" exist:
31       | user     | course | role           |
32       | teacher  | C1     | editingteacher |
34   Scenario: User can see a search field and reset search button in the content bank files repository
35     Given I log in as "admin"
36     And I am on "Course1" course homepage
37     And I follow "Folder"
38     And I click on "Edit" "button"
39     And I click on "Add..." "button"
40     And I should see "Content bank" in the ".fp-repo-area" "css_element"
41     When I select "Content bank" repository in file picker
42     Then "Search repository" "field" should be visible
43     And "Refresh" "link" should be visible
45   Scenario: User can see search results when there is content that matches the search criteria
46     Given I log in as "admin"
47     And I am on "Course1" course homepage
48     And I follow "Folder"
49     And I click on "Edit" "button"
50     And I click on "Add..." "button"
51     And I should see "Content bank" in the ".fp-repo-area" "css_element"
52     And I select "Content bank" repository in file picker
53     And I set the field "Search repository" to "content"
54     When I press enter
55     Then I should see "5" elements in repository content area
56     And I should see "systemcontent.h5p" "file" in repository content area
57     And I should see "categorycontent1.h5p" "file" in repository content area
58     And I should see "categorycontent2.h5p" "file" in repository content area
59     And I should see "coursecontent1.h5p" "file" in repository content area
60     And I should see "coursecontent2.h5p" "file" in repository content area
62   Scenario: User can see search results when there is content that matches the search criteria ignoring case sensitivity
63     Given I log in as "admin"
64     And I am on "Course1" course homepage
65     And I follow "Folder"
66     And I click on "Edit" "button"
67     And I click on "Add..." "button"
68     And I should see "Content bank" in the ".fp-repo-area" "css_element"
69     And I select "Content bank" repository in file picker
70     And I set the field "Search repository" to "COURSE"
71     When I press enter
72     Then I should see "2" elements in repository content area
73     And I should see "coursecontent1.h5p" "file" in repository content area
74     And I should see "coursecontent2.h5p" "file" in repository content area
76   Scenario: User can not see any search results when there is not a content that matches the search criteria
77     Given I log in as "admin"
78     And I am on "Course1" course homepage
79     And I follow "Folder"
80     And I click on "Edit" "button"
81     And I click on "Add..." "button"
82     And I should see "Content bank" in the ".fp-repo-area" "css_element"
83     And I select "Content bank" repository in file picker
84     And I set the field "Search repository" to "somecontent"
85     When I press enter
86     Then I should see "0" elements in repository content area
87     And I should see "No files available" in the ".filepicker .fp-content" "css_element"
89   Scenario: User can reset search criteria and see all content displayed prior the search action
90     Given I log in as "admin"
91     And I am on "Course1" course homepage
92     And I follow "Folder"
93     And I click on "Edit" "button"
94     And I click on "Add..." "button"
95     And I should see "Content bank" in the ".fp-repo-area" "css_element"
96     And I select "Content bank" repository in file picker
97     And I should see "1" elements in repository content area
98     And I should see "coursecontent1.h5p" "file" in repository content area
99     And I set the field "Search repository" to "category"
100     And I press enter
101     And I should see "2" elements in repository content area
102     And I should see "categorycontent1.h5p" "file" in repository content area
103     And I should see "categorycontent2.h5p" "file" in repository content area
104     When I click on "Refresh" "link"
105     Then I should see "1" elements in repository content area
106     And I should see "coursecontent1.h5p" "file" in repository content area
108   Scenario: Editing teacher can see search results when the content is available to him and matches the search criteria
109     Given I log in as "teacher"
110     And I am on "Course1" course homepage
111     And I follow "Folder"
112     And I click on "Edit" "button"
113     And I click on "Add..." "button"
114     And I should see "Content bank" in the ".fp-repo-area" "css_element"
115     And I select "Content bank" repository in file picker
116     And I set the field "Search repository" to "content"
117     When I press enter
118     Then I should see "3" elements in repository content area
119     And I should see "coursecontent1.h5p" "file" in repository content area
120     And I should see "categorycontent1.h5p" "file" in repository content area
121     And I should see "systemcontent.h5p" "file" in repository content area