MDL-63280 core: minor changes after review
authorMark Nelson <markn@moodle.com>
Tue, 23 Oct 2018 04:42:14 +0000 (12:42 +0800)
committerMark Nelson <markn@moodle.com>
Thu, 25 Oct 2018 09:51:04 +0000 (17:51 +0800)
- Fixed reference to non-existent column 'timeread'.
- Fixed alignment issues.
- Fixed inconsistencies between upgrade.php and install.xml.
- Cleaned unit tests of unnecessary DB calls.
- Renamed 'get_does_conversation_area_enabled' to
  'is_conversation_area_enabled' and moved to api.php.
- Replaced "$mform->elementExists('enablemessaging')"
  check with a capability check.
- Removed the change of [] to array() in unrelated to upgrade code.
- Updated conversation 'timemodified' field when updating name.
- Bumped version based on latest master.

group/group_form.php
group/lib.php
group/tests/lib_test.php
lib/db/install.xml
lib/db/upgrade.php
message/classes/api.php
message/classes/helper.php
message/tests/api_test.php
version.php

index 79e8c7a..b92dcec 100644 (file)
@@ -96,7 +96,7 @@ class group_form extends moodleform {
      * Extend the form definition after the data has been parsed.
      */
     public function definition_after_data() {
-        global $COURSE, $DB;
+        global $COURSE, $DB, $USER;
 
         $mform = $this->_form;
         $groupid = $mform->getElementValue('id');
@@ -104,11 +104,8 @@ class group_form extends moodleform {
 
         if ($group = $DB->get_record('groups', array('id' => $groupid))) {
             // If can create group conversation then get if a conversation area exists and it is enabled.
-            if ($mform->elementExists('enablemessaging')) {
-                if (\core_message\helper::get_does_conversation_area_enabled('core_group',
-                                                                             'groups',
-                                                                              $groupid,
-                                                                              $coursecontext->id)) {
+            if (\core_message\api::can_create_group_conversation($USER->id, $coursecontext)) {
+                if (\core_message\api::is_conversation_area_enabled('core_group', 'groups', $groupid, $coursecontext->id)) {
                     $mform->getElement('enablemessaging')->setSelected(1);
                 }
             }
index 5f36f9d..e06ea2a 100644 (file)
@@ -278,12 +278,7 @@ function groups_create_group($data, $editform = false, $editoroptions = false) {
     // Group conversation messaging.
     if (\core_message\api::can_create_group_conversation($USER->id, $context)) {
         if (!empty($data->enablemessaging)) {
-            \core_message\api::create_conversation_area('core_group',
-                                                        'groups',
-                                                        $group->id,
-                                                        $context->id,
-                                                        1,
-                                                        $group->name);
+            \core_message\api::create_conversation_area('core_group', 'groups', $group->id, $context->id, $group->name, 1);
         }
     }
 
@@ -427,10 +422,7 @@ function groups_update_group($data, $editform = false, $editoroptions = false) {
 
     // Group conversation messaging.
     if (\core_message\api::can_create_group_conversation($USER->id, $context)) {
-        if ($conversationarea = \core_message\api::get_conversation_area('core_group',
-                                                                         'groups',
-                                                                         $group->id,
-                                                                         $context->id)) {
+        if ($conversationarea = \core_message\api::get_conversation_area('core_group', 'groups', $group->id, $context->id)) {
             if ($data->enablemessaging && $data->enablemessaging != $conversationarea->enabled) {
                 \core_message\api::enable_conversation_area($conversationarea->id);
             }
@@ -440,12 +432,7 @@ function groups_update_group($data, $editform = false, $editoroptions = false) {
             \core_message\api::update_conversation_name($conversationarea->conversationid, $group->name);
         } else {
             if (!empty($data->enablemessaging)) {
-                \core_message\api::create_conversation_area('core_group',
-                                                            'groups',
-                                                            $group->id,
-                                                            $context->id,
-                                                            1,
-                                                            $group->name);
+                \core_message\api::create_conversation_area('core_group', 'groups', $group->id, $context->id, $group->name, 1);
             }
         }
     }
index 45d3d57..b141b68 100644 (file)
@@ -532,53 +532,39 @@ class core_group_lib_testcase extends advanced_testcase {
     /**
      * Test groups_create_group enabling a group of conversation.
      */
-    public function groups_create_group_with_conversation_area() {
+    public function test_groups_create_group_with_conversation_area() {
         global $DB;
 
         $this->resetAfterTest();
         $this->setAdminUser();
         $course1 = $this->getDataGenerator()->create_course();
         $coursecontext1 = context_course::instance($course1->id);
-        // Check not exists and conversation area created.
-        $this->assertEquals(
-                0,
-                $DB->count_records_sql("SELECT COUNT(ca.id)
-                                          FROM {message_conversation_area} ca
-                                         WHERE ca.contextid = ?
-                                               AND ca.component = 'core_group'
-                                               AND ca.itemtype = 'groups'", [$coursecontext1->id])
-        );
+
         // Create two groups and only one group with enablemessaging = 1.
         $group1a = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 1));
         $group1b = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 0));
-        // Check exist only one row created in conversation area.
-        $this->assertEquals(
-                1,
-                $DB->count_records_sql("SELECT COUNT(ca.id)
-                                          FROM {message_conversation_area} ca
-                                         WHERE ca.contextid = ?
-                                               AND ca.component = 'core_group'
-                                               AND ca.itemtype = 'groups'
-                                               AND ca.enabled = 1", [$coursecontext1->id])
+
+        $conversationareas = $DB->get_records('message_conversation_area',
+            [
+                'contextid' => $coursecontext1->id,
+                'component' => 'core_group',
+                'itemtype' => 'groups',
+                'enabled' => 1
+            ]
         );
-        $conversation = $DB->get_record_sql("SELECT c.*
-                                               FROM {message_conversations} c
-                                               JOIN {message_conversation_area} ca ON c.id = ca.conversationid
-                                              WHERE ca.contextid = ?
-                                                    AND ca.component = 'core_group'
-                                                    AND ca.itemtype = 'groups'", [$coursecontext1->id]);
-        // Check group name and course fullname was stored in conversation.
-        $this->assertEquals($group1a->name, $conversation->name);
+        $this->assertCount(1, $conversationareas);
+
+        $conversationarea = reset($conversationareas);
         // Check groupid was stored in itemid on conversation area.
-        $this->assertEquals(
-                $group1a->id,
-                $DB->get_field_sql("SELECT ca.itemid
-                                      FROM {message_conversation_area} ca
-                                     WHERE ca.contextid = ?
-                                           AND ca.component = 'core_group'
-                                           AND ca.itemtype = 'groups'
-                                           AND ca.conversationid = ?", [$coursecontext1->id, $conversation->id])
-        );
+        $this->assertEquals($group1a->id, $conversationarea->itemid);
+
+        $conversations = $DB->get_records('message_conversations', ['id' => $conversationarea->conversationid]);
+        $this->assertCount(1, $conversations);
+
+        $conversation = reset($conversations);
+
+        // Check group name was stored in conversation.
+        $this->assertEquals($group1a->name, $conversation->name);
     }
 
     /**
@@ -591,69 +577,51 @@ class core_group_lib_testcase extends advanced_testcase {
         $this->setAdminUser();
         $course1 = $this->getDataGenerator()->create_course();
         $coursecontext1 = context_course::instance($course1->id);
-        // Check not exists and conversation area created.
-        $this->assertEquals(
-                0,
-                $DB->count_records_sql("SELECT COUNT(ca.id)
-                                          FROM {message_conversation_area} ca
-                                         WHERE ca.contextid = ?
-                                               AND ca.component = 'core_group'
-                                               AND ca.itemtype = 'groups'", [$coursecontext1->id])
-        );
+
         // Create two groups and only one group with enablemessaging = 1.
         $group1a = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 1));
         $group1b = $this->getDataGenerator()->create_group(array('courseid' => $course1->id, 'enablemessaging' => 0));
-        // Check exist only one row created in conversation area.
-        $this->assertEquals(
-                1,
-                $DB->count_records_sql("SELECT COUNT(ca.id)
-                                          FROM {message_conversation_area} ca
-                                         WHERE ca.contextid = ?
-                                               AND ca.component = 'core_group'
-                                               AND ca.itemtype = 'groups'
-                                               AND ca.enabled = 1", [$coursecontext1->id])
+
+        $conversationareas = $DB->get_records('message_conversation_area',
+            [
+                'contextid' => $coursecontext1->id,
+                'component' => 'core_group',
+                'itemtype' => 'groups',
+                'enabled' => 1
+            ]
         );
+        $this->assertCount(1, $conversationareas);
+
         // Check that the conversation area is created when group messaging is enabled in the course group.
         $group1b->enablemessaging = 1;
         groups_update_group($group1b);
-        $this->assertEquals(
-                2,
-                $DB->count_records_sql("SELECT COUNT(ca.id)
-                                          FROM {message_conversation_area} ca
-                                         WHERE ca.contextid = ?
-                                               AND ca.component = 'core_group'
-                                               AND ca.itemtype = 'groups'
-                                               AND ca.enabled = 1", [$coursecontext1->id])
-        );
-        $conversation1b = $DB->get_record_sql("SELECT c.*
-                                               FROM {message_conversations} c
-                                               JOIN {message_conversation_area} ca ON c.id = ca.conversationid
-                                              WHERE ca.contextid = ?
-                                                    AND ca.itemid = ?
-                                                    AND ca.component = 'core_group'
-                                                    AND ca.itemtype = 'groups'", [$coursecontext1->id, $group1b->id]);
+
+        $conversationareas = $DB->get_records('message_conversation_area',
+            [
+                'contextid' => $coursecontext1->id,
+                'component' => 'core_group',
+                'itemtype' => 'groups',
+                'enabled' => 1
+            ],
+        'id ASC');
+        $this->assertCount(2, $conversationareas);
+
+        $conversationarea1a = array_shift($conversationareas);
+        $conversationarea1b = array_shift($conversationareas);
+
+        $conversation1b = $DB->get_record('message_conversations', ['id' => $conversationarea1b->conversationid]);
+
         // Check for group1b that group name was stored in conversation.
         $this->assertEquals($group1b->name, $conversation1b->name);
-        // Check how to is disabled conversation area when group messaging is disabled in the course group.
-        $this->assertEquals(1, $DB->get_field("message_conversation_area", "enabled",
-                                                ['itemid' => $group1b->id,
-                                                 'contextid' => $coursecontext1->id]));
+
         $group1b->enablemessaging = 0;
         groups_update_group($group1b);
-        $this->assertEquals(0, $DB->get_field("message_conversation_area", "enabled",
-                                                ['itemid' => $group1b->id,
-                                                 'contextid' => $coursecontext1->id]));
+        $this->assertEquals(0, $DB->get_field("message_conversation_area", "enabled", ['id' => $conversationarea1b->id]));
+
         // Check that the name of the conversation is changed when the name of the course group is updated.
         $group1b->name = 'New group name';
-        $this->assertNotEquals($group1b->name, $conversation1b->name);
         groups_update_group($group1b);
-        $conversation1b = $DB->get_record_sql("SELECT c.*
-                                               FROM {message_conversations} c
-                                               JOIN {message_conversation_area} ca ON c.id = ca.conversationid
-                                              WHERE ca.contextid = ?
-                                                    AND ca.itemid = ?
-                                                    AND ca.component = 'core_group'
-                                                    AND ca.itemtype = 'groups'", [$coursecontext1->id, $group1b->id]);
+        $conversation1b = $DB->get_record('message_conversations', ['id' => $conversation1b->id]);
         $this->assertEquals($group1b->name, $conversation1b->name);
     }
 }
index 4e6290d..3148f14 100644 (file)
         <FIELD NAME="component" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" COMMENT="Defines the Moodle component which the area was added to"/>
         <FIELD NAME="itemtype" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false"/>
         <FIELD NAME="itemid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false"/>
-        <FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="false" SEQUENCE="false" COMMENT="The context id of the itemid or course of the itemtype was added"/>
+        <FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="The context id of the itemid or course of the itemtype was added"/>
         <FIELD NAME="enabled" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
         <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
         <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="timemodified"/>
index 68b92a3..4c66eab 100644 (file)
@@ -2589,7 +2589,7 @@ function xmldb_main_upgrade($oldversion) {
         $table = new xmldb_table('message_conversations');
 
         // Remove the unique 'convhash' index, change to null and add a new non unique index.
-        $index = new xmldb_index('convhash', XMLDB_INDEX_UNIQUE, array('convhash'));
+        $index = new xmldb_index('convhash', XMLDB_INDEX_UNIQUE, ['convhash']);
         if ($dbman->index_exists($table, $index)) {
             $dbman->drop_index($table, $index);
         }
@@ -2597,7 +2597,7 @@ function xmldb_main_upgrade($oldversion) {
         $field = new xmldb_field('convhash', XMLDB_TYPE_CHAR, '40', null, null, null, null, 'name');
         $dbman->change_field_notnull($table, $field);
 
-        $index = new xmldb_index('convhash', XMLDB_INDEX_NOTUNIQUE, array('convhash'));
+        $index = new xmldb_index('convhash', XMLDB_INDEX_NOTUNIQUE, ['convhash']);
         if (!$dbman->index_exists($table, $index)) {
             $dbman->add_index($table, $index);
         }
@@ -2605,18 +2605,18 @@ function xmldb_main_upgrade($oldversion) {
         upgrade_main_savepoint(true, 2018102200.00);
     }
 
-    if ($oldversion < 2018101900.03) {
+    if ($oldversion < 2018102300.02) {
         // Create new 'message_conversation_area' table.
         $table = new xmldb_table('message_conversation_area');
         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null);
         $table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'id');
-        $table->add_field('component',  XMLDB_TYPE_CHAR, '100', null, null, null, null, 'conversationid');
-        $table->add_field('itemtype',  XMLDB_TYPE_CHAR, '100', null, null, null, null, 'component');
+        $table->add_field('component',  XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null, 'conversationid');
+        $table->add_field('itemtype',  XMLDB_TYPE_CHAR, '100', null, XMLDB_NOTNULL, null, null, 'component');
         $table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'itemtype');
-        $table->add_field('contextid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'itemid');
+        $table->add_field('contextid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'itemid');
         $table->add_field('enabled', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0, 'contextid');
-        $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'enable');
-        $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'timecreated');
+        $table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'enabled');
+        $table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'timecreated');
         $table->add_key('primary', XMLDB_KEY_PRIMARY, ['id'], null, null);
         $table->add_key('conversationid', XMLDB_KEY_FOREIGN, ['conversationid'], 'message_conversations', ['id']);
         $table->add_key('contextid', XMLDB_KEY_FOREIGN, ['contextid'], 'context', ['id']);
@@ -2628,7 +2628,7 @@ function xmldb_main_upgrade($oldversion) {
             $dbman->create_table($table);
         }
 
-        upgrade_main_savepoint(true, 2018101900.03);
+        upgrade_main_savepoint(true, 2018102300.02);
     }
 
     return true;
index a32548a..b29bde3 100644 (file)
@@ -1983,24 +1983,21 @@ class api {
      * @param string $itemtype Defines the type of the component
      * @param int    $itemid The id of the component
      * @param int    $contextid The id of the context
-     * @param int    $enabled Allow enabled or disabled the conversation area
      * @param string $name The main name of the area
+     * @param int    $enabled Enable or disable the conversation area
      * @return \stdClass
      */
-    public static function create_conversation_area(string $component,
-                                                    string $itemtype,
-                                                    int $itemid,
-                                                    int $contextid,
-                                                    int $enabled = 0,
-                                                    string $name) {
+    public static function create_conversation_area(string $component, string $itemtype, int $itemid, int $contextid, string $name,
+            int $enabled = 0) {
         global $DB;
 
         // Create a conversation.
         $conversation = self::create_conversation(self::MESSAGE_CONVERSATION_TYPE_GROUP, array(), $name);
+
         // Create a conversation area.
         $conversationarea = new \stdClass;
         $conversationarea->conversationid = $conversation->id;
-        $conversationarea->component      = !empty($component) ? $component : '';
+        $conversationarea->component      = $component;
         $conversationarea->itemtype       = $itemtype;
         $conversationarea->itemid         = $itemid;
         $conversationarea->contextid      = $contextid;
@@ -2012,6 +2009,29 @@ class api {
         return $conversationarea;
     }
 
+    /**
+     * Checks whether or not a conversation area is enabled.
+     *
+     * @param string $component Defines the Moodle component which the area was added to.
+     * @param string $itemtype Defines the type of the component.
+     * @param int $itemid The id of the component.
+     * @param int $contextid The id of the context.
+     * @return bool Returns if a conversation area exists and is enabled, false otherwise
+     */
+    public static function is_conversation_area_enabled(string $component, string $itemtype, int $itemid, int $contextid) : bool {
+        global $DB;
+
+        return $DB->record_exists('message_conversation_area',
+            [
+                'itemid' => $itemid,
+                'contextid' => $contextid,
+                'component' => $component,
+                'itemtype' => $itemtype,
+                'enabled' => 1
+            ]
+        );
+    }
+
     /**
      * Get conversation area.
      *
@@ -2021,16 +2041,17 @@ class api {
      * @param int    $contextid The id of the context.
      * @return object message_conversation_area.
      */
-    public static function get_conversation_area(string $component,
-                                                 string $itemtype,
-                                                 int $itemid,
-                                                 int $contextid) {
+    public static function get_conversation_area(string $component, string $itemtype, int $itemid, int $contextid) {
         global $DB;
 
-        return $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                             'contextid' => $contextid,
-                                                             'component' => $component,
-                                                             'itemtype'  => $itemtype]);
+        return $DB->get_record('message_conversation_area',
+            [
+                'itemid' => $itemid,
+                'contextid' => $contextid,
+                'component' => $component,
+                'itemtype'  => $itemtype
+            ]
+        );
     }
 
     /**
@@ -2045,7 +2066,7 @@ class api {
         $conversationarea = new \stdClass();
         $conversationarea->id = $conversationareaid;
         $conversationarea->enabled = 1;
-        $conversationarea->timeread = time();
+        $conversationarea->timemodified = time();
         $DB->update_record('message_conversation_area', $conversationarea);
     }
 
@@ -2061,7 +2082,7 @@ class api {
         $conversationarea = new \stdClass();
         $conversationarea->id = $conversationareaid;
         $conversationarea->enabled = 0;
-        $conversationarea->timeread = time();
+        $conversationarea->timemodified = time();
         $DB->update_record('message_conversation_area', $conversationarea);
     }
 
@@ -2078,6 +2099,7 @@ class api {
         if ($conversation = $DB->get_record('message_conversations', array('id' => $conversationid))) {
             if ($name <> $conversation->name) {
                 $conversation->name = $name;
+                $conversation->timemodified = time();
                 $DB->update_record('message_conversations', $conversation);
             }
         }
index a2eab34..cf5a8b6 100644 (file)
@@ -354,26 +354,4 @@ class helper {
 
         return $messageexists || $messagereadexists;
     }
-
-    /**
-     * Get if exists a conversation area and is enabled.
-     *
-     * @param string $component Defines the Moodle component which the area was added to.
-     * @param string $itemtype Defines the type of the component.
-     * @param int    $itemid The id of the component.
-     * @param int    $contextid The id of the context.
-     * @return bool Returns if a conversation area exists and is enabled, false otherwise
-     */
-    public static function get_does_conversation_area_enabled(string $component,
-                                                              string $itemtype,
-                                                              int $itemid,
-                                                              int $contextid) : bool {
-        global $DB;
-
-        return $DB->record_exists('message_conversation_area',  ['itemid'    => $itemid,
-                                                                 'contextid' => $contextid,
-                                                                 'component' => $component,
-                                                                 'itemtype'  => $itemtype,
-                                                                 'enabled'   => 1]);
-    }
 }
index 1ce95f4..da8525b 100644 (file)
@@ -3263,64 +3263,33 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
         \core_message\api::create_conversation(\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL, [1, 2, 3]);
     }
 
-    /**
-     * Comparison function for sorting contacts.
-     *
-     * @param stdClass $a
-     * @param stdClass $b
-     * @return bool
-     */
-    protected static function sort_contacts($a, $b) {
-        return $a->userid > $b->userid;
-    }
-
     /**
      * Test create message conversation area.
      */
     public function test_create_conversation_area() {
-        global $DB;
-
         $this->resetAfterTest();
         $contextid = 111;
         $itemid = 222;
         $name = 'Name of conversation';
-        \core_message\api::create_conversation_area('core_group',
-                                                    'groups',
-                                                    $itemid,
-                                                    $contextid,
-                                                    1,
-                                                    $name);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
-        // Check if exist the new conversation area and if the conversation has been created with the name.
+        $conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name, 0);
+
         $this->assertEquals($itemid, $conversationarea->itemid);
-        $this->assertEquals(
-                $name,
-                $DB->get_field('message_conversations', 'name', ['id' => $conversationarea->conversationid])
-        );
+        $this->assertEquals($contextid, $conversationarea->contextid);
+        $this->assertEquals('core_group', $conversationarea->component);
+        $this->assertEquals('groups', $conversationarea->itemtype);
+        $this->assertEquals(0, $conversationarea->enabled);
     }
 
     /**
      * Test get_conversation_area.
      */
     public function test_get_conversation_area() {
-        global $DB;
-
         $contextid = 111;
         $itemid = 222;
         $name = 'Name of conversation';
-        \core_message\api::create_conversation_area('core_group',
-                                                    'groups',
-                                                    $itemid,
-                                                    $contextid,
-                                                    1,
-                                                    $name);
-        $conversationarea = \core_message\api::get_conversation_area('core_group',
-                                                                     'groups',
-                                                                      $itemid,
-                                                                      $contextid);
+        \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name, 1);
+        $conversationarea = \core_message\api::get_conversation_area('core_group', 'groups', $itemid, $contextid);
+
         $this->assertEquals($itemid, $conversationarea->itemid);
         $this->assertEquals($contextid, $conversationarea->contextid);
         $this->assertEquals('core_group', $conversationarea->component);
@@ -3337,23 +3306,10 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
         $contextid = 111;
         $itemid = 222;
         $name = 'Name of conversation';
-        \core_message\api::create_conversation_area('core_group',
-                                                    'groups',
-                                                    $itemid,
-                                                    $contextid,
-                                                    0,
-                                                    $name);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
-        $this->assertEquals(0, $conversationarea->enabled);
+        $conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name, 0);
         \core_message\api::enable_conversation_area($conversationarea->id);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
-        $this->assertEquals(1, $conversationarea->enabled);
+        $conversationareaenabled = $DB->get_field('message_conversation_area', 'enabled', ['id' => $conversationarea->id]);
+        $this->assertEquals(1, $conversationareaenabled);
     }
 
     /**
@@ -3365,23 +3321,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
         $contextid = 111;
         $itemid = 222;
         $name = 'Name of conversation';
-        \core_message\api::create_conversation_area('core_group',
-                                                    'groups',
-                                                    $itemid,
-                                                    $contextid,
-                                                    1,
-                                                    $name);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
+        $conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name, 1);
         $this->assertEquals(1, $conversationarea->enabled);
         \core_message\api::disable_conversation_area($conversationarea->id);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
-        $this->assertEquals(0, $conversationarea->enabled);
+        $conversationareaenabled = $DB->get_field('message_conversation_area', 'enabled', ['id' => $conversationarea->id]);
+        $this->assertEquals(0, $conversationareaenabled);
     }
     /**
      * Test update_conversation_name.
@@ -3392,20 +3336,7 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
         $contextid = 111;
         $itemid = 222;
         $name = 'Name of conversation';
-        \core_message\api::create_conversation_area('core_group',
-                                                    'groups',
-                                                    $itemid,
-                                                    $contextid,
-                                                    1,
-                                                    $name);
-        $conversationarea = $DB->get_record('message_conversation_area', ['itemid'    => $itemid,
-                                                                          'contextid' => $contextid,
-                                                                          'component' => 'core_group',
-                                                                          'itemtype'  => 'groups']);
-        $this->assertEquals(
-                $name,
-                $DB->get_field('message_conversations', 'name', ['id' => $conversationarea->conversationid])
-        );
+        $conversationarea = \core_message\api::create_conversation_area('core_group', 'groups', $itemid, $contextid, $name, 1);
 
         $newname = 'New name of conversation';
         \core_message\api::update_conversation_name($conversationarea->conversationid, $newname);
@@ -3415,4 +3346,15 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
                 $DB->get_field('message_conversations', 'name', ['id' => $conversationarea->conversationid])
         );
     }
+
+    /**
+     * Comparison function for sorting contacts.
+     *
+     * @param stdClass $a
+     * @param stdClass $b
+     * @return bool
+     */
+    protected static function sort_contacts($a, $b) {
+        return $a->userid > $b->userid;
+    }
 }
index 3671228..c978800 100644 (file)
@@ -29,7 +29,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$version  = 2018102300.01;              // YYYYMMDD      = weekly release date of this DEV branch.
+$version  = 2018102300.02;              // YYYYMMDD      = weekly release date of this DEV branch.
                                         //         RR    = release increments - 00 in DEV branches.
                                         //           .XX = incremental changes.