2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
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.
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
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
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.
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.
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 ********************************************************************************/
38 require_once 'modules/Import/Forms.php';
39 require_once 'include/Sugar_Smarty.php';
40 require_once 'modules/Import/controller.php';
41 require_once 'modules/Import/views/view.step3.php';
42 require_once 'modules/Import/views/view.step4.php';
43 require_once 'modules/Import/Importer.php';
45 class ImportFormsTest extends Sugar_PHPUnit_Framework_OutputTestCase
47 public function setUp()
50 require('include/modules.php');
51 $GLOBALS['beanList'] = $beanList;
52 $GLOBALS['beanFiles'] = $beanFiles;
53 $mod_strings = array();
54 require('modules/Import/language/en_us.lang.php');
55 $GLOBALS['mod_strings'] = $mod_strings;
56 $_SESSION['developerMode'] = true;
57 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
60 public function tearDown()
62 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
63 unset($GLOBALS['current_user']);
64 unset($_SESSION['developerMode']);
65 unset($GLOBALS['beanFiles']);
66 unset($GLOBALS['beanList']);
67 unset($GLOBALS['mod_strings']);
70 public function testLoadImportBean()
72 $oldisadmin = $GLOBALS['current_user']->is_admin;
73 $GLOBALS['current_user']->is_admin = '1';
75 $controller = new ImportController;
76 $_REQUEST['import_module'] = 'Accounts';
77 $controller->loadBean();
79 $this->assertEquals($controller->bean->object_name, 'Account');
81 $GLOBALS['current_user']->is_admin = $oldisadmin;
84 public function testLoadImportBeanNotImportable()
86 $controller = new ImportController;
87 $_REQUEST['import_module'] = 'vCals';
88 $controller->loadBean();
90 $this->assertFalse($controller->bean);
93 public function testLoadImportBeanUserNotAdmin()
95 $controller = new ImportController;
96 $_REQUEST['import_module'] = 'Users';
97 $controller->loadBean();
99 $this->assertFalse($controller->bean);
102 public function errorSet()
105 array(E_USER_WARNING,'sample E_USER_WARNING','test12.php',4),
106 array(E_WARNING,'sample E_WARNING','test4.php',2232),
107 array(E_USER_NOTICE,'sample E_USER_NOTICE','test8.php',932),
108 array(E_NOTICE,'sample E_NOTICE','12test.php',39),
109 array(E_STRICT,'sample E_STRICT','t12est.php',42),
110 array(12121212121,'sample unknown error','te43st.php',334),
115 * @dataProvider errorSet
117 public function testHandleImportErrors($errno, $errstr, $errfile, $errline)
119 $old_error_reporting = error_reporting(E_ALL);
121 Importer::handleImportErrors($errno, $errstr, $errfile, $errline);
126 //$this->assertEquals("WARNING: [$errno] $errstr on line $errline in file $errfile<br />",$output);
130 //$this->assertEquals("NOTICE: [$errno] $errstr on line $errline in file $errfile<br />",$output);
133 //$this->assertEquals('',$output);
136 $this->expectOutputString("Unknown error type: [$errno] $errstr on line $errline in file $errfile<br />\n");
139 error_reporting($old_error_reporting);
142 public function testGetControlIdField()
144 $html = getControl('Contacts','assigned_user_id');
146 $this->assertRegExp('/name=\'assigned_user_id\'/',$html);
147 $this->assertRegExp('/id=\'assigned_user_id\'/',$html);
148 $this->assertRegExp('/type=\'text\'/',$html);
151 public function testGetControlEmail()
153 $html = getControl('Contacts','email1');
155 $this->assertRegExp('/name=\'email1\'/',$html);
156 $this->assertRegExp('/id=\'email1\'/',$html);
157 $this->assertRegExp('/type=\'text\'/',$html);
160 public function testGetControlCurrencyList()
164 $html = getControl('Opportunities','currency_id');
166 $focus = loadBean('Opportunities');
168 require_once('modules/Opportunities/Opportunity.php');
170 $string = str_ireplace('</select>','<option value="">'.$app_strings['LBL_NONE'].'</option></select>',getCurrencyDropDown($focus, 'currency_id', '', 'EditView'));
171 $this->assertContains($string,$html,"Failed to find string '$string' in '$html'");
173 $string = "<script>function CurrencyConvertAll() { return; }</script>";
174 $this->assertContains($string,$html,"Failed to find string '$string' in '$html'");
177 public function testGetControlVardef()
179 VardefManager::loadVardef(
182 $vardef = $GLOBALS['dictionary']['Contact']['fields']['assigned_user_id'];
184 $html = getControl('Contacts','assigned_user_id',$vardef);
186 $this->assertRegExp('/name=\'assigned_user_id\'/',$html);
187 $this->assertRegExp('/id=\'assigned_user_id\'/',$html);
188 $this->assertRegExp('/type=\'text\'/',$html);
191 public function testGetControlValue()
193 $html = getControl('Contacts','email1',null,'poo');
195 $this->assertRegExp('/name=\'email1\'/',$html);
196 $this->assertRegExp('/id=\'email1\'/',$html);
197 $this->assertRegExp('/type=\'text\'/',$html);
198 $this->assertRegExp('/value=\'poo\'/',$html);
204 public function testGetControlDatetimecombo()
206 $html = getControl('Calls','date_start');
209 $string = '", "' . $timedate->get_user_time_format() . '", "';
211 $this->assertContains($string, $html);