* @license BSD */ namespace Domframework\Tests; use Domframework\Mail; /** * Test the Mail.php file */ class MailTest extends \PHPUnit_Framework_TestCase { public function testSetBodyText1() { $mail = new Mail(); $mail->setBodyText("TEST"); $res = $mail->getMail(); $this->assertRegExp("#TEST\n$#", $res); } public function testSetBodyHTML1() { $mail = new Mail(); $mail->setBodyHTML("TEST"); $res = $mail->getMail(); $this->assertRegExp("#^\r\nTEST\n$#m", $res); } public function testSetGetBodyText1() { $mail = new Mail(); $mail->setBodyText("TEST"); $res = $mail->getBodyText(); $this->assertSame("TEST\n", $res); } public function testSetGetBodyHtml1() { $mail = new Mail(); $mail->setBodyHtml("TEST"); $res = $mail->getBodyHtml(); $this->assertSame("TEST\n", $res); } public function testSetFrom1() { $mail = new Mail(); $mail->setFrom("test@example.com", "Test Exa1mple Com"); $res = $mail->getFrom(); $this->assertSame("Test Exa1mple Com \r\n", $res); } public function testAddTo1() { $mail = new Mail(); $mail->addTo("test@example.com", "Test Exa1mple Com"); $res = $mail->getTo(); $this->assertSame("Test Exa1mple Com \r\n", $res); } public function testAddTo2() { $mail = new Mail(); $mail->addTo("test@example.com", "Test Exa1mple Com"); $res = $mail->getMail(); $this->assertRegexp("#^To: Test Exa1mple Com \r$#m", $res); } public function testSetDateTimestamp1() { $mail = new Mail(); $time = time(); $mail->setDateTimestamp($time); $res = $mail->getDateTimestamp(); $this->assertSame($res, $time); } public function testSetDateTimestamp2() { $mail = new Mail(); $time = time(); $mail->setDateTimestamp($time); $res = $mail->getMail(); $this->assertRegexp("#^Date: " . preg_quote(date("r", $time)) . "\r$#m", $res); } public function testConvertPeopleToArray1() { $mail = new Mail(); $res = $mail->convertPeopleToArray("toto toto "); $this->assertSame($res, [["name" => "toto toto", "mail" => "toto@toto.com"]]); } public function testConvertPeopleToArray2() { $mail = new Mail(); $res = $mail->convertPeopleToArray(""); $this->assertSame($res, [["name" => "", "mail" => "toto@toto.com"]]); } public function testConvertPeopleToArray3() { $mail = new Mail(); $res = $mail->convertPeopleToArray("toto@toto.com,titi@titi.com"); $this->assertSame($res, [["name" => "", "mail" => "toto@toto.com"], ["name" => "", "mail" => "titi@titi.com"]]); } public function testConvertPeopleToArray4() { $mail = new Mail(); $res = $mail->convertPeopleToArray("toto@toto.com"); $this->assertSame($res, [["name" => "", "mail" => "toto@toto.com"]]); } public function testConvertPeopleToArray5() { $mail = new Mail(); $res = $mail->convertPeopleToArray(" , "); $this->assertSame($res, [["name" => "", "mail" => "toto@toto.com"], ["name" => "", "mail" => "titi@titi.com"]]); } public function testConvertPeopleToArray6() { $mail = new Mail(); $res = $mail->convertPeopleToArray("ToTo , "); $this->assertSame($res, [["name" => "ToTo", "mail" => "toto@toto.com"], ["name" => "", "mail" => "titi@titi.com"]]); } /** * Read all the headers and return them as JSON object */ public function testHeadersToJSON1() { $mail = new Mail(); $mail->readMail( // {{{ "Return-Path: Delivered-To: dominique@fournier38.fr Received: from mail-postfix-mx.fournier38.fr ([192.168.1.103]) by mail-dovecot.fournier38.fr with LMTP id z706BqQt7V15IAAAA28uxw (envelope-from ) for ; Sun, 08 Dec 2019 18:06:44 +0100 Received: from mailgw-out1.grenoble.cnrs.fr (mailgw-out1.grenoble.cnrs.fr [147.173.1.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-postfix-mx.fournier38.fr (Postfix) with ESMTPS id 8A2DF820733 for ; Sun, 8 Dec 2019 18:06:43 +0100 (CET) DMARC-Filter: OpenDMARC Filter v1.3.2 mail-postfix-mx.fournier38.fr 8A2DF820733 Delivered-To: dominique.fournier@grenoble.cnrs.fr Received: from [192.168.1.154] (82-64-55-197.subs.proxad.net [82.64.55.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailgw-out1.grenoble.cnrs.fr (Postfix) with ESMTPSA id 458EDBFCE4 for ; Sun, 8 Dec 2019 18:08:06 +0100 (CET) From: Dominique Fournier Subject: Analyse de texte To: Dominique Fournier / Fournier38 Message-ID: <81d7982f-7fee-96b4-078f-a6365234356f@grenoble.cnrs.fr> Date: Sun, 8 Dec 2019 18:08:06 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Authentication-Results: mail-postfix-mx.fournier38.fr; dkim=none; dmarc=none; spf=pass (mail-postfix-mx.fournier38.fr: domain of dominique.fournier@grenoble.cnrs.fr designates 147.173.1.68 as permitted sender) smtp.mailfrom=dominique.fournier@grenoble.cnrs.fr X-Spamd-Bar: -------------------------------------------------------------------------------------------------- https://openclassrooms.com/fr/courses/4470541-analysez-vos-donnees-textuelles/4854971-nettoyez-et-normalisez-les-donnees http://www.nltk.org/nltk_data/ http://www.cs.cmu.edu/~ralf/langid.html " ); // }}} $this->assertSame($mail->getHeaders(), [ ["Return-Path" => "\n"], ["Delivered-To" => "dominique@fournier38.fr\n"], ["Received" => "from mail-postfix-mx.fournier38.fr ([192.168.1.103]) by mail-dovecot.fournier38.fr with LMTP id z706BqQt7V15IAAAA28uxw (envelope-from ) for ; Sun, 08 Dec 2019 18:06:44 +0100\n"], ["Received" => "from mailgw-out1.grenoble.cnrs.fr (mailgw-out1.grenoble.cnrs.fr [147.173.1.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-postfix-mx.fournier38.fr (Postfix) with ESMTPS id 8A2DF820733 for ; Sun, 8 Dec 2019 18:06:43 +0100 (CET)\n"], ["DMARC-Filter" => "OpenDMARC Filter v1.3.2 mail-postfix-mx.fournier38.fr 8A2DF820733\n"], ["Delivered-To" => "dominique.fournier@grenoble.cnrs.fr\n"], ["Received" => "from [192.168.1.154] (82-64-55-197.subs.proxad.net [82.64.55.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailgw-out1.grenoble.cnrs.fr (Postfix) with ESMTPSA id 458EDBFCE4 for ; Sun, 8 Dec 2019 18:08:06 +0100 (CET)\n"], ["From" => "Dominique Fournier \n"], ["Subject" => "Analyse de texte\n"], ["To" => "Dominique Fournier / Fournier38 \n"], ["Message-ID" => "<81d7982f-7fee-96b4-078f-a6365234356f@grenoble.cnrs.fr>\n"], ["Date" => "Sun, 8 Dec 2019 18:08:06 +0100\n"], ["User-Agent" => "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2\n"], ["MIME-Version" => "1.0\n"], ["Content-Type" => "text/plain; charset=utf-8; format=flowed\n"], ["Content-Language" => "en-US\n"], ["Content-Transfer-Encoding" => "7bit\n"], ["Authentication-Results" => "mail-postfix-mx.fournier38.fr; dkim=none; dmarc=none; spf=pass (mail-postfix-mx.fournier38.fr: domain of dominique.fournier@grenoble.cnrs.fr designates 147.173.1.68 as permitted sender) smtp.mailfrom=dominique.fournier@grenoble.cnrs.fr\n"], ["X-Spamd-Bar" => "--------------------------------------------------------------------------------------------------\n"], ]); } }