]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/MVC/SugarApplicationTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / include / MVC / SugarApplicationTest.php
1 <?php
2 require_once 'include/MVC/SugarApplication.php';
3
4 class SugarApplicationTest extends Sugar_PHPUnit_Framework_TestCase
5 {
6     private $_app;
7     
8     public function setUp()
9     {
10         $startTime = microtime();
11         $system_config = new Administration();
12         $system_config->retrieveSettings();
13         $GLOBALS['system_config'] = $system_config;
14         $this->_app = new SugarApplication();
15         if ( isset($_SESSION['authenticated_user_theme']) )
16             unset($_SESSION['authenticated_user_theme']);
17     }
18     
19     private function _loadUser()
20     {
21         $GLOBALS['current_user'] = SugarTestUserUtilities::createAnonymousUser();
22         $_SESSION[$GLOBALS['current_user']->user_name.'_PREFERENCES']['global']['gridline'] = 'on';
23     }
24     
25     private function _removeUser() 
26     {
27         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
28         unset($GLOBALS['current_user']);
29     }
30     
31     public function tearDown()
32     {
33         unset($GLOBALS['current_user']);
34         unset($GLOBALS['moduleList']);
35         unset($GLOBALS['modInvisListActivities']);
36         unset($GLOBALS['request_string']);
37         unset($GLOBALS['adminOnlyList']);
38         unset($GLOBALS['modListHeader']);
39         unset($GLOBALS['modInvisList']);
40         unset($GLOBALS['app_strings']);
41         unset($GLOBALS['system_config']);
42         unset($GLOBALS['app_list_strings']);
43         unset($GLOBALS['mod_strings']);
44         unset($GLOBALS['theme']);
45         unset($GLOBALS['image_path']);
46         unset($GLOBALS['starttTime']);
47         unset($GLOBALS['sugar_version']);
48         unset($GLOBALS['sugar_flavor']);
49         $GLOBALS['current_language'] = $GLOBALS['sugar_config']['default_language'];
50     }
51     
52     public function testSetupPrint()
53     {
54         $_GET['foo'] = 'bar';
55         $_POST['dog'] = 'cat';
56         $this->_app->setupPrint();
57         $this->assertEquals($GLOBALS['request_string'],
58             'foo=bar&dog=cat&print=true'
59         );
60     }
61     
62     public function testLoadDisplaySettingsDefault()
63     {
64         $this->_loadUser();
65         
66         $this->_app->loadDisplaySettings();
67         
68         $this->assertEquals($GLOBALS['theme'],
69             $GLOBALS['sugar_config']['default_theme']);
70         
71         $this->_removeUser();
72     }
73     
74     public function testLoadDisplaySettingsAuthUserTheme()
75     {
76         $this->_loadUser();
77         
78         $_SESSION['authenticated_user_theme'] = 'Sugar';
79         
80         $this->_app->loadDisplaySettings();
81         
82         $this->assertEquals($GLOBALS['theme'],
83             $_SESSION['authenticated_user_theme']);
84         
85         $this->_removeUser();
86     }
87     
88     public function testLoadDisplaySettingsUserTheme()
89     {
90         $this->_loadUser();
91         
92         $_REQUEST['usertheme'] = 'Sugar5';
93         
94         $this->_app->loadDisplaySettings();
95         
96         $this->assertEquals($GLOBALS['theme'],
97             $_REQUEST['usertheme']);
98         
99         $this->_removeUser();
100     }
101     
102     public function testLoadGlobals()
103     {
104         $this->_app->controller = 
105             ControllerFactory::getController($this->_app->default_module);
106         $this->_app->loadGlobals();
107         
108         $this->assertEquals($GLOBALS['currentModule'],$this->_app->default_module);
109         $this->assertEquals($_REQUEST['module'],$this->_app->default_module);
110         $this->assertEquals($_REQUEST['action'],$this->_app->default_action);
111     }
112     
113     /**
114      * @group bug33283
115      */
116     public function testCheckDatabaseVersion()
117     {
118         if ( isset($GLOBALS['sugar_db_version']) )
119             $old_sugar_db_version = $GLOBALS['sugar_db_version'];
120         if ( isset($GLOBALS['sugar_version']) )
121             $old_sugar_version = $GLOBALS['sugar_version'];
122         include 'sugar_version.php';
123         $GLOBALS['sugar_version'] = $sugar_version;
124         
125         // first test a valid value
126         $GLOBALS['sugar_db_version'] = $sugar_db_version;
127         $this->assertTrue($this->_app->checkDatabaseVersion(false));
128         
129         $GLOBALS['sugar_db_version'] = '1.1.1';
130         // then test to see if we pull against the cache the valid value
131         $this->assertTrue($this->_app->checkDatabaseVersion(false));
132         
133         // now retest to be sure we actually do the check again
134         sugar_cache_put('checkDatabaseVersion_row_count', 0);
135         $this->assertFalse($this->_app->checkDatabaseVersion(false));
136         
137         if ( isset($old_sugar_db_version) )
138             $GLOBALS['sugar_db_version'] = $old_sugar_db_version;
139         if ( isset($old_sugar_version) )
140             $GLOBALS['sugar_version'] = $old_sugar_version;
141     }
142 }