0456d48c9651f7c8747859a657dd010611c5b381
[moodle.git] / search / tests / behat / search_query.feature
1 @core @core_search
2 Feature: Use global search interface
3   In order to search for things
4   As a user
5   I need to be able to type search queries and see results
7   Background:
8     Given the following config values are set as admin:
9       | enableglobalsearch | 1 |
10     And the following "courses" exist:
11       | shortname | fullname   |
12       | F1        | Amphibians |
13     And the following "activities" exist:
14       | activity | name       | intro      | course | idnumber |
15       | page     | PageName1  | PageDesc1  | F1     | PAGE1    |
16       | forum    | ForumName1 | ForumDesc1 | F1     | FORUM1   |
17     And I log in as "admin"
19   @javascript
20   Scenario: Search from header search box with one result
21     Given global search expects the query "frogs" and will return:
22       | type     | idnumber |
23       | activity | PAGE1    |
24     When I search for "frogs" using the header global search box
25     Then I should see "PageName1"
26     And I should see "PageDesc1"
28     # Check the link works.
29     And I follow "PageName1"
30     And I should see "PageName1" in the ".breadcrumb" "css_element"
32   @javascript
33   Scenario: Search from search page with two results
34     Given global search expects the query "zombies" and will return:
35       | nothing |
36     When I search for "zombies" using the header global search box
37     Then I should see "No results"
38     And I set the field "id_q" to "Toads"
39     And global search expects the query "Toads" and will return:
40       | type     | idnumber |
41       | activity | FORUM1   |
42       | activity | PAGE1    |
43     # You cannot press "Search" because there's a fieldset with the same name that gets in the way.
44     And I press "id_submitbutton"
45     And I should see "ForumName1"
46     And I should see "ForumDesc1"
47     And I should see "PageName1"
48     And I should see "PageDesc1"
50     # Check the link works.
51     And I follow "ForumName1"
52     And I should see "ForumName1" in the ".breadcrumb" "css_element"
54   @javascript
55   Scenario: Search starting from site context (no within option)
56     Given global search expects the query "frogs" and will return:
57       | type     | idnumber |
58       | activity | PAGE1    |
59     When I search for "frogs" using the header global search box
60     And I expand all fieldsets
61     Then I should not see "Search within"
62     And I should see "Courses" in the "region-main" "region"
64   @javascript
65   Scenario: Search starting from course context (within option lists course)
66     Given global search expects the query "frogs" and will return:
67       | type     | idnumber |
68       | activity | PAGE1    |
69     When I am on "Amphibians" course homepage
70     And I search for "frogs" using the header global search box
71     And I expand all fieldsets
72     Then I should see "Search within"
73     And I select "Everywhere you can access" from the "Search within" singleselect
74     And I should see "Courses" in the "region-main" "region"
75     And I select "Course: Amphibians" from the "Search within" singleselect
76     And I should not see "Courses" in the "region-main" "region"
78   @javascript
79   Scenario: Search starting from forum context (within option lists course and forum)
80     Given global search expects the query "frogs" and will return:
81       | type     | idnumber |
82       | activity | PAGE1    |
83     When I am on "Amphibians" course homepage
84     And I follow "ForumName1"
85     And I search for "frogs" using the header global search box
86     And I expand all fieldsets
87     And I should see "Search within"
88     And I select "Everywhere you can access" from the "Search within" singleselect
89     And I should see "Courses" in the "region-main" "region"
90     And I select "Course: Amphibians" from the "Search within" singleselect
91     And I should not see "Courses" in the "region-main" "region"
92     And I select "Forum: ForumName1" from the "Search within" singleselect
93     And I should not see "Courses" in the "region-main" "region"
95   @javascript
96   Scenario: Check that groups option in search form appears when intended
97     Given the following "groups" exist:
98       | name    | course | idnumber |
99       | A Group | F1     | G1       |
100       | B Group | F1     | G2       |
101     And the following "activities" exist:
102       | activity | name    | intro      | course | idnumber | groupmode |
103       | forum    | ForumSG | ForumDesc1 | F1     | FORUM2   | 1         |
104     When I am on "Amphibians" course homepage
105     And I follow "ForumSG"
106     And global search expects the query "frogs" and will return:
107       | type     | idnumber |
108       | activity | PAGE1    |
109     And I search for "frogs" using the header global search box
110     And I expand all fieldsets
111     Then I should not see "Groups" in the "region-main" "region"
112     And I select "Course: Amphibians" from the "Search within" singleselect
113     And I should see "Groups" in the "region-main" "region"
114     And I set the field "Groups" to "A Group"
115     And I select "Forum: ForumSG" from the "Search within" singleselect
116     And I should see "Groups" in the "region-main" "region"
117     And I am on "Amphibians" course homepage
118     And I follow "ForumName1"
119     And global search expects the query "frogs" and will return:
120       | type     | idnumber |
121       | activity | PAGE1    |
122     And I search for "frogs" using the header global search box
123     And I expand all fieldsets
124     Then I should not see "Groups" in the "region-main" "region"
125     And I select "Course: Amphibians" from the "Search within" singleselect
126     And I should see "Groups" in the "region-main" "region"
127     And I select "Forum: ForumName1" from the "Search within" singleselect
128     And I should not see "Groups" in the "region-main" "region"