public function test_fetch_many() {
        $label1 = local_mail_label::create(201, 'label1');
        $label2 = local_mail_label::create(202, 'label2');
        $message1 = local_mail_message::create(201, 101);
        $message1->save('subject1', 'content1', 301);
        $message1->add_recipient('to', 202);
        $message2 = local_mail_message::create(201, 101);
        $message2->save('subject2', 'content2', 302);
        $message2->add_recipient('to', 202);
        $message2->add_recipient('cc', 203);
        $message2->send();
        $message2->add_label($label1);
        $message2->add_label($label2);

        $result = local_mail_message::fetch_many(array($message1->id(), $message2->id()));

        $this->assertEquals(array($message1, $message2), $result);
    }
Exemplo n.º 2
0
         print_error('nomessages', 'local_mail');
     }
     if (isset($data->labelid)) {
         $data->labelid = clean_param_array($data->labelid, PARAM_INT);
         $labels = local_mail_label::fetch_user($USER->id);
         foreach ($labels as $label) {
             if ($data->labelid[$label->id()]) {
                 $message->add_label($label);
             } else {
                 $message->remove_label($label);
             }
         }
     }
 } else {
     if ($msgs) {
         $messages = local_mail_message::fetch_many($msgs);
         if (isset($data->labelid)) {
             $data->labelid = clean_param_array($data->labelid, PARAM_INT);
             $labels = local_mail_label::fetch_user($USER->id);
         }
         foreach ($messages as $message) {
             if (!$message->viewable($USER->id) or $message->deleted($USER->id)) {
                 print_error('invalidmessage', 'local_mail');
             }
             if (isset($data->labelid)) {
                 foreach ($labels as $label) {
                     if ($data->labelid[$label->id()]) {
                         $message->add_label($label);
                     } else {
                         $message->remove_label($label);
                     }