ea-Geiertest
[ class tree: ea-Geier ] [ index: ea-Geier ] [ all elements ]

Source for file mail.class.php

Documentation is available at mail.class.php

  1. <?php
  2. /**
  3.  * test case for mail wrapper
  4.  *
  5.  * LICENSE:
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
  13.  * GNU General Public License for more details.
  14.  * You should have received a copy of the GNU General Public License along
  15.  * with this program; if not, write to the Free Software Foundation, Inc.,
  16.  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  17.  *
  18.  * @package       ea-Geier
  19.  * @subpackage test
  20.  * @author       m2mtech <tech@m2m.at>
  21.  * @copyright  2007 m2m server software gmbh
  22.  * @license       http://www.gnu.org/licenses/gpl.html GNU General Public License Version 2
  23.  * @version       $Id: mail.class.php 138 2007-08-29 12:13:55Z m2mtech $
  24.  * @link       http://www.ea-geier.at/
  25.  */
  26.  
  27. /**
  28.  * class to be tested
  29.  */
  30. require_once('code/base/mail.class.php');
  31.  
  32. /**
  33.  * tast case for mail wrapper
  34.  *
  35.  * @package       ea-Geier
  36.  */
  37. class TestMail extends UnitTestCase {
  38.     
  39.     /**
  40.      * constructor
  41.      */
  42.     function TestMail({
  43.         $this->UnitTestCase('Test Mail Wrapper');
  44.     }
  45.  
  46.     /**
  47.      * start FakeMail server & remove old mails
  48.      */
  49.     function setUp({
  50.         if (eaFAKEMAIL_DIR == 'none'return false// no test
  51.         $output false;
  52.         if (exec('ps ax | grep fakemail'$output)) {
  53.             foreach ($output as $line{
  54.                 if (preg_match('/grep/'$line)) continue;
  55.                 $match false;
  56.                 if (preg_match('/[0-9]+/'$line$match)) {
  57.                     $command 'kill ' $match[0];
  58.                     `$command`;
  59.                 }                    
  60.             }
  61.         }
  62.         $this->deleteTempMails();
  63.         $command eaFAKEMAIL_DIR 'fakemail --path=' eaFAKEMAIL_TMP ' --host=' eaFAKEMAIL_SERVER ' --port=' eaFAKEMAIL_PORT ' --background';
  64.         $this->pid = `$command`;
  65.         sleep(1)// server does not start up fast enough
  66.     }
  67.     
  68.     /**
  69.      * stop FakeMail server & remove mails
  70.      */
  71.     function tearDown({
  72.         if (eaFAKEMAIL_DIR == 'none'return false// no test
  73.         $command 'kill ' $this->pid;
  74.         `$command`;
  75.         $this->deleteTempMails();
  76.     }
  77.     
  78.     /**
  79.      * delete temporary test mails
  80.      */
  81.     function deleteTempMails({
  82.         if (eaFAKEMAIL_DIR == 'none'return false// no test
  83.         $dir eaFAKEMAIL_TMP;
  84.         if (!is_dir($dir)) return false;
  85.         if (!$dh opendir($dir)) return false;
  86.         while (($file readdir($dh)) !== false{
  87.             if (!strpos($file'@')) continue;
  88.             if (!is_file($file)) continue;
  89.             unlink($file);
  90.         }
  91.         closedir($dh);
  92.         return true;
  93.     }
  94.  
  95.     /**
  96.      * tests the constructor
  97.      *
  98.      * checks
  99.      * - connection to MTA
  100.      */
  101.     function testConstructor({
  102.         if (eaFAKEMAIL_DIR == 'none'return false// no test
  103.         
  104.         // wrong server        
  105.         $mail new eaMail('dummyhost'25);
  106.         $this->assertTrue($mail->error);
  107.         
  108.         // working server
  109.         $mail new eaMail(eaFAKEMAIL_SERVEReaFAKEMAIL_PORT);
  110.         $this->assertFalse($mail->error);
  111.     }
  112.     
  113.     /**
  114.      * tests send, to, from, bcc, cc, subject, text
  115.      *
  116.      * checks
  117.      * - missing elements
  118.      * - working email
  119.      */
  120.     function testSend({
  121.         if (eaFAKEMAIL_DIR == 'none'return false// no test
  122.  
  123.         $mail new eaMail(eaFAKEMAIL_SERVEReaFAKEMAIL_PORT);
  124.         
  125.         // missing content
  126.         $this->assertFalse($mail->send());
  127.         
  128.         // subject only
  129.         $mail->subject('TestMail');
  130.         $this->assertFalse($mail->send());
  131.  
  132.         // missing to & from
  133.         $mail->text("testemail test content\ntesteamil test content");
  134.         $this->assertFalse($mail->send());
  135.  
  136.         // missing from 
  137.         $mail->to('testTo@ea-geier.at''testTo');
  138.         $mail->cc('testCc@ea-geier.at');
  139.         $mail->bcc('testBcc@ea-geier.at');
  140.         $this->assertFalse($mail->send())
  141.  
  142.         // complete mail
  143.         $mail->from('testFrom@ea-geier.at');
  144.         $this->assertTrue($mail->send());
  145.     }
  146.  
  147. }
  148. ?>

Documentation generated on Sun, 09 Sep 2007 17:09:05 +0200 by phpDocumentor 1.3.1