Ejemplo n.º 1
0
 /**
  * Test get_user_notification_preferences
  */
 public function test_get_user_notification_preferences()
 {
     $this->resetAfterTest(true);
     $user = self::getDataGenerator()->create_user();
     $this->setUser($user);
     // Set a couple of preferences to test.
     set_user_preference('message_provider_mod_assign_assign_notification_loggedin', 'popup', $user);
     set_user_preference('message_provider_mod_assign_assign_notification_loggedoff', 'email', $user);
     $prefs = core_message_external::get_user_notification_preferences();
     $prefs = external_api::clean_returnvalue(core_message_external::get_user_notification_preferences_returns(), $prefs);
     // Check processors.
     $this->assertCount(2, $prefs['preferences']['processors']);
     $this->assertEquals($user->id, $prefs['preferences']['userid']);
     // Check components.
     $this->assertCount(8, $prefs['preferences']['components']);
     // Check some preferences that we previously set.
     $found = 0;
     foreach ($prefs['preferences']['components'] as $component) {
         foreach ($component['notifications'] as $prefdata) {
             if ($prefdata['preferencekey'] != 'message_provider_mod_assign_assign_notification') {
                 continue;
             }
             foreach ($prefdata['processors'] as $processor) {
                 if ($processor['name'] == 'popup') {
                     $this->assertTrue($processor['loggedin']['checked']);
                     $found++;
                 } else {
                     if ($processor['name'] == 'email') {
                         $this->assertTrue($processor['loggedoff']['checked']);
                         $found++;
                     }
                 }
             }
         }
     }
     $this->assertEquals(2, $found);
 }