Exemplo n.º 1
0
 /**
  * Test remove user device
  */
 public function test_remove_user_device()
 {
     global $USER, $CFG, $DB;
     $this->resetAfterTest(true);
     $device = array('appid' => 'com.moodle.moodlemobile', 'name' => 'occam', 'model' => 'Nexus 4', 'platform' => 'Android', 'version' => '4.2.2', 'pushid' => 'apushdkasdfj4835', 'uuid' => 'ABCDE3723ksdfhasfaasef859');
     // A device with the same properties except the appid and pushid.
     $device2 = $device;
     $device2['pushid'] = "0987654321";
     $device2['appid'] = "other.app.com";
     $this->setAdminUser();
     // Create a user device using the external API function.
     core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'], $device['version'], $device['pushid'], $device['uuid']);
     // Create the same device but for a different app.
     core_user_external::add_user_device($device2['appid'], $device2['name'], $device2['model'], $device2['platform'], $device2['version'], $device2['pushid'], $device2['uuid']);
     // Try to remove a device that does not exist.
     $result = core_user_external::remove_user_device('1234567890');
     $result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
     $this->assertFalse($result['removed']);
     $this->assertCount(1, $result['warnings']);
     // Try to remove a device that does not exist for an existing app.
     $result = core_user_external::remove_user_device('1234567890', $device['appid']);
     $result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
     $this->assertFalse($result['removed']);
     $this->assertCount(1, $result['warnings']);
     // Remove an existing device for an existing app. This will remove one of the two devices.
     $result = core_user_external::remove_user_device($device['uuid'], $device['appid']);
     $result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
     $this->assertTrue($result['removed']);
     // Remove all the devices. This must remove the remaining device.
     $result = core_user_external::remove_user_device($device['uuid']);
     $result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
     $this->assertTrue($result['removed']);
 }
Exemplo n.º 2
0
 /**
  * Test add user device
  */
 public function test_add_user_device()
 {
     global $USER, $CFG, $DB;
     $this->resetAfterTest(true);
     $device = array('appid' => 'com.moodle.moodlemobile', 'name' => 'occam', 'model' => 'Nexus 4', 'platform' => 'Android', 'version' => '4.2.2', 'pushid' => 'apushdkasdfj4835', 'uuid' => 'asdnfl348qlksfaasef859');
     // Call the external function.
     core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'], $device['version'], $device['pushid'], $device['uuid']);
     $created = $DB->get_record('user_devices', array('pushid' => $device['pushid']));
     $created = (array) $created;
     $this->assertEquals($device, array_intersect_key((array) $created, $device));
 }
Exemplo n.º 3
0
    /**
     * Test add user device
     */
    public function test_add_user_device() {
        global $USER, $CFG, $DB;

        $this->resetAfterTest(true);

        $device = array(
                'appid' => 'com.moodle.moodlemobile',
                'name' => 'occam',
                'model' => 'Nexus 4',
                'platform' => 'Android',
                'version' => '4.2.2',
                'pushid' => 'apushdkasdfj4835',
                'uuid' => 'asdnfl348qlksfaasef859'
                );

        // Call the external function.
        core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
                                            $device['version'], $device['pushid'], $device['uuid']);

        $created = $DB->get_record('user_devices', array('pushid' => $device['pushid']));
        $created = (array) $created;

        $this->assertEquals($device, array_intersect_key((array)$created, $device));

        // Test reuse the same pushid value.
        $warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
                                                        $device['version'], $device['pushid'], $device['uuid']);
        // We need to execute the return values cleaning process to simulate the web service server.
        $warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
        $this->assertCount(1, $warnings);

        // Test update and existing device.
        $device['pushid'] = 'different than before';
        $warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
                                                        $device['version'], $device['pushid'], $device['uuid']);
        $warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);

        $this->assertEquals(1, $DB->count_records('user_devices'));
        $updated = $DB->get_record('user_devices', array('pushid' => $device['pushid']));
        $this->assertEquals($device, array_intersect_key((array)$updated, $device));

        // Test creating a new device just changing the uuid.
        $device['uuid'] = 'newuidforthesameuser';
        $device['pushid'] = 'new different than before';
        $warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
                                                        $device['version'], $device['pushid'], $device['uuid']);
        $warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
        $this->assertEquals(2, $DB->count_records('user_devices'));
    }