Merge branch 'MDL-59383-master-behat-failure' of https://github.com/lameze/moodle
authorAndrew Nicols <andrew@nicols.co.uk>
Fri, 14 Jul 2017 03:52:53 +0000 (11:52 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Fri, 14 Jul 2017 03:52:53 +0000 (11:52 +0800)
enrol/tests/behat/manage_enrolments_from_participants.feature
search/classes/base_block.php
tag/tests/behat/edit_tag.feature
tag/tests/behat/flag_tags.feature
user/tests/behat/view_participants.feature

index e2e7745..3c0cb0f 100644 (file)
@@ -24,12 +24,12 @@ Feature: Manage enrollments from participants page
 
   Scenario: Check the participants link when "All partipants" selected
     Given I select "All participants" from the "roleid" singleselect
-    When I click on "Edit" "link" in the "region-main" "region"
+    And I navigate to "Enrolled users" node in "Course administration > Users"
     Then I should see "Enrolled users" in the "h2" "css_element"
     And the field "Role" matches value "All"
 
   Scenario: Check the participants link when "Student" selected
     Given I select "Student" from the "roleid" singleselect
-    When I click on "Edit" "link" in the "region-main" "region"
+    And I navigate to "Enrolled users" node in "Course administration > Users"
     Then I should see "Enrolled users" in the "h2" "css_element"
-    And the field "Role" matches value "Student"
+    And the field "Role" matches value "All"
index 5cf5b98..adf5722 100644 (file)
@@ -65,10 +65,13 @@ abstract class base_block extends base {
      * Returns restrictions on which block_instances rows to return. By default, excludes rows
      * that have empty configdata.
      *
-     * @return string SQL restriction (or multiple restrictions joined by AND), empty if none
+     * If no restriction is required, you could return ['', []].
+     *
+     * @return array 2-element array of SQL restriction and params for it
      */
     protected function get_indexing_restrictions() {
-        return "bi.configdata != ''";
+        global $DB;
+        return [$DB->sql_compare_text('bi.configdata') . " != ?", ['']];
     }
 
     /**
@@ -88,10 +91,11 @@ abstract class base_block extends base {
      */
     public function get_recordset_by_timestamp($modifiedfrom = 0) {
         global $DB;
-        $restrictions = $this->get_indexing_restrictions();
+        list ($restrictions, $restrictionparams) = $this->get_indexing_restrictions();
         if ($restrictions) {
             $restrictions = 'AND ' . $restrictions;
         }
+
         // Query for all entries in block_instances for this type of block, which were modified
         // since the given date. Also find the course or module where the block is located.
         // (Although this query supports both module and course context, currently only two page
@@ -108,12 +112,12 @@ abstract class base_block extends base {
                        OR (c.id = parent.instanceid AND parent.contextlevel = ?)
                  WHERE bi.timemodified >= ?
                        AND bi.blockname = ?
-                       AND (parent.contextlevel = ? AND (bi.pagetypepattern LIKE 'course-view-%'
+                       AND (parent.contextlevel = ? AND (" . $DB->sql_like('bi.pagetypepattern', '?') . "
                            OR bi.pagetypepattern IN ('site-index', 'course-*', '*')))
                        $restrictions
               ORDER BY bi.timemodified ASC",
-                [CONTEXT_BLOCK, CONTEXT_MODULE, CONTEXT_COURSE, $modifiedfrom,
-                $this->get_block_name(), CONTEXT_COURSE]);
+                array_merge([CONTEXT_BLOCK, CONTEXT_MODULE, CONTEXT_COURSE, $modifiedfrom,
+                $this->get_block_name(), CONTEXT_COURSE, 'course-view-%'], $restrictionparams));
     }
 
     public function get_doc_url(\core_search\document $doc) {
index 82d89d0..e048f44 100644 (file)
@@ -32,9 +32,10 @@ Feature: Users can edit tags to add description or rename
     And I log out
     When I log in as "editor1"
     And I press "Customise this page"
-    # TODO MDL-57120 site "Participants" link not accessible without navigation block.
+    # TODO MDL-57120 site "Tags" link not accessible without navigation block.
     And I add the "Navigation" block if not present
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Turtle"
     And I follow "User 1"
     And I follow "Cat"
     And I follow "Edit this tag"
@@ -56,9 +57,10 @@ Feature: Users can edit tags to add description or rename
   Scenario: Manager can change tag description, related tags and rename the tag from tag view page
     When I log in as "manager1"
     And I press "Customise this page"
-    # TODO MDL-57120 site "Participants" link not accessible without navigation block.
+    # TODO MDL-57120 site "Tags" link not accessible without navigation block.
     And I add the "Navigation" block if not present
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Turtle"
     And I follow "User 1"
     And I follow "Cat"
     And I follow "Edit this tag"
@@ -88,9 +90,10 @@ Feature: Users can edit tags to add description or rename
   Scenario: Renaming the tag from tag view page
     When I log in as "manager1"
     And I press "Customise this page"
-      # TODO MDL-57120 site "Participants" link not accessible without navigation block.
+      # TODO MDL-57120 site "Tags" link not accessible without navigation block.
     And I add the "Navigation" block if not present
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Turtle"
     And I follow "User 1"
     And I follow "Cat"
     And I follow "Edit this tag"
index 11758be..7c384d2 100644 (file)
@@ -25,15 +25,17 @@ Feature: Users can flag tags and manager can reset flags
     And I log out
     And I log in as "user2"
     And I press "Customise this page"
-    # TODO MDL-57120 site "Participants" link not accessible without navigation block.
+    # TODO MDL-57120 site "Tags" link not accessible without navigation block.
     And I add the "Navigation" block if not present
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Nicetag"
     And I follow "User 1"
     And I follow "Badtag"
     And I follow "Flag as inappropriate"
     And I should see "The person responsible will be notified"
     And I am on homepage
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Nicetag"
     And I follow "User 1"
     And I follow "Sweartag"
     And I follow "Flag as inappropriate"
@@ -41,9 +43,10 @@ Feature: Users can flag tags and manager can reset flags
     And I log out
     And I log in as "user3"
     And I press "Customise this page"
-    # TODO MDL-57120 site "Participants" link not accessible without navigation block.
+    # TODO MDL-57120 site "Tags" link not accessible without navigation block.
     And I add the "Navigation" block if not present
-    And I navigate to "Participants" node in "Site pages"
+    And I navigate to "Tags" node in "Site pages"
+    And I follow "Nicetag"
     And I follow "User 1"
     And I follow "Sweartag"
     And I follow "Flag as inappropriate"
index 3ac3a89..c972409 100644 (file)
@@ -103,6 +103,25 @@ Feature: View course participants
     And the field with xpath "//tbody//tr[19]//input[@class='usercheckbox']" matches value "0"
     And the field with xpath "//tbody//tr[20]//input[@class='usercheckbox']" matches value "0"
 
+  Scenario: Sort and paginate the list of users
+    Given I log in as "teacher1"
+    And the following "course enrolments" exist:
+      | user      | course | role           |
+      | student20 | C1     | student |
+    And I am on "Course 1" course homepage
+    And I navigate to course participants
+    And I follow "Email address"
+    When I follow "2"
+    Then I should not see "student1@example.com"
+    And I should not see "student20@example.com"
+    And I should see "teacher1@example.com"
+    And I follow "Email address"
+    And I follow "2"
+    And I should not see "teacher1@example.com"
+    And I should not see "student20@example.com"
+    And I should not see "student1@example.com"
+    And I should see "student10@example.com"
+
   @javascript
   Scenario: Use select all users on this page, select all n users and deselect all
     Given the following "course enrolments" exist: