noalyss-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Noalyss-commit] [noalyss] 22/29: Task #0002318: Envoi email : forcer le


From: dwm
Subject: [Noalyss-commit] [noalyss] 22/29: Task #0002318: Envoi email : forcer le domaine de l'expéditeur Adapter le fichier config
Date: Sat, 6 Jan 2024 05:59:16 -0500 (EST)

sparkyx pushed a commit to branch devel
in repository noalyss.

commit cafeec15f58f69572e71797860903f7fed930c4d
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Tue Dec 26 11:25:35 2023 +0100

    Task #0002318: Envoi email : forcer le domaine de l'expéditeur
    Adapter le fichier config
---
 include/class/sendmail.class.php         |  40 ++++-
 include/config.inc.example               |   5 +-
 include/lib/config_file.php              | 276 +++++++++++++++++--------------
 include/lib/sendmail_core.class.php      |   4 +-
 unit-test/include/class/sendmailTest.php | 187 +++++++++++++++++++++
 5 files changed, 386 insertions(+), 126 deletions(-)

diff --git a/include/class/sendmail.class.php b/include/class/sendmail.class.php
index d8cc8567d..006298fb4 100644
--- a/include/class/sendmail.class.php
+++ b/include/class/sendmail.class.php
@@ -96,6 +96,7 @@ class Sendmail extends  Sendmail_Core
     {
         $max_email = $p_repo->get_value("select dos_email from ac_dossier 
where dos_id=$1",
             array($p_dossier_id));
+        if ($max_email == "") return 0;
         return $max_email;
     }
     /**
@@ -114,6 +115,43 @@ class Sendmail extends  Sendmail_Core
 
 
     }
+
+    /**
+     * @brief check if there is a mandatory domain, if yes
+     * @return void
+     * @throws Exception
+     */
+    function verify()
+    {
+        try {
+            parent::verify();
+        } catch (\Exception $e) {
+            throw $e;
+        }
+        if ( defined('ALLOWED_EMAIL_DOMAIN') )
+        {
+            if ( ALLOWED_EMAIL_DOMAIN != "")
+            {
+                $as_domain=explode(",", ALLOWED_EMAIL_DOMAIN);
+                $valid=0;
+                foreach ($as_domain as $domain) {
+                    $domain="@$domain";
+                    if (strpos($this->from,$domain) != 0 ) {
+                        $valid=1;
+                        break;
+                    }
+                }
+                if ( $valid == 0) {
+                    throw new Exception("Domaine email {$this->from} 
interdit",EXC_INVALID);
+
+                }
+
+            }
+
+        }
+
+    }
+
     /**
      * @brief  Add $p_amount_email to email sent
      * @param $p_repo Database
@@ -124,7 +162,7 @@ class Sendmail extends  Sendmail_Core
     {
         if ( $p_dossier == -1) return ;
         $email_sent = $this->get_email_sent($p_repo,$p_dossier,$p_date);
-        if (  empty($email_sent) ){
+        if (  $email_sent == 0 ){
             $p_repo->exec_sql("insert into 
public.dossier_sent_email(de_sent_email,dos_id,de_date) values($1,$2,$3)",
                 array(1,$p_dossier,$p_date));
             return;
diff --git a/include/config.inc.example b/include/config.inc.example
index 114108b1b..f98304544 100644
--- a/include/config.inc.example
+++ b/include/config.inc.example
@@ -88,4 +88,7 @@ define ("DEBUGNOALYSS",0);
 // define ("AUDIT_ENABLE",true);
 //
 // display a captcha
-// define ("NOALYSS_CAPTCHA",true);
\ No newline at end of file
+// define ("NOALYSS_CAPTCHA",true);
+// When sending an email , the domain of this email must be in comma separated 
list ,
+// if the list is an empty string then all the domain are allowed
+// define ('ALLOWED_EMAIL_DOMAIN','');
\ No newline at end of file
diff --git a/include/lib/config_file.php b/include/lib/config_file.php
index b3d8a9d42..19eee50fc 100644
--- a/include/lib/config_file.php
+++ b/include/lib/config_file.php
@@ -19,7 +19,8 @@
 
 // Copyright Author Dany De Bontridder danydb@aevalys.eu
 
-/*!\file
+/*!
+ \file
  * \brief functions concerning the config file config.inc.php. The domain is 
not set into the form for security issues
  */
 
@@ -40,7 +41,8 @@ function is_unix()
 }
 
 
-/*!\brief
+/*
+ * !\brief
  *\param array with the index
  *  - ctmp temporary folder
  *  - cpath path to postgresql
@@ -112,63 +114,60 @@ function config_file_form($p_array=null)
     require NOALYSS_TEMPLATE.'/template_config_form.php';
 }
 /**
- * Display the  content of the config.inc.php with variables
+ * @brief Display the  content of the config.inc.php with variables
  * @param type $p_array
  * @param type $from_setup
  * @param type $p_os
  */
-function display_file_config($p_array,$from_setup=1,$p_os=1) 
+function display_file_config($p_array, $from_setup = 1, $p_os = 1)
 {
     extract($p_array, EXTR_SKIP);
     print ('<?php ');
-    print ("\r\n");
-    print ( 'date_default_timezone_set (\'Europe/Brussels\');');
-    print ("\r\n");
-    print ( "\$_ENV['TMP']='".$ctmp."';");
-    print ("\r\n");
-    print ( 'define("PG_PATH","'.$cpath.'");');
-    print ("\r\n");
-    if ( $p_os == 1 )
-    {
-        print ( 'define("PG_RESTORE","'.$cpath.DIRECTORY_SEPARATOR.'pg_restore 
");');
-        print ("\r\n");
-        print ( 'define("PG_DUMP","'.$cpath.DIRECTORY_SEPARATOR.'pg_dump ");');
-        print ("\r\n");
-        print ( 'define ("PSQL","'.$cpath.DIRECTORY_SEPARATOR.'psql");');
-    }
-    else
-    {
-        print ( 'define("PG_RESTORE","pg_restore.exe");');
-        print ("\r\n");
-        print ( 'define("PG_DUMP","pg_dump.exe");');
-        print ("\r\n");
-        print ( 'define ("PSQL","psql.exe");');
+    echo PHP_EOL;
+    print ('date_default_timezone_set (\'Europe/Brussels\');');
+    echo PHP_EOL;
+    print ("\$_ENV['TMP']='" . $ctmp . "';");
+    echo PHP_EOL;
+    print ('define("PG_PATH","' . $cpath . '");');
+    echo PHP_EOL;
+    if ($p_os == 1) {
+        print ('define("PG_RESTORE","' . $cpath . DIRECTORY_SEPARATOR . 
'pg_restore ");');
+        echo PHP_EOL;
+        print ('define("PG_DUMP","' . $cpath . DIRECTORY_SEPARATOR . 'pg_dump 
");');
+        echo PHP_EOL;
+        print ('define ("PSQL","' . $cpath . DIRECTORY_SEPARATOR . 'psql");');
+    } else {
+        print ('define("PG_RESTORE","pg_restore.exe");');
+        echo PHP_EOL;
+        print ('define("PG_DUMP","pg_dump.exe");');
+        echo PHP_EOL;
+        print ('define ("PSQL","psql.exe");');
     }
-    print ("\r\n");
-    print ( 'define ("noalyss_user","'.$cuser.'");');
-    print ("\r\n");
-    print ( 'define ("noalyss_password","'.$cpasswd.'");');
-    print ("\r\n");
-    print ( 'define ("noalyss_psql_port","'.$cport.'");');
-    print ("\r\n");
-    print ( 'define ("noalyss_psql_host","'.$chost.'");');
-    print ("\r\n");
-    print ("\r\n");
+    echo PHP_EOL;
+    print ('define ("noalyss_user","' . $cuser . '");');
+    echo PHP_EOL;
+    print ('define ("noalyss_password","' . $cpasswd . '");');
+    echo PHP_EOL;
+    print ('define ("noalyss_psql_port","' . $cport . '");');
+    echo PHP_EOL;
+    print ('define ("noalyss_psql_host","' . $chost . '");');
+    echo PHP_EOL;
+    echo PHP_EOL;
     print ("// If you change the NOALYSS_ADMINISTRATOR , you will need to 
rerun http://..../noalyss/html/install.php";);
-    print ("\r\n");
+    echo PHP_EOL;
     print ("// But it doesn't change the password");
-    print ("\r\n");
-    print ( 'define ("NOALYSS_ADMINISTRATOR","'.$cadmin.'");');
-    print ("\r\n");
+    echo PHP_EOL;
+    print ('define ("NOALYSS_ADMINISTRATOR","' . $cadmin . '");');
+    echo PHP_EOL;
     print ("// For changing the password of admin, go to preference or update 
in db");
-    print ("\r\n");
+    echo PHP_EOL;
     print ("// this password is only used when executing install.php ");
-    print ("\r\n");
-    print ( 'define ("NOALYSS_ADMIN_PASSWORD","'.$cpassword_admin.'");');
-    print ("\r\n");
-    
-    print ( 'define ("LOCALE",'.$clocale.');');
-    print ("\r\n");
+    echo PHP_EOL;
+    print ('define ("NOALYSS_ADMIN_PASSWORD","' . $cpassword_admin . '");');
+    echo PHP_EOL;
+
+    print ('define ("LOCALE",' . $clocale . ');');
+    echo PHP_EOL;
     echo "
     /* 
      * DEBUGNOALYSS let you see more information when you develop.
@@ -176,92 +175,125 @@ function 
display_file_config($p_array,$from_setup=1,$p_os=1)
      * 1 = display all errors
      * 2 = display all errors + more information 
      */
-";     
-    
-    print ("\r\n");
-    print ( 'define ("DEBUGNOALYSS",0);');
-    print ("\r\n");
-    
-    print ( 'define ("domaine","");');
-    print ("\r\n");
-    if (isset($multi))
-    {
-        print ( 'define ("MULTI",0);');
+";
+
+    echo PHP_EOL;
+    print ('define ("DEBUGNOALYSS",0);');
+    echo PHP_EOL;
+
+    print ('define ("domaine","");');
+    echo PHP_EOL;
+    if (isset($multi)) {
+        print ('define ("MULTI",0);');
     }
-    if (!isset($multi))
-    {
-        print ( 'define ("MULTI",1);');
+    if (!isset($multi)) {
+        print ('define ("MULTI",1);');
     }
-    print ("\r\n");
-    print ( 'define ("dbname","'.$cdbname.'");');
-    print ("\r\n");
-    
+    echo PHP_EOL;
+    print ('define ("dbname","' . $cdbname . '");');
+    echo PHP_EOL;
+
     print (' // Uncomment to log your input');
-    print ("\r\n");   
-    print ( '// define ("LOGINPUT",TRUE);');
-    print ("\r\n");
-    print ("\r\n");
-    print ("\r\n");
+    echo PHP_EOL;
+    print ('// define ("LOGINPUT",TRUE);');
+    echo PHP_EOL;
+    echo PHP_EOL;
+    echo PHP_EOL;
     print (' // Do not change below !!!');
-    print ("\r\n");
+    echo PHP_EOL;
     print (' // These variable are computed but could be changed in ');
-    print ("\r\n");
+    echo PHP_EOL;
     print (' // very special configuration');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_HOME","");');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_PLUGIN","");');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_INCLUDE","");');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_TEMPLATE","");');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_INCLUDE","");');
-    print ("\r\n");
-    print ( '// define ("NOALYSS_TEMPLATE","");');
-    print ("\r\n");
-    print ( "// Fix an issue with PDF when exporting receipt in PDF in 
ANCGL"."\r\n");
-    print ( '// define ("FIX_BROKEN_PDF","NO");');
-    print ("\r\n");
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_HOME","");');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_PLUGIN","");');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_INCLUDE","");');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_TEMPLATE","");');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_INCLUDE","");');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS_TEMPLATE","");');
+    echo PHP_EOL;
+    print ("// Fix an issue with PDF when exporting receipt in PDF in ANCGL");
+    print ('// define ("FIX_BROKEN_PDF","NO");');
+    echo PHP_EOL;
     print ("// Uncomment if you want to convert to PDF");
-    print ("\r\n");
+    echo PHP_EOL;
     print ("// With the unoconv tool");
-    print ("\r\n");
-    print ( "//define ('OFFICE','HOME=/tmp unoconv ');");
-    print ("\r\n");
+    echo PHP_EOL;
+    print ("//define ('OFFICE','HOME=/tmp unoconv ');");
+    echo PHP_EOL;
     print ("//define ('GENERATE_PDF','YES');");
-    print ("\r\n");
-    print ( "// Uncomment if you don't want "."\r\n");
-    print ( "// to be informed when a new release is "."\r\n");
-    print ( "// published"."\r\n");
-    print ( '// define ("SITE_UPDATE","");'."\r\n");
-    print ( '// define ("SITE_UPDATE_PLUGIN","");'."\r\n");
-    print ( '// To allow to access the Info system'."\r\n");
-    print ( '// define ("SYSINFO_DISPLAY",true);'."\r\n");
-    print ( '// For developpement'."\r\n");
-    print ( '// define ("NOALYSS VERSION",9999);'."\r\n");
-    print (' // If you want to override the parameters you have to define 
OVERRIDE_PARAM'."\r\n");
-    print ('// and give your own parameters for max_execution_time and 
memory_limit'."\r\n");
-    print ("// define ('OVERRIDE_PARAM',1);\r\n");
-    print ("// ini_set ('max_execution_time',240);\r\n");
-    print ("// ini_set ('memory_limit','256M');\r\n");
-    print ("// In recent distribution linux, pdftk is a snap, you should set 
the path\r\n");
-    print ("// for exporting document in PDF\r\n");
-    print ("// \$pdftk = /usr/bin/pdftk \r\n");
-    print ("// \$pdftk = /snap/bin/pdftk \r\n");
-    print ("// uncomment to activate the captcha on login page\r\n");
-    print ("// define('NOALYSS_CAPTCHA',true);\r\n");
-    print ("// Uncomment if you want to activate the possibility to 
reinitialize;\r\n");
-    print ("// password by email\r\n");
-    print ("// define ('RECOVER','1');\r\n");
-    print ("// Uncomment and define if you want to Name of the sender of the 
email \r\n");
-    print ("// if you activate the possibility to reinitialize password by 
email\r\n");
-    print ("// define('ADMIN_WEB', 'www-data@localhost');\r\n");
-    print ("// Define a random session key if you work with different version 
of NOALYSS\r\n");
-    printf ("define ('SESSION_KEY','%s');",generate_random_string(10)) ;
+    echo PHP_EOL;
+    print ("// Uncomment if you don't want ");
+    echo PHP_EOL;
+    print ("// to be informed when a new release is ");
+    echo PHP_EOL;
+    print ("// published");
+    echo PHP_EOL;
+    print ('// define ("SITE_UPDATE","");');
+    echo PHP_EOL;
+    print ('// define ("SITE_UPDATE_PLUGIN","");');
+    echo PHP_EOL;
+    print ('// To allow to access the Info system');
+    echo PHP_EOL;
+    print ('// define ("SYSINFO_DISPLAY",true);');
+    echo PHP_EOL;
+    print ('// For developpement');
+    echo PHP_EOL;
+    print ('// define ("NOALYSS VERSION",9999);');
+    echo PHP_EOL;
+    print (' // If you want to override the parameters you have to define 
OVERRIDE_PARAM');
+    echo PHP_EOL;
+    print ('// and give your own parameters for max_execution_time and 
memory_limit');
+    echo PHP_EOL;
+    print ("// define ('OVERRIDE_PARAM',1);");
+    echo PHP_EOL;
+    print ("// ini_set ('max_execution_time',240);");
+    echo PHP_EOL;
+    print ("// ini_set ('memory_limit','256M');");
+    echo PHP_EOL;
+    print ("// In recent distribution linux, pdftk is a snap, you should set 
the path");
+    echo PHP_EOL;
+    print ("// for exporting document in PDF");
+    echo PHP_EOL;
+    print ("// \$pdftk = /usr/bin/pdftk ");
+    echo PHP_EOL;
+    print ("// \$pdftk = /snap/bin/pdftk ");
+    echo PHP_EOL;
+    print ("// uncomment to activate the captcha on login page");
+    echo PHP_EOL;
+    print ("// define('NOALYSS_CAPTCHA',true);");
+    echo PHP_EOL;
+    print ("// Uncomment if you want to activate the possibility to 
reinitialize;");
+    echo PHP_EOL;
+    print ("// password by email");
+    echo PHP_EOL;
+    print ("// define ('RECOVER','1');");
+    echo PHP_EOL;
+    print ("// Uncomment and define if you want to Name of the sender of the 
email ");
+    echo PHP_EOL;
+    print ("// if you activate the possibility to reinitialize password by 
email");
+    echo PHP_EOL;
+    print ("// define('ADMIN_WEB', 'www-data@localhost');");
+    echo PHP_EOL;
+    print ("// Define a random session key if you work with different version 
of NOALYSS");
+    echo PHP_EOL;
+    printf("define ('SESSION_KEY','%s');", generate_random_string(10));
+    echo PHP_EOL;
+    printf("// When sending an email , the domain of this email must be in 
comma separated list ,");
+    echo PHP_EOL;
+    print ("// if the list is an empty string then all the domain are 
allowed");
+    echo PHP_EOL;
+    printf("// define ('ALLOWED_EMAIL_DOMAIN','');");
+    echo PHP_EOL;
 
 }
-/*!\brief create the config file
+/*!
+ * \brief create the config file
  */
 function config_file_create($p_array,$from_setup,$p_os=1)
 {
diff --git a/include/lib/sendmail_core.class.php 
b/include/lib/sendmail_core.class.php
index f07648bc8..4620adbde 100644
--- a/include/lib/sendmail_core.class.php
+++ b/include/lib/sendmail_core.class.php
@@ -106,9 +106,9 @@ class Sendmail_Core
         for ($i = 0; $i < count($array); $i++)
         {
             $name = $array[$i];
-            if (trim($this->$name) == "")
+            if (trim($this->$name??"") == "")
             {
-                throw new Exception( sprintf(_("%s est vide"),$name));
+                throw new Exception( sprintf(_("%s est 
vide"),$name),EXC_INVALID);
             }
         }
     }
diff --git a/unit-test/include/class/sendmailTest.php 
b/unit-test/include/class/sendmailTest.php
new file mode 100644
index 000000000..1b327c82f
--- /dev/null
+++ b/unit-test/include/class/sendmailTest.php
@@ -0,0 +1,187 @@
+<?php
+
+/*
+ * * Copyright (C) 2022 Dany De Bontridder <dany@alchimerys.be>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * 
+ * Author : Dany De Bontridder danydb@noalyss.eu $(DATE)
+ */
+
+/**
+ * @file
+ * @brief noalyss
+ */
+
+use PHPUnit\Framework\TestCase;
+
+require DIRTEST . '/global.php';
+
+define ("ALLOWED_EMAIL_DOMAIN","linux.org,localhost");
+
+/**
+ * @testdox Class SendmailTest : used for ...
+ * @backupGlobals enabled
+ * @coversDefaultClass Sendmail
+ */
+class SendmailTest extends TestCase
+{
+
+    /**
+     * @testdox verify that email has the mandatory filed
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyCorrect()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("dany@gmail.com");
+        $sendmail->set_from("web@localhost");
+        $sendmail->set_subject("Test envoi");
+        $sendmail->set_message("corps du message");
+        try {
+            $sendmail->verify();
+            $this->assertTrue(true);
+        } catch (\Exception $e) {
+            $this->assertTrue(false," check email fails");
+        }
+
+    }
+    /**
+     * @testdox verify that email fails it mailto is absent
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyFailsMailto()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("");
+        $sendmail->set_from("web@localhost");
+        $sendmail->set_subject("Test envoi");
+        $sendmail->set_message("corps du message");
+        $this->expectExceptionCode(EXC_INVALID);
+        $sendmail->verify();
+
+    }
+    /**
+     * @testdox verify that email fails it recipient is absent
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyFailsFrom()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("web@localhost");
+        $sendmail->set_from("");
+        $sendmail->set_subject("Test envoi");
+        $sendmail->set_message("corps du message");
+        $this->expectExceptionCode(EXC_INVALID);
+        $sendmail->verify();
+
+    }
+    /**
+     * @testdox verify that email fails it subject is absent
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyFailsSubject()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("web@localhost");
+        $sendmail->set_from("dany@gmail.com");
+        $sendmail->set_message("corps du message");
+        $this->expectExceptionCode(EXC_INVALID);
+        $sendmail->verify();
+
+    }
+    /**
+     * @testdox verify that email fails it content is absent
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyFailsContent()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("");
+        $sendmail->set_from("web@localhost");
+        $sendmail->set_subject("Test envoi");
+        $this->expectExceptionCode(EXC_INVALID);
+        $sendmail->verify();
+
+    }
+    /**
+     * @testdox Check that the from of email respect Domain : domain allowed
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyDomainFails()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("web@localhost");
+        $sendmail->set_from("dany@gmail.com");
+        $sendmail->set_subject("Test envoi");
+        $sendmail->set_message("corps du message");
+
+        $this->expectExceptionCode(EXC_INVALID);
+        $sendmail->verify();
+
+    }
+    /**
+     * @testdox Check that the from of email respect Domain : domain forbidden
+     * @covers       Sendmail::verify
+     * @backupGlobals enabled
+     */
+    function testVerifyDomainSuccess()
+    {
+        $sendmail=new \Sendmail();
+        $sendmail->mailto("web@localhost");
+        $sendmail->set_from("dany@linux.org");
+        $sendmail->set_subject("Test envoi");
+        $sendmail->set_message("corps du message");
+
+        $sendmail->verify();
+        $this->assertTrue(true);
+
+    }
+    /*
+     *@testdox test increment email
+     *@covers Sendmail::increment_mail Sendmail::get_email_sent
+     */
+    function testIncrement_mail()
+    {
+        $cn=new \Database();
+        $dos_id=DOSSIER;
+        $sendmail=new Sendmail();
+        $cn->exec_sql("delete from dossier_sent_email where dos_id=$dos_id and 
de_date='20100101'");
+        $email_sent=$sendmail->get_email_sent($cn, $dos_id, '20100101');
+        $this->assertTrue($email_sent == 0,"error cannot count email get 
$email_sent");
+
+        $sendmail->increment_mail($cn, $dos_id, "20100101");
+        $email_sent=$sendmail->get_email_sent($cn, $dos_id, '20100101');
+        $this->assertTrue($email_sent == 1,"error cannot count email get 
$email_sent");
+
+        $sendmail->increment_mail($cn, $dos_id, "20100101");
+        $email_sent=$sendmail->get_email_sent($cn, $dos_id, '20100101');
+        $this->assertTrue($email_sent == 2,"error cannot count email");
+
+        $sendmail->increment_mail($cn, $dos_id, "20100101");
+        $email_sent=$sendmail->get_email_sent($cn, $dos_id, '20100101');
+        $this->assertTrue($email_sent == 3,"error cannot count email 
$email_sent");
+
+        $cn->exec_sql("delete from dossier_sent_email where dos_id=$dos_id and 
de_date='20100101'");
+
+    }
+}
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]