]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/EmailMan/Bug44113Test.php
Release 6.4.0
[Github/sugarcrm.git] / tests / modules / EmailMan / Bug44113Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
5  * 
6  * This program is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  * 
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
16  * details.
17  * 
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  * 
23  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
26  * The interactive user interfaces in modified source and object code versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  * 
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the "Powered by
32  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33  * technical reasons, the Appropriate Legal Notices must display the words
34  * "Powered by SugarCRM".
35  ********************************************************************************/
36
37
38 require_once('modules/Configurator/Configurator.php');
39 require_once('modules/EmailMan/EmailMan.php');
40
41 /***
42  * Test cases for Bug 44113
43  */
44 class Bug44113Test extends Sugar_PHPUnit_Framework_TestCase
45 {
46         private $cfg;   // configurator
47         private $emailMan;
48     private $email_xss; // the security settings to be saved in config_ovverride
49     private $original_email_xss = null;
50
51         public function setUp()
52         {
53         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
54         $GLOBALS['current_user']->is_admin = '1';
55         require("config.php");
56         if(isset($sugar_config['email_xss']))
57         {
58            $this->_original_email_xss = $sugar_config['email_xss'];
59            $this->cfg = new Configurator();
60            $this->cfg->config['email_xss'] = getDefaultXssTags();
61            $this->cfg->handleOverride();
62         }
63
64         // email_xss settings to be saved using config_override
65         $this->email_xss = array(
66             //'applet' => 'applet',
67             'form' => 'form',
68             'iframe' => 'iframe',
69             'script' => 'script'
70             );
71
72         }
73
74         public function tearDown()
75         {
76         if(isset($this->original_email_xss))
77         {
78            $this->cfg = new Configurator();
79            $this->cfg->config['email_xss'] = $this->original_email_xss;
80            $this->cfg->handleOverride();
81         }
82                 unset($this->cfg);
83         unset($this->emailMan);
84         unset($this->email_xss);
85         unset($GLOBALS['current_user']);
86
87         }
88
89     public function testEmailManController()
90     {
91
92
93       require_once('modules/EmailMan/controller.php');
94       require_once('include/MVC/Controller/SugarController.php');
95
96       global $sugar_config;
97       $conn = new EmailManController();
98
99       // populate the REQUEST array because configurator will read that to write config_override
100       foreach ($this->email_xss as $key=>$val) {
101            $_REQUEST["$key"] = $val;
102       }
103
104       $new_security_settings = base64_encode(serialize($this->email_xss));
105
106       // make sure that settings from config.php are untouched
107       $original_security_settings = getDefaultXssTags();
108       $this->assertNotEquals($original_security_settings, $new_security_settings, "ensure that original email_xss is not touched");
109
110       $conn->action_Save();   // testing the save,
111                               // it should use the above request vars
112                               // to create a new config_override.php
113
114       // now check to make sure that config_override received the updated settings
115       require("config_override.php");
116       $this->assertEquals($new_security_settings, $sugar_config['email_xss'],
117                           "testing that new email_xss settings got saved");
118
119    }
120
121
122
123     /**
124      * make sure that new configs are saved using handleOverride
125      */
126         public function testSavingToConfigOverride()
127         {
128        $this->cfg = new Configurator();
129        global $sugar_config;
130
131        $new_security_settings = base64_encode(serialize($this->email_xss));
132
133        $this->cfg->config['email_xss'] = $new_security_settings;
134        $this->cfg->handleOverride();
135
136        // just test to make sure that configuration is saved
137        $this->assertEquals($sugar_config['email_xss'], $new_security_settings, "testing configurator");
138     }
139
140 }
141
142 ?>