]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Users/Bug47156Test.php
Release 6.4.3
[Github/sugarcrm.git] / tests / modules / Users / Bug47156Test.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('modules/Users/User.php');
40 /**
41  * Bug #47156
42  * Reassigning Users With Instance That Has Numeric Ids
43  * @ticket 47156
44  */
45 class Bug47156Test extends Sugar_PHPUnit_Framework_TestCase
46 {
47     private $user1;
48     private $user2;
49
50     private function createUser($id = '', $status = '')
51     {
52         $time = mt_rand();
53         $userId = 'SugarUser';
54         $user = new User();
55         $user->user_name = $userId . $time;
56         $user->user_hash = md5($userId.$time);
57         $user->first_name = $userId;
58         $user->last_name = $time;
59         if (!empty($status))
60         {
61             $user->status=$status;
62         }
63         else
64         {
65             $user->status='Active';
66         }
67         
68         $user->default_team = '1'; //Set Default Team to Global
69         if(!empty($id))
70         {
71             $user->new_with_id = true;
72             $user->id = $id;
73         }
74
75         $user->save();
76         $user->fill_in_additional_detail_fields();
77         
78         return $user;
79     }
80     
81     /**
82      * @group 47156
83      */
84     public function testCorrectUserListOutput()
85     {
86         $this->user1 = $this->createUser(11, 'Active');
87         $this->user2 = $this->createUser(12, 'Inactive');
88         
89         $allUsers = User::getAllUsers(); 
90         
91         $this->assertArrayHasKey($this->user1->id, $allUsers);
92         $this->assertArrayHasKey($this->user2->id, $allUsers);
93         
94         $dbManager = $GLOBALS['db'];
95         $dbManager->query('DELETE FROM users WHERE id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
96         $dbManager->query('DELETE FROM user_preferences WHERE assigned_user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
97         $dbManager->query('DELETE FROM teams WHERE associated_user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
98         $dbManager->query('DELETE FROM team_memberships WHERE user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
99     }
100 }
101 ?>