PageRenderTime 44ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/modules/Users/Bug47156Test.php

https://bitbucket.org/cviolette/sugarcrm
PHP | 101 lines | 48 code | 11 blank | 42 comment | 2 complexity | 8673162e8ddd823de1b468a0281fa45d MD5 | raw file
Possible License(s): LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
  1. <?php
  2. /*********************************************************************************
  3. * SugarCRM Community Edition is a customer relationship management program developed by
  4. * SugarCRM, Inc. Copyright (C) 2004-2012 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. require_once('modules/Users/User.php');
  37. /**
  38. * Bug #47156
  39. * Reassigning Users With Instance That Has Numeric Ids
  40. * @ticket 47156
  41. */
  42. class Bug47156Test extends Sugar_PHPUnit_Framework_TestCase
  43. {
  44. private $user1;
  45. private $user2;
  46. private function createUser($id = '', $status = '')
  47. {
  48. $time = mt_rand();
  49. $userId = 'SugarUser';
  50. $user = new User();
  51. $user->user_name = $userId . $time;
  52. $user->user_hash = md5($userId.$time);
  53. $user->first_name = $userId;
  54. $user->last_name = $time;
  55. if (!empty($status))
  56. {
  57. $user->status=$status;
  58. }
  59. else
  60. {
  61. $user->status='Active';
  62. }
  63. $user->default_team = '1'; //Set Default Team to Global
  64. if(!empty($id))
  65. {
  66. $user->new_with_id = true;
  67. $user->id = $id;
  68. }
  69. $user->save();
  70. $user->fill_in_additional_detail_fields();
  71. return $user;
  72. }
  73. /**
  74. * @group 47156
  75. */
  76. public function testCorrectUserListOutput()
  77. {
  78. $this->user1 = $this->createUser(11, 'Active');
  79. $this->user2 = $this->createUser(12, 'Inactive');
  80. $allUsers = User::getAllUsers();
  81. $this->assertArrayHasKey($this->user1->id, $allUsers);
  82. $this->assertArrayHasKey($this->user2->id, $allUsers);
  83. $dbManager = $GLOBALS['db'];
  84. $dbManager->query('DELETE FROM users WHERE id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
  85. $dbManager->query('DELETE FROM user_preferences WHERE assigned_user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
  86. $dbManager->query('DELETE FROM teams WHERE associated_user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
  87. $dbManager->query('DELETE FROM team_memberships WHERE user_id IN (' . $dbManager->quoted($this->user1->id) . ', ' . $dbManager->quoted($this->user2->id) . ')');
  88. }
  89. }
  90. ?>