]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Trackers/TrackerCreateDefaultUserTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / Trackers / TrackerCreateDefaultUserTest.php
1 <?php
2
3 require_once('tests/modules/Trackers/TrackerTestUtility.php');
4
5 class TrackerCreateDefaultUserTest extends Sugar_PHPUnit_Framework_TestCase {
6
7         var $skipTest = true;
8         var $nonAdminUser;
9         var $nonAdminUserId;
10         var $adminUser;
11         var $adminUserId;
12     
13     function setUp() {
14         if($this->skipTest) {
15            $this->markTestSkipped("Skipping unless otherwise specified");
16         }
17         
18                 $user = new User();
19                 $user->retrieve('1');
20                 $GLOBALS['current_user'] = $user;       
21         
22         TrackerTestUtility::setUp(); 
23         $_SESSION['reports_getACLAllowedModules'] = null;
24         $this->nonAdminUser = new User();
25         $this->nonAdminUser->first_name = 'non';
26         $this->nonAdminUser->last_name = 'admin';
27         $this->nonAdminUser->user_name = 'nonadmin';
28         $this->nonAdminUserId = $this->nonAdminUser->save();    
29         
30         $this->adminUser = new User();
31         $this->adminUser->is_admin = true;
32         $this->adminUser->first_name = 'admin';
33         $this->adminUser->last_name = 'test';
34         $this->adminUser->user_name = 'admintest';
35         $this->adminUserId = $this->adminUser->save();
36         
37         global $beanFiles, $beanList, $moduleList, $modListHeader, $sugar_config;
38         require('config.php');
39         require('include/modules.php');
40         $modListHeader = $moduleList;
41     }
42     
43     function tearDown() {
44         TrackerTestUtility::tearDown(); 
45         $GLOBALS['db']->query("DELETE FROM users WHERE id IN ('{$this->adminUser->id}', '{$this->nonAdminUser->id}')");         
46         $GLOBALS['db']->query("DELETE FROM team_memberships WHERE user_id IN ('{$this->adminUser->id}', '{$this->nonAdminUser->id}')");
47         $GLOBALS['db']->query("DELETE FROM acl_roles_users WHERE user_id IN ('{$this->adminUser->id}', '{$this->nonAdminUser->id}')");;  
48
49                 $user = new User();
50                 $user->retrieve('1');
51                 $GLOBALS['current_user'] = $user;    
52     }
53    
54     function test_disabled_create_non_admin_user() {
55         global $current_user;
56         $current_user = $this->nonAdminUser;
57         require_once('modules/Reports/SavedReport.php');
58         $allowedModules = getACLAllowedModules();
59         $this->assertTrue(empty($allowedModules['Trackers']));
60         $this->assertTrue(empty($allowedModules['TrackerSessions']));
61         $this->assertTrue(empty($allowedModules['TrackerPerfs']));
62         $this->assertTrue(empty($allowedModules['TrackerQueries']));        
63     }
64     
65     function test_disabled_create_admin_user() {
66         global $current_user;
67         $current_user = $this->adminUser;
68         
69         require_once('modules/Reports/SavedReport.php');
70         $allowedModules = getACLAllowedModules();
71         $this->assertTrue(!empty($allowedModules['Trackers']));
72         $this->assertTrue(!empty($allowedModules['TrackerSessions']));
73         $this->assertTrue(!empty($allowedModules['TrackerPerfs']));
74         $this->assertTrue(!empty($allowedModules['TrackerQueries']));        
75     }    
76     
77     
78     function test_disabled_non_admin_user_given_tracker_role() {
79         global $current_user;
80         $current_user = $this->nonAdminUser;
81                 $result = $GLOBALS['db']->query("SELECT id FROM acl_roles where name='Tracker'");
82                 $trackerRoleId = $GLOBALS['db']->fetchByAssoc($result);
83                 if(!empty($trackerRoleId['id'])) {
84                    require_once('modules/ACLRoles/ACLRole.php');
85                    $role1= new ACLRole();
86                    $role1->retrieve($trackerRoleId['id']);
87                    $role1->set_relationship('acl_roles_users', array('role_id'=>$role1->id ,'user_id'=>$this->nonAdminUserId), false);
88                 }
89
90         require_once('modules/Reports/SavedReport.php');
91         $allowedModules = getACLAllowedModules();
92         $this->assertTrue(!empty($allowedModules['Trackers']));
93         $this->assertTrue(!empty($allowedModules['TrackerSessions']));
94         $this->assertTrue(!empty($allowedModules['TrackerPerfs']));
95         $this->assertTrue(!empty($allowedModules['TrackerQueries']));           
96     }
97     
98 }
99         
100 ?>