Mercurial Hosting > nabble
view src/nabble/view/web/template/CompileTest.java @ 47:72765b66e2c3
remove mailing list code
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 18 Jun 2021 17:44:24 -0600 |
parents | cc5b7d515580 |
children |
line wrap: on
line source
package nabble.view.web.template; import nabble.model.Init; import nabble.modules.ModuleManager; import nabble.modules.hacks.HacksModule; import nabble.modules.workgroup.WorkgroupModule; import nabble.naml.compiler.CompileException; import nabble.naml.compiler.Module; import nabble.naml.compiler.Program; import nabble.naml.compiler.Template; import nabble.naml.compiler.TemplatePrintWriter; import nabble.naml.namespaces.BasicNamespace; import nabble.utils.Log4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collections; import java.util.List; public final class CompileTest { private static final Logger logger = LoggerFactory.getLogger(CompileTest.class); private static final List<Program> keepInMemory = new ArrayList<Program>(); private static void test0(Program program,String macroName,Class<?>... classes) throws CompileException { if( program.getTemplate( macroName, classes ) == null ) throw new RuntimeException("macro '"+macroName+"' not found"); } public static void test(Program program,String macroName,Class<?>... classes) throws CompileException { Class<?>[] a = new Class<?>[classes.length+2]; a[0] = BasicNamespace.class; a[1] = NabbleNamespace.class; System.arraycopy(classes,0,a,2,classes.length); test0(program,macroName,a); } static void compileTopic(Program program) throws CompileException { CompileTest.test( program, "topic", ServletNamespace.class ); CompileTest.test( program, "classic_blog_topic", ServletNamespace.class ); CompileTest.test( program, "list_blog_topic", ServletNamespace.class ); CompileTest.test( program, "threaded_blog_topic", ServletNamespace.class ); CompileTest.test( program, "classic_forum_topic", ServletNamespace.class ); CompileTest.test( program, "list_forum_topic", ServletNamespace.class ); CompileTest.test( program, "threaded_forum_topic", ServletNamespace.class ); } static void compileAll(Program program) throws CompileException { runCompileAllMacro(program); } static void compileAll() throws CompileException { Program program; program = Program.getInstance(ModuleManager.getGenericModules()); compileAll(program); logger.info("----- Tweak: more_ads -----"); testModule("more_ads", new String[] { "topic", "view_standard", "view_topics", "view_mixed", "view_board", "view_category" }); logger.info("----- Tweak: PPC -----"); testModule("ppc", new String[] { "manage_subscribers" }); logger.info("----- Tweak: Вайнах -----"); testModule("banhax", new String[] { "view_news", "view_gallery" }); logger.info("----- Tweak: PedXing -----"); testModule("pedxing", new String[] { "atom_topics_by_popularity", "topic" }); logger.info("----- Tweak: Jonaspm -----"); testModule("jonaspm", new String[] { "view_news" }); logger.info("----- Tweak: Animeron -----"); testModule("animeron", new String[] { "user_profile", "topic" }); logger.info("----- Tweak: Blackcow -----"); testModule("blackcow", HacksModule.INSTANCE, new String[] { "topic" }); logger.info("----- Languages -----"); String[] langMacros = new String[] { "topic", "view_app", "user_nodes", "send bookmark email" }; 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" }; for (String lang : langModules) { testModule(lang, langMacros); testEmails(lang); } logger.info("----- Social -----"); testModule("social_dropdown_links", new String[] { "topic" }); testModule("social_google_plus_one", new String[] { "topic" }); testModule("social_facebook_like", new String[] { "topic" }); testModule("social_tweet", new String[] { "topic" }); logger.info("----- Content -----"); testModule("content_noindex", new String[] { "topic", "view_standard", "view_topics", "view_mixed" }); testModule("content_open_links_in_new_window", new String[] { "topic" }); testModule("content_smart_cache", new String[] { "view_app" }); testModule("content_news_summary", new String[] { "view_app", "view_news" }); logger.info("----- Email -----"); testModule("email_registration_notification", new String[] { "finish_registration_page" }); logger.info("----- Workgroup -----"); testModule("workgroup", new String[] { "view_app", "topic", "new_topic", "reply" }); testEmails("workgroup"); /* logger.info("----- Poll -----"); testModule("poll", new String[] { "new_topic", "reply", "edit_post", "topic", "change_permissions" }); testEmails("poll"); */ } private static void testModule(String moduleName, String[] macros) throws CompileException { testModule(moduleName, null, macros); } private static void testModule(String moduleName, Module module, String[] macros) throws CompileException { List<Module> modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule(moduleName) ); if (module != null) modules.add(module); Program program = Program.getInstance(modules); for (String macro: macros) { if ("topic".equals(macro)) compileTopic(program); else CompileTest.test( program, macro, ServletNamespace.class ); } } private static void testEmails(String moduleName) throws CompileException { List<Module> modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule(moduleName) ); Program program = Program.getInstance(modules); CompileTest.test( program, "notify_subscribers", NodeNamespace.class ); CompileTest.test( program, "digest email", NodeList.class, SubscriptionNamespace.class ); } static void memTest() throws Exception { logger.info("memTest"); System.in.read(); Program program; program = Program.getInstance(ModuleManager.getGenericModules()); keepInMemory.add(program); compileAll(program); List<Module> modules = ModuleManager.getGenericModules(); logger.info("----- Tweak: PPC -----"); modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule("ppc") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); logger.info("----- Tweak: Вайнах -----"); modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule("banhax") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); logger.info("----- Tweak: PedXing -----"); modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule("pedxing") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); logger.info("----- Tweak: Jonaspm -----"); modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule("jonaspm") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); logger.info("----- Tweak: Animeron -----"); modules = ModuleManager.getGenericModules(); modules.add( ModuleManager.getModule("animeron") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); logger.info("----- Tweak: Blackcow -----"); modules = ModuleManager.getGenericModules(); modules.add(HacksModule.INSTANCE); modules.add( ModuleManager.getModule("blackcow") ); program = Program.getInstance(modules); keepInMemory.add(program); compileAll(program); System.out.println("done"); System.in.read(); } static void runCompileAllMacro(Program program) throws CompileException { Template template = program.getTemplate( "compile_all", BasicNamespace.class ); template.run( TemplatePrintWriter.NULL, Collections.<String,Object>emptyMap(), new BasicNamespace(template) ); } static void runCompileAllMacro() throws CompileException { List<Module> modules = ModuleManager.getGenericModules(); Program program = Program.getInstance(modules); runCompileAllMacro(program); } static void workgroupTest() throws CompileException { List<Module> modules = ModuleManager.getGenericModules(); compileAll(Program.getInstance(modules)); logger.info("----- workgroup -----"); modules.add(WorkgroupModule.INSTANCE); compileAll(Program.getInstance(modules)); } public static void main(String[] args) { Log4j.initForConsole(); Init.nop(); try { if( args.length==1 && args[0].equals("mem") ) { memTest(); } else { //System.in.read(); compileAll(); // workgroupTest(); // runCompileAllMacro(); //System.out.println("done"); //System.in.read(); } } catch(Exception e) { e.printStackTrace(); } System.exit(0); } }