]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Import/views/Bug48496Test.php
Release 6.4.1
[Github/sugarcrm.git] / tests / modules / Import / views / Bug48496Test.php
1 <?php
2
3 /*********************************************************************************
4  * SugarCRM Community Edition is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38
39 require_once('include/ListView/ListViewFacade.php');
40 require_once('modules/Import/views/view.last.php');
41
42 class Bug48496Test extends Sugar_PHPUnit_Framework_OutputTestCase
43 {
44     var $backup_config;
45
46     public function setUp()
47     {
48         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
49         $GLOBALS['app_strings'] = return_application_language($GLOBALS['current_language']);
50         $GLOBALS['module']='Imports';
51         $_REQUEST['module']='Imports';
52         $_REQUEST['import_module']='Accounts';
53         $_REQUEST['action']='last';
54         $_REQUEST['type']='';
55         $_REQUEST['has_header'] = 'off';
56         sugar_touch('upload/import/status_'.$GLOBALS['current_user']->id.'.csv');
57     }
58
59     public function tearDown()
60     {
61         unlink('upload/import/status_'.$GLOBALS['current_user']->id.'.csv');
62         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
63         unset($GLOBALS['current_user']);
64         unset($GLOBALS['app_strings']);
65         unset($GLOBALS['module']);
66         unset($_REQUEST['module']);
67         unset($_REQUEST['import_module']);
68         unset($_REQUEST['action']);
69         unset($_REQUEST['type']);
70         unset($_REQUEST['has_header']);
71     }
72
73     public function testQueryDoesNotContainDuplicateUsersLastImportClauses() {
74         global $current_user;
75
76         $params = array(
77             'custom_from' => ', users_last_import',
78             'custom_where' => " AND users_last_import.assigned_user_id = '{$current_user->id}'
79                 AND users_last_import.bean_type = 'Account'
80                 AND users_last_import.bean_id = accounts.id
81                 AND users_last_import.deleted = 0
82                 AND accounts.deleted = 0",
83         );
84
85         $seed = SugarModule::get('Accounts')->loadBean();
86
87         $lvfMock = $this->getMock('ListViewFacade', array('setup', 'display', 'build'), array($seed, 'Accounts'));
88
89         $lvfMock->expects($this->any())
90             ->method('setup')
91             ->with($this->anything(),
92             '',
93             $params,
94             $this->anything(),
95             $this->anything(),
96             $this->anything(),
97             $this->anything(),
98             $this->anything(),
99             $this->anything(),
100             $this->anything());
101
102         $viewLast = new ImportViewLastWrap();
103         $viewLast->init($seed);
104         $viewLast->lvf = $lvfMock;
105
106         $viewLast->publicGetListViewResults();
107     }
108
109 }
110
111 class ImportViewLastWrap extends ImportViewLast {
112     public function publicGetListViewResults() {
113         return $this->getListViewResults();
114     }
115 }
116
117 ?>
118