]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/SugarTestThemeUtilities.php
Added unit tests.
[Github/sugarcrm.git] / tests / SugarTestThemeUtilities.php
1 <?php
2
3 require_once 'include/SugarTheme/SugarTheme.php';
4 require_once 'include/dir_inc.php';
5
6 class SugarTestThemeUtilities
7 {
8     private static  $_createdThemes = array();
9
10     private function __construct() {}
11
12     public static function createAnonymousTheme() 
13     {
14         $themename = 'TestTheme'.mt_rand();
15         
16         sugar_mkdir("themes/$themename/images",null,true);
17         sugar_mkdir("themes/$themename/css",null,true);
18         sugar_mkdir("themes/$themename/js",null,true);
19         sugar_mkdir("themes/$themename/tpls",null,true);
20         
21         sugar_file_put_contents("themes/$themename/css/style.css","h2 { display: inline; }");
22         sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
23         sugar_file_put_contents("themes/$themename/js/style.js",'var dog = "cat";');
24         sugar_touch("themes/$themename/images/Accounts.gif");
25         sugar_touch("themes/$themename/images/fonts.big.icon.gif");
26         sugar_touch("themes/$themename/tpls/header.tpl");
27         
28         $themedef = "<?php\n";
29         $themedef .= "\$themedef = array(\n";
30         $themedef .= "'name'  => '$themename',";
31         $themedef .= "'dirName'  => '$themename',";
32         $themedef .= "'description' => '$themename',";
33         $themedef .= "'version' => array('regex_matches' => array('.*')),";
34         $themedef .= ");";
35         sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
36         
37         self::$_createdThemes[] = $themename;
38         
39         SugarThemeRegistry::buildRegistry();        
40         
41         return $themename;
42     }
43     
44     public static function createAnonymousOldTheme() 
45     {
46         $themename = 'TestTheme'.mt_rand();
47         
48         sugar_mkdir("themes/$themename/images",null,true);
49         sugar_mkdir("themes/$themename/css",null,true);
50         sugar_mkdir("themes/$themename/js",null,true);
51         sugar_mkdir("themes/$themename/tpls",null,true);
52         
53         sugar_file_put_contents("themes/$themename/css/style.css","h2 { display: inline; }");
54         sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
55         sugar_file_put_contents("themes/$themename/js/style.js",'var dog = "cat";');
56         sugar_touch("themes/$themename/images/Accounts.gif");
57         sugar_touch("themes/$themename/images/fonts.big.icon.gif");
58         sugar_touch("themes/$themename/tpls/header.tpl");
59         
60         $themedef = "<?php\n";
61         $themedef .= "\$themedef = array(\n";
62         $themedef .= "'name'  => '$themename',";
63         $themedef .= "'dirName'  => '$themename',";
64         $themedef .= "'description' => '$themename',";
65         $themedef .= "'version' => array('regex_matches' => array('5.5.1')),";
66         $themedef .= ");";
67         sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
68         
69         self::$_createdThemes[] = $themename;
70         
71         SugarThemeRegistry::buildRegistry();        
72         
73         return $themename;
74     }
75     
76     public static function createAnonymousCustomTheme(
77         $themename = ''
78         )
79     {
80         if ( empty($themename) )
81             $themename = 'TestThemeCustom'.mt_rand();
82         
83         create_custom_directory("themes/$themename/images/");
84         create_custom_directory("themes/$themename/css/");
85         create_custom_directory("themes/$themename/js/");
86         
87         sugar_touch("custom/themes/$themename/css/style.css");
88         sugar_touch("custom/themes/$themename/js/style.js");
89         sugar_touch("custom/themes/$themename/images/Accounts.gif");
90         sugar_touch("custom/themes/$themename/images/fonts.big.icon.gif");
91         
92         $themedef = "<?php\n";
93         $themedef .= "\$themedef = array(\n";
94         $themedef .= "'name'  => 'custom $themename',";
95         $themedef .= "'dirName'  => '$themename',";
96         $themedef .= "'description' => 'custom $themename',";
97         $themedef .= "'version' => array('regex_matches' => array('.*')),";
98         $themedef .= ");";
99         sugar_file_put_contents("custom/themes/$themename/themedef.php",$themedef);
100         
101         self::$_createdThemes[] = $themename;
102         
103         SugarThemeRegistry::buildRegistry();        
104         
105         return $themename;
106     }
107     
108     public static function createAnonymousChildTheme(
109         $parentTheme
110         )
111     {
112         $themename = 'TestThemeChild'.mt_rand();
113         
114         sugar_mkdir("themes/$themename/images",null,true);
115         sugar_mkdir("themes/$themename/css",null,true);
116         sugar_mkdir("themes/$themename/js",null,true);
117         
118         sugar_file_put_contents("themes/$themename/css/style.css","h3 { display: inline; }");
119         sugar_file_put_contents("themes/$themename/css/yui.css",".yui { display: inline; }");
120         sugar_file_put_contents("themes/$themename/js/style.js",'var bird = "frog";');
121         
122         $themedef = "<?php\n";
123         $themedef .= "\$themedef = array(\n";
124         $themedef .= "'name'  => '$themename',";
125         $themedef .= "'dirName' => '$themename',";
126         $themedef .= "'parentTheme' => '".$parentTheme."',";
127         $themedef .= "'description' => '$themename',";
128         $themedef .= "'version' => array('regex_matches' => array('.*')),";
129         $themedef .= ");";
130         sugar_file_put_contents("themes/$themename/themedef.php",$themedef);
131         
132         self::$_createdThemes[] = $themename;
133         
134         SugarThemeRegistry::buildRegistry();        
135         
136         return $themename;
137     }
138
139     public static function removeAllCreatedAnonymousThemes() 
140     {
141         foreach (self::getCreatedThemeNames() as $name ) {
142             if ( is_dir('themes/'.$name) )
143                 rmdir_recursive('themes/'.$name);
144             if ( is_dir('custom/themes/'.$name) )
145                 rmdir_recursive('custom/themes/'.$name);
146             if ( is_dir('cache/themes/'.$name) )
147                 rmdir_recursive('cache/themes/'.$name);
148         }
149         
150         SugarThemeRegistry::buildRegistry();
151     }
152     
153     public static function getCreatedThemeNames() 
154     {
155         return self::$_createdThemes;
156     }
157 }
158