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 }