Ejemplo n.º 1
0
 /**
  * Test get_user_notification_preferences
  */
 public function test_get_user_message_preferences()
 {
     $this->resetAfterTest(true);
     $user = self::getDataGenerator()->create_user();
     $this->setUser($user);
     // Set a couple of preferences to test.
     set_user_preference('message_provider_moodle_instantmessage_loggedin', 'email', $user);
     set_user_preference('message_provider_moodle_instantmessage_loggedoff', 'email', $user);
     set_user_preference('message_blocknoncontacts', 1, $user);
     $prefs = core_message_external::get_user_message_preferences();
     $prefs = external_api::clean_returnvalue(core_message_external::get_user_message_preferences_returns(), $prefs);
     $this->assertEquals($user->id, $prefs['preferences']['userid']);
     // Check components.
     $this->assertCount(1, $prefs['preferences']['components']);
     $this->assertTrue($prefs['blocknoncontacts']);
     // Check some preferences that we previously set.
     $found = false;
     foreach ($prefs['preferences']['components'] as $component) {
         foreach ($component['notifications'] as $prefdata) {
             if ($prefdata['preferencekey'] != 'message_provider_moodle_instantmessage') {
                 continue;
             }
             foreach ($prefdata['processors'] as $processor) {
                 if ($processor['name'] == 'email') {
                     $this->assertTrue($processor['loggedin']['checked']);
                     $this->assertTrue($processor['loggedoff']['checked']);
                     $found = true;
                 }
             }
         }
     }
     $this->assertTrue($found);
 }