]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Users/UserTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / Users / UserTest.php
1 <?php
2 require_once 'modules/Users/User.php';
3
4 class UserTest extends Sugar_PHPUnit_Framework_TestCase
5 {
6         protected $_user = null;
7
8         public function setUp() 
9     {
10         $this->_user = SugarTestUserUtilities::createAnonymousUser();
11         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
12         }
13         
14         public function tearDown()
15         {
16             unset($GLOBALS['current_user']);
17         }
18
19         public function testSettingAUserPreference() 
20     {
21         $this->_user->setPreference('test_pref','dog');
22
23         $this->assertEquals('dog',$this->_user->getPreference('test_pref'));
24     }
25     
26     public function testGettingSystemPreferenceWhenNoUserPreferenceExists()
27     {
28         $GLOBALS['sugar_config']['somewhackypreference'] = 'somewhackyvalue';
29         
30         $result = $this->_user->getPreference('somewhackypreference');
31         
32         unset($GLOBALS['sugar_config']['somewhackypreference']);
33         
34         $this->assertEquals('somewhackyvalue',$result);
35     }
36     
37     /**
38      * @ticket 42667
39      */
40     public function testGettingSystemPreferenceWhenNoUserPreferenceExistsForEmailDefaultClient()
41     {
42         if ( isset($GLOBALS['sugar_config']['email_default_client']) ) {
43             $oldvalue = $GLOBALS['sugar_config']['email_default_client'];
44         }
45         $GLOBALS['sugar_config']['email_default_client'] = 'somewhackyvalue';
46         
47         $result = $this->_user->getPreference('email_link_type');
48         
49         if ( isset($oldvalue) ) {
50             $GLOBALS['sugar_config']['email_default_client'] = $oldvalue;
51         }
52         else {
53             unset($GLOBALS['sugar_config']['email_default_client']);
54         }
55         
56         $this->assertEquals('somewhackyvalue',$result);
57     }
58     
59     public function testResetingUserPreferences()
60     {
61         $this->_user->setPreference('test_pref','dog');
62
63         $this->_user->resetPreferences();
64         
65         $this->assertNull($this->_user->getPreference('test_pref'));
66     }
67     
68     /**
69      * @group bug36657
70      */
71     public function testCertainPrefsAreNotResetWhenResetingUserPreferences()
72     {
73         $this->_user->setPreference('ut','1');
74         $this->_user->setPreference('timezone','GMT');
75
76         $this->_user->resetPreferences();
77         
78         $this->assertEquals('1',$this->_user->getPreference('ut'));
79         $this->assertEquals('GMT',$this->_user->getPreference('timezone'));
80     }
81
82     public function testDeprecatedUserPreferenceInterface()
83     {
84         User::setPreference('deprecated_pref','dog',0,'global',$this->_user);
85         
86         $this->assertEquals('dog',User::getPreference('deprecated_pref','global',$this->_user));
87     }
88     
89     public function testSavingToMultipleUserPreferenceCategories()
90     {
91         $this->_user->setPreference('test_pref1','dog',0,'cat1');
92         $this->_user->setPreference('test_pref2','dog',0,'cat2');
93         
94         $this->_user->savePreferencesToDB();
95         
96         $this->assertEquals(
97             'cat1',
98             $GLOBALS['db']->getOne("SELECT category FROM user_preferences WHERE assigned_user_id = '{$this->_user->id}' AND category = 'cat1'")
99             );
100         
101         $this->assertEquals(
102             'cat2',
103             $GLOBALS['db']->getOne("SELECT category FROM user_preferences WHERE assigned_user_id = '{$this->_user->id}' AND category = 'cat2'")
104             );
105     }
106 }
107