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('include/SugarFields/Fields/Relate/SugarFieldRelate.php');
40 class SugarFieldRelateTest extends Sugar_PHPUnit_Framework_TestCase
42 public function setUp()
44 $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
47 public function tearDown()
49 SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
50 unset($GLOBALS['current_user']);
53 public function testFormatContactNameWithFirstName()
55 $GLOBALS['current_user']->setPreference('default_locale_name_format','l f');
57 $vardef = array('name' => 'contact_name');
58 $value = 'John Mertic';
60 $sfr = new SugarFieldRelate('relate');
63 $sfr->formatField($value,$vardef),
71 public function testFormatContactNameWithoutFirstName()
73 $GLOBALS['current_user']->setPreference('default_locale_name_format','l f');
75 $vardef = array('name' => 'contact_name');
78 $sfr = new SugarFieldRelate('relate');
81 trim($sfr->formatField($value,$vardef)),
89 public function testFormatContactNameThatIsEmpty()
91 $GLOBALS['current_user']->setPreference('default_locale_name_format','l f');
93 $vardef = array('name' => 'contact_name');
96 $sfr = new SugarFieldRelate('relate');
99 trim($sfr->formatField($value,$vardef)),
104 public function testFormatOtherField()
106 $GLOBALS['current_user']->setPreference('default_locale_name_format','l f');
108 $vardef = array('name' => 'account_name');
109 $value = 'John Mertic';
111 $sfr = new SugarFieldRelate('relate');
114 $sfr->formatField($value,$vardef),
122 public function testGetSearchViewSmarty(){
124 'name' => 'assigned_user_id',
125 'rname' => 'user_name',
126 'id_name' => 'assigned_user_id',
127 'vname' => 'LBL_ASSIGNED_TO_ID',
128 'group'=>'assigned_user_name',
136 'comment' => 'User ID assigned to record',
137 'duplicate_merge'=>'disabled'
139 $displayParams = array();
140 $sfr = new SugarFieldRelate('relate');
141 $output = $sfr->getSearchViewSmarty(array(), $vardef, $displayParams, 0);
142 $this->assertContains('name="{$Array.assigned_user_id', $output, 'Testing that the name property is in the form for thr assigned_user_id field');
145 'name' => 'account_name',
147 'id_name' => 'account_id',
148 'vname' => 'LBL_ACCOUNT_NAME',
150 'table' => 'accounts',
151 'join_name'=>'accounts',
153 'module' => 'Accounts',
154 'dbType' => 'varchar',
158 'unified_search' => true,
160 'importable' => 'required',
163 $displayParams = array();
164 $sfr = new SugarFieldRelate('relate');
165 $output = $sfr->getSearchViewSmarty(array(), $vardef, $displayParams, 0);
166 $this->assertNotContains('name="{$Array.account_id', $output, 'Testing that the name property for account_id is not in the form.');