Exemplo n.º 1
0
 function testDirectory()
 {
     $data = $this->mail_data;
     $mail = MailManager::createMail($data);
     $dir = MailManager::createDirectory($this->dir_name, $this->author_id);
     //echo "<p>" . $mail . "<br />" . $dir . "</p>"; //DEBUG
     if ($dir == null || $dir === false) {
         return "<br />Directory test NOT PASSED: not created";
     }
     if ($dir->getOwner() != $this->author_id) {
         return "<br />Directory test NOT PASSED: owner";
     }
     if ($dir->getName() != $this->dir_name) {
         return "<br />Directory test NOT PASSED: name";
     }
     $dir2 = MailManager::loadDirectory($dir->getID());
     //echo "<p>" . $dir . "<br />" . $dir2 . "</p>"; //DEBUG
     if ($dir2 === false) {
         return "<br />Directory test NOT PASSED: not saved";
     }
     if ($dir->getOwner() != $dir2->getOwner()) {
         return "<br />Directory test NOT PASSED: not saved owner";
     }
     if ($dir->getName() != $dir2->getName()) {
         return "<br />Directory test NOT PASSED: not saved name";
     }
     $dir = MailManager::addMailToDir($mail, $dir);
     $dir2 = MailManager::loadDirectory($dir->getID());
     //echo "<p>" . $dir . "<br />" . $dir2 . "</p>"; //DEBUG
     if ($dir2 === false) {
         return "<br />Directory test NOT PASSED: not updated";
     }
     if ($dir->getMails() != $dir2->getMails()) {
         return "<br />Directory test NOT PASSED: not updated mails";
     }
     $dir = MailManager::editDirectory($dir, $this->dir_name2);
     $dir2 = MailManager::loadDirectory($dir->getID());
     //echo "<p>" . $dir . "<br />" . $dir2 . "</p>"; //DEBUG
     if ($dir2 === false) {
         return "<br />Directory test NOT PASSED: not updated";
     }
     if ($dir->getName() != $dir2->getName()) {
         return "<br />Directory test NOT PASSED: not updated name";
     }
     return "<br />Directory test passed";
 }
Exemplo n.º 2
0
 function save()
 {
     require_once "query.php";
     $db = new DBManager();
     if (!$db->connect_errno()) {
         define_tables();
         defineMailColumns();
         $table = Query::getDBSchema()->getTable(TABLE_MAIL);
         $data = array();
         if (isset($this->subject) && !is_null($this->getSubject())) {
             $data[MAIL_SUBJECT] = $this->getSubject();
         }
         if (isset($this->from) && !is_null($this->getFrom())) {
             $data[MAIL_FROM] = intval($this->getFrom());
         }
         if (isset($this->to) && !is_null($this->getTo())) {
             $data[MAIL_TO] = $this->getTo();
         }
         if (isset($this->text) && !is_null($this->getText())) {
             $data[MAIL_TEXT] = $this->getText();
         }
         if (isset($this->repliesTo) && !is_null($this->getRepliesTo())) {
             $data[MAIL_REPLIES_TO] = intval($this->getRepliesTo());
         }
         $rs = $db->execute($s = Query::generateInsertStm($table, $data), $table->getName(), $this);
         //echo "<br />" . $s; //DEBUG
         //echo "<br />" . $db->affected_rows(); //DEBUG
         if ($db->affected_rows() == 1) {
             $this->setID(intval($db->last_inserted_id()));
             //echo "<br />" . serialize($this->ID); //DEBUG
             $rs = $db->execute($s = Query::generateSelectStm(array($table), array(), array(new WhereConstraint($table->getColumn(MAIL_ID), Operator::EQUAL, $this->getID())), array()), $table->getName(), $this);
             //echo "<br />" . $s; //DEBUG
             if ($db->num_rows() == 1) {
                 $row = $db->fetch_result();
                 $this->setCreationDate(date_timestamp_get(date_create_from_format("Y-m-d G:i:s", $row[MAIL_CREATION_DATE])));
                 //echo "<br />" . serialize($row[MAIL_CREATION_DATE]); //DEBUG
                 //inserisce il messaggio nelle mailbox dei $to
                 $toes = explode("|", $this->getTo());
                 //echo serialize($toes); //DEBUG
                 require_once "mail/MailManager.php";
                 for ($i = 0; $i < count($toes); $i++) {
                     $dir = MailManager::loadDirectoryFromName(MAILBOX, intval($toes[$i]));
                     MailManager::addMailToDir($this, $dir);
                 }
                 //echo "<br />" . $this; //DEBUG
                 return $this;
             } else {
                 $db->display_error("Mail::save()");
             }
         } else {
             $db->display_error("Mail::save()");
         }
     } else {
         $db->display_connect_error("Mail::save()");
     }
     return false;
 }