]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Import/views/Bug48496Test.php
Release 6.5.10
[Github/sugarcrm.git] / tests / modules / Import / views / Bug48496Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2013 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('include/ListView/ListViewFacade.php');
39 require_once('modules/Import/views/view.last.php');
40
41 class Bug48496Test extends Sugar_PHPUnit_Framework_OutputTestCase
42 {
43     var $backup_config;
44
45     public function setUp()
46     {
47         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
48         $GLOBALS['app_strings'] = return_application_language($GLOBALS['current_language']);
49         $GLOBALS['module']='Imports';
50         $_REQUEST['module']='Imports';
51         $_REQUEST['import_module']='Accounts';
52         $_REQUEST['action']='last';
53         $_REQUEST['type']='';
54         $_REQUEST['has_header'] = 'off';
55         sugar_touch('upload/import/status_'.$GLOBALS['current_user']->id.'.csv');
56     }
57
58     public function tearDown()
59     {
60         unlink('upload/import/status_'.$GLOBALS['current_user']->id.'.csv');
61         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
62         unset($GLOBALS['current_user']);
63         unset($GLOBALS['app_strings']);
64         unset($GLOBALS['module']);
65         unset($_REQUEST['module']);
66         unset($_REQUEST['import_module']);
67         unset($_REQUEST['action']);
68         unset($_REQUEST['type']);
69         unset($_REQUEST['has_header']);
70     }
71
72     public function testQueryDoesNotContainDuplicateUsersLastImportClauses() {
73         global $current_user;
74
75         $params = array(
76             'custom_from' => ', users_last_import',
77             'custom_where' => " AND users_last_import.assigned_user_id = '{$current_user->id}'
78                 AND users_last_import.bean_type = 'Account'
79                 AND users_last_import.bean_id = accounts.id
80                 AND users_last_import.deleted = 0
81                 AND accounts.deleted = 0",
82         );
83
84         $seed = SugarModule::get('Accounts')->loadBean();
85
86         $lvfMock = $this->getMock('ListViewFacade', array('setup', 'display', 'build'), array($seed, 'Accounts'));
87
88         $lvfMock->expects($this->any())
89             ->method('setup')
90             ->with($this->anything(),
91             '',
92             $params,
93             $this->anything(),
94             $this->anything(),
95             $this->anything(),
96             $this->anything(),
97             $this->anything(),
98             $this->anything(),
99             $this->anything());
100
101         $viewLast = new ImportViewLastWrap();
102         $viewLast->init($seed);
103         $viewLast->lvf = $lvfMock;
104
105         $viewLast->publicGetListViewResults();
106     }
107
108 }
109
110 class ImportViewLastWrap extends ImportViewLast {
111     public function publicGetListViewResults() {
112         return $this->getListViewResults();
113     }
114 }