]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/Dashlets/DashletLoadLanguageTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / include / Dashlets / DashletLoadLanguageTest.php
1 <?php
2 require_once 'include/Dashlets/Dashlet.php';
3
4 class DashletLoadLanguageTest extends Sugar_PHPUnit_Framework_TestCase
5 {
6     private $_moduleName;
7     
8     public function setup()
9     {
10         $GLOBALS['dashletStrings'] = array();
11         $this->_moduleName = 'TestModuleForDashletLoadLanguageTest'.mt_rand();
12     }
13     
14     public function tearDown()
15     {
16         if ( is_dir("modules/{$this->_moduleName}") )
17             rmdir_recursive("modules/{$this->_moduleName}");
18         if ( is_dir("custom/modules/{$this->_moduleName}") )
19             rmdir_recursive("custom/modules/{$this->_moduleName}");
20         
21         unset($GLOBALS['dashletStrings']);
22         $GLOBALS['current_language'] = $GLOBALS['sugar_config']['default_language'];
23     }
24     
25     public function testCanLoadCurrentLanguageAppStrings() 
26     {
27         $GLOBALS['current_language'] = 'en_us';
28         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
29         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
30             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "bar"; ?>');
31         
32         $dashlet = new Dashlet(0);
33         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
34         
35         $this->assertEquals("bar",$dashlet->dashletStrings["foo"]);
36     }
37     
38     public function testCanLoadCustomLanguageAppStrings() 
39     {
40         $GLOBALS['current_language'] = 'en_us';
41         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
42         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
43             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "bar"; ?>');
44         create_custom_directory("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/");
45         sugar_file_put_contents("custom/modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
46             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "barbar"; ?>');
47         
48         $dashlet = new Dashlet(0);
49         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
50         
51         $this->assertEquals("barbar",$dashlet->dashletStrings["foo"]);
52     }
53     
54     public function testCanLoadCustomLanguageAppStringsWhenThereIsNoNoncustomLanguageFile() 
55     {
56         $GLOBALS['current_language'] = 'en_us';
57         create_custom_directory("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/");
58         sugar_file_put_contents("custom/modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
59             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "barbar"; ?>');
60         
61         $dashlet = new Dashlet(0);
62         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
63         
64         $this->assertEquals("barbar",$dashlet->dashletStrings["foo"]);
65     }
66     
67     public function testCanLoadCurrentLanguageAppStringsWhenNotEnglish() 
68     {
69         $GLOBALS['current_language'] = 'FR_fr';
70         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
71         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
72             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "bar"; ?>');
73         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
74         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.FR_fr.lang.php",
75             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "barrie"; ?>');
76         
77         $dashlet = new Dashlet(0);
78         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
79         
80         $this->assertEquals("barrie",$dashlet->dashletStrings["foo"]);
81     }
82     
83     public function testCanLoadEnglishLanguageAppStringsWhenCurrentLanguageDoesNotExist() 
84     {
85         $GLOBALS['current_language'] = 'FR_fr';
86         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
87         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
88             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "bar"; ?>');
89         
90         $dashlet = new Dashlet(0);
91         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
92         
93         $this->assertEquals("bar",$dashlet->dashletStrings["foo"]);
94     }
95     
96     public function testCanLoadCustomEnglishLanguageAppStringsWhenCurrentLanguageDoesNotExist() 
97     {
98         $GLOBALS['current_language'] = 'FR_fr';
99         sugar_mkdir("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/",null,true);
100         sugar_file_put_contents("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
101             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "bar"; ?>');
102         create_custom_directory("modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/");
103         sugar_file_put_contents("custom/modules/{$this->_moduleName}/Dashlets/TestModuleDashlet/TestModuleDashlet.en_us.lang.php",
104             '<?php $dashletStrings["TestModuleDashlet"]["foo"] = "barbarbar"; ?>');
105         
106         $dashlet = new Dashlet(0);
107         $dashlet->loadLanguage('TestModuleDashlet',"modules/{$this->_moduleName}/Dashlets/");
108         
109         $this->assertEquals("barbarbar",$dashlet->dashletStrings["foo"]);
110     }
111 }