/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.editablepages.view; import com.globant.katari.tools.FreemarkerTestEngine; import org.junit.Test; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import java.util.Locale; import static org.easymock.EasyMock.*; import org.springframework.mock.web.MockHttpServletRequest; import com.globant.katari.editablepages.TestUtils; import com.globant.katari.editablepages.application.SavePageCommand; import com.globant.katari.editablepages.domain.PageRepository; public class PageEditFtlTest { @Test public final void testPageEditFtl() throws Exception { List<String> valid = new ArrayList<String>(); valid.add(".*pageName.*TestPage.*"); valid.add(".*moduleName.*editable-pages.*"); valid.add(".*<title>TestTitle</title>.*"); valid.add(".*input.*name=.name.*"); valid.add(".*input.*name=.title.*"); valid.add(".*textarea.*name=.pageContent.*"); valid.add(".*Test content.*"); valid.add(".*editor.Config\\['CustomConfigurationsPath'\\].*"); valid.add(".*= '/katari/base'.*"); valid.add(".*editor.ToolbarSet = 'toolbar'.*"); valid.add(".*editor.Height = '500'.*"); valid.add(".*editor.Width = '80%'.*"); List<String> invalid = new ArrayList<String>(); invalid.add("Exception"); FreemarkerTestEngine engine = new FreemarkerTestEngine( "/com/globant/katari/editablepages/view", Locale.ENGLISH, buildModel(false)); engine.runAndValidate("pageEdit.ftl", valid, invalid); } @Test public final void testPageEditFtl_noConfig() throws Exception { List<String> valid = new ArrayList<String>(); valid.add(".*editor.ToolbarSet = 'EditablePagesMain'.*"); valid.add(".*editor.Config\\['CustomConfigurationsPath'\\].*"); valid.add(".*/module/editable-pages/asset/js/fckconfig.js.*"); List<String> invalid = new ArrayList<String>(); invalid.add("Exception"); invalid.add(".*= '/katari/base'.*"); invalid.add(".*editor.Height.*"); invalid.add(".*editor.Width.*"); FreemarkerTestEngine engine = new FreemarkerTestEngine( "/com/globant/katari/editablepages/view", Locale.ENGLISH, buildModel(true)); engine.runAndValidate("pageEdit.ftl", valid, invalid); } private Map<String, Object> buildModel(final boolean defaultConfig) { // Building Model Map<String, Object> model = new HashMap<String, Object>(); PageRepository repository = createMock(PageRepository.class); String siteName = TestUtils.getSiteName(); SavePageCommand command = new SavePageCommand(repository, siteName); command.setId(10000); command.setName("TestPage"); command.setTitle("TestTitle"); command.setPageContent("Test content"); model.put("command", command); FckEditorConfiguration config = new FckEditorConfiguration(); if (!defaultConfig) { config.setConfigurationUrl("/base"); config.setToolbarSet("toolbar"); config.setWidth("80%"); config.setHeight("500"); } model.put("fckEditorConfiguration", config); MockHttpServletRequest request = new MockHttpServletRequest(); request.setAttribute("contextPath", "/katari-sample/module/editable-pages/"); model.put("request", request); return model; } }