Mercurial Hosting > nabble
comparison src/nabble/view/web/template/CompileTest.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children | cc5b7d515580 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:7ecd1a4ef557 |
---|---|
1 package nabble.view.web.template; | |
2 | |
3 import nabble.model.Init; | |
4 import nabble.modules.ModuleManager; | |
5 import nabble.modules.hacks.HacksModule; | |
6 import nabble.modules.workgroup.WorkgroupModule; | |
7 import nabble.naml.compiler.CompileException; | |
8 import nabble.naml.compiler.Module; | |
9 import nabble.naml.compiler.Program; | |
10 import nabble.naml.compiler.Template; | |
11 import nabble.naml.compiler.TemplatePrintWriter; | |
12 import nabble.naml.namespaces.BasicNamespace; | |
13 import nabble.utils.Log4j; | |
14 import org.slf4j.Logger; | |
15 import org.slf4j.LoggerFactory; | |
16 | |
17 import java.util.ArrayList; | |
18 import java.util.Collections; | |
19 import java.util.List; | |
20 | |
21 | |
22 public final class CompileTest { | |
23 private static final Logger logger = LoggerFactory.getLogger(CompileTest.class); | |
24 | |
25 private static final List<Program> keepInMemory = new ArrayList<Program>(); | |
26 | |
27 private static void test0(Program program,String macroName,Class<?>... classes) throws CompileException { | |
28 if( program.getTemplate( macroName, classes ) == null ) | |
29 throw new RuntimeException("macro '"+macroName+"' not found"); | |
30 } | |
31 | |
32 public static void test(Program program,String macroName,Class<?>... classes) throws CompileException { | |
33 Class<?>[] a = new Class<?>[classes.length+2]; | |
34 a[0] = BasicNamespace.class; | |
35 a[1] = NabbleNamespace.class; | |
36 System.arraycopy(classes,0,a,2,classes.length); | |
37 test0(program,macroName,a); | |
38 } | |
39 | |
40 static void compileTopic(Program program) throws CompileException { | |
41 CompileTest.test( program, "topic", ServletNamespace.class ); | |
42 CompileTest.test( program, "classic_blog_topic", ServletNamespace.class ); | |
43 CompileTest.test( program, "list_blog_topic", ServletNamespace.class ); | |
44 CompileTest.test( program, "threaded_blog_topic", ServletNamespace.class ); | |
45 CompileTest.test( program, "classic_forum_topic", ServletNamespace.class ); | |
46 CompileTest.test( program, "list_forum_topic", ServletNamespace.class ); | |
47 CompileTest.test( program, "threaded_forum_topic", ServletNamespace.class ); | |
48 } | |
49 | |
50 static void compileAll(Program program) throws CompileException { | |
51 runCompileAllMacro(program); | |
52 } | |
53 | |
54 static void compileAll() throws CompileException { | |
55 Program program; | |
56 | |
57 program = Program.getInstance(ModuleManager.getGenericModules()); | |
58 compileAll(program); | |
59 | |
60 logger.info("----- Tweak: more_ads -----"); | |
61 testModule("more_ads", new String[] { "topic", "view_standard", "view_topics", "view_mixed", "view_board", "view_category" }); | |
62 | |
63 logger.info("----- Tweak: PPC -----"); | |
64 testModule("ppc", new String[] { "manage_subscribers" }); | |
65 | |
66 logger.info("----- Tweak: Вайнах -----"); | |
67 testModule("banhax", new String[] { "view_news", "view_gallery" }); | |
68 | |
69 logger.info("----- Tweak: PedXing -----"); | |
70 testModule("pedxing", new String[] { "atom_topics_by_popularity", "topic" }); | |
71 | |
72 logger.info("----- Tweak: Jonaspm -----"); | |
73 testModule("jonaspm", new String[] { "view_news" }); | |
74 | |
75 logger.info("----- Tweak: Animeron -----"); | |
76 testModule("animeron", new String[] { "user_profile", "topic" }); | |
77 | |
78 logger.info("----- Tweak: Blackcow -----"); | |
79 testModule("blackcow", HacksModule.INSTANCE, new String[] { "topic" }); | |
80 | |
81 logger.info("----- Languages -----"); | |
82 String[] langMacros = new String[] { "topic", "view_app", "user_nodes", "send bookmark email", "post_by_email_page" }; | |
83 String[] langModules = new String[] { "lang_pt_br", "lang_ch_si", "lang_ch_tr", "lang_fr_fr", "lang_sv", "lang_es", "lang_cs_cz", "lang_ell", "lang_tu", "lang_pl", "lang_rus_ru" }; | |
84 for (String lang : langModules) { | |
85 testModule(lang, langMacros); | |
86 testEmails(lang); | |
87 } | |
88 | |
89 logger.info("----- Social -----"); | |
90 testModule("social_dropdown_links", new String[] { "topic" }); | |
91 testModule("social_google_plus_one", new String[] { "topic" }); | |
92 testModule("social_facebook_like", new String[] { "topic" }); | |
93 testModule("social_tweet", new String[] { "topic" }); | |
94 | |
95 logger.info("----- Content -----"); | |
96 testModule("content_noindex", new String[] { "topic", "view_standard", "view_topics", "view_mixed" }); | |
97 testModule("content_open_links_in_new_window", new String[] { "topic" }); | |
98 testModule("content_smart_cache", new String[] { "view_app" }); | |
99 testModule("content_news_summary", new String[] { "view_app", "view_news" }); | |
100 | |
101 logger.info("----- Email -----"); | |
102 testModule("email_registration_notification", new String[] { "finish_registration_page" }); | |
103 | |
104 logger.info("----- Workgroup -----"); | |
105 testModule("workgroup", new String[] { "view_app", "topic", "new_topic", "reply" }); | |
106 /* | |
107 logger.info("----- Poll -----"); | |
108 testModule("poll", new String[] { "new_topic", "reply", "edit_post", "topic", "change_permissions" }); | |
109 testEmails("poll"); | |
110 */ | |
111 } | |
112 | |
113 private static void testModule(String moduleName, String[] macros) throws CompileException { | |
114 testModule(moduleName, null, macros); | |
115 } | |
116 | |
117 private static void testModule(String moduleName, Module module, String[] macros) throws CompileException { | |
118 List<Module> modules = ModuleManager.getGenericModules(); | |
119 modules.add( ModuleManager.getModule(moduleName) ); | |
120 if (module != null) | |
121 modules.add(module); | |
122 Program program = Program.getInstance(modules); | |
123 for (String macro: macros) { | |
124 if ("topic".equals(macro)) | |
125 compileTopic(program); | |
126 else | |
127 CompileTest.test( program, macro, ServletNamespace.class ); | |
128 } | |
129 } | |
130 | |
131 private static void testEmails(String moduleName) throws CompileException { | |
132 List<Module> modules = ModuleManager.getGenericModules(); | |
133 modules.add( ModuleManager.getModule(moduleName) ); | |
134 Program program = Program.getInstance(modules); | |
135 CompileTest.test( program, "notify_subscribers", NodeNamespace.class ); | |
136 CompileTest.test( program, "digest email", NodeList.class, SubscriptionNamespace.class ); | |
137 } | |
138 | |
139 static void memTest() throws Exception { | |
140 logger.info("memTest"); | |
141 System.in.read(); | |
142 | |
143 Program program; | |
144 | |
145 program = Program.getInstance(ModuleManager.getGenericModules()); | |
146 keepInMemory.add(program); | |
147 compileAll(program); | |
148 | |
149 List<Module> modules = ModuleManager.getGenericModules(); | |
150 | |
151 logger.info("----- Tweak: PPC -----"); | |
152 modules = ModuleManager.getGenericModules(); | |
153 modules.add( ModuleManager.getModule("ppc") ); | |
154 program = Program.getInstance(modules); | |
155 keepInMemory.add(program); | |
156 compileAll(program); | |
157 | |
158 logger.info("----- Tweak: Вайнах -----"); | |
159 modules = ModuleManager.getGenericModules(); | |
160 modules.add( ModuleManager.getModule("banhax") ); | |
161 program = Program.getInstance(modules); | |
162 keepInMemory.add(program); | |
163 compileAll(program); | |
164 | |
165 logger.info("----- Tweak: PedXing -----"); | |
166 modules = ModuleManager.getGenericModules(); | |
167 modules.add( ModuleManager.getModule("pedxing") ); | |
168 program = Program.getInstance(modules); | |
169 keepInMemory.add(program); | |
170 compileAll(program); | |
171 | |
172 logger.info("----- Tweak: Jonaspm -----"); | |
173 modules = ModuleManager.getGenericModules(); | |
174 modules.add( ModuleManager.getModule("jonaspm") ); | |
175 program = Program.getInstance(modules); | |
176 keepInMemory.add(program); | |
177 compileAll(program); | |
178 | |
179 logger.info("----- Tweak: Animeron -----"); | |
180 modules = ModuleManager.getGenericModules(); | |
181 modules.add( ModuleManager.getModule("animeron") ); | |
182 program = Program.getInstance(modules); | |
183 keepInMemory.add(program); | |
184 compileAll(program); | |
185 | |
186 logger.info("----- Tweak: Blackcow -----"); | |
187 modules = ModuleManager.getGenericModules(); | |
188 modules.add(HacksModule.INSTANCE); | |
189 modules.add( ModuleManager.getModule("blackcow") ); | |
190 program = Program.getInstance(modules); | |
191 keepInMemory.add(program); | |
192 compileAll(program); | |
193 | |
194 System.out.println("done"); | |
195 System.in.read(); | |
196 } | |
197 | |
198 static void runCompileAllMacro(Program program) throws CompileException { | |
199 Template template = program.getTemplate( "compile_all", BasicNamespace.class ); | |
200 template.run( TemplatePrintWriter.NULL, Collections.<String,Object>emptyMap(), | |
201 new BasicNamespace(template) | |
202 ); | |
203 } | |
204 | |
205 static void runCompileAllMacro() throws CompileException { | |
206 List<Module> modules = ModuleManager.getGenericModules(); | |
207 Program program = Program.getInstance(modules); | |
208 runCompileAllMacro(program); | |
209 } | |
210 | |
211 static void workgroupTest() throws CompileException { | |
212 List<Module> modules = ModuleManager.getGenericModules(); | |
213 compileAll(Program.getInstance(modules)); | |
214 logger.info("----- workgroup -----"); | |
215 modules.add(WorkgroupModule.INSTANCE); | |
216 compileAll(Program.getInstance(modules)); | |
217 } | |
218 | |
219 public static void main(String[] args) { | |
220 Log4j.initForConsole(); | |
221 Init.nop(); | |
222 try { | |
223 if( args.length==1 && args[0].equals("mem") ) { | |
224 memTest(); | |
225 } else { | |
226 //System.in.read(); | |
227 compileAll(); | |
228 // workgroupTest(); | |
229 // runCompileAllMacro(); | |
230 //System.out.println("done"); | |
231 //System.in.read(); | |
232 } | |
233 } catch(Exception e) { | |
234 e.printStackTrace(); | |
235 } | |
236 System.exit(0); | |
237 } | |
238 | |
239 } |