[3/3] git commit: WW-4335 Uses lastIndexOf to figure out theme name
WW-4335 Uses lastIndexOf to figure out theme name Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/16e240b4 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/16e240b4 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/16e240b4 Branch: refs/heads/develop Commit: 16e240b4a534620c601d18ad7ff290806584d47e Parents: 51b16bd Author: Lukasz Lenart Authored: Tue Aug 5 09:38:32 2014 +0200 Committer: Lukasz Lenart Committed: Tue Aug 5 09:38:32 2014 +0200 -- .../FreemarkerThemeTemplateLoader.java | 2 +- .../FreemarkerThemeTemplateLoaderTest.java | 66 2 files changed, 67 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/16e240b4/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java -- diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java index 35a90a4..5c56463 100644 --- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java +++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java @@ -37,7 +37,7 @@ public class FreemarkerThemeTemplateLoader implements TemplateLoader{ return parentTemplateLoader.findTemplateSource(name); } -int themeEndIndex = name.indexOf('/', tokenIndex); +int themeEndIndex = name.lastIndexOf('/'); if (themeEndIndex < 0) { return parentTemplateLoader.findTemplateSource(name); } http://git-wip-us.apache.org/repos/asf/struts/blob/16e240b4/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoaderTest.java -- diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoaderTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoaderTest.java new file mode 100644 index 000..7f8ef31 --- /dev/null +++ b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoaderTest.java @@ -0,0 +1,66 @@ +package org.apache.struts2.views.freemarker; + +import freemarker.cache.TemplateLoader; +import org.apache.struts2.StrutsInternalTestCase; +import org.apache.struts2.components.template.Template; +import org.apache.struts2.components.template.TemplateEngine; +import org.hamcrest.BaseMatcher; +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.hamcrest.core.IsEqual; +import org.mockito.Matchers; + +import java.util.HashMap; +import java.util.Map; + +import static org.fest.assertions.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class FreemarkerThemeTemplateLoaderTest extends StrutsInternalTestCase { + +public void testThemeExpansionToken() throws Exception { +// given +FreemarkerThemeTemplateLoader loader = new FreemarkerThemeTemplateLoader(); +loader.setUIThemeExpansionToken("~~~"); + +TemplateEngine engine = mock(TemplateEngine.class); +loader.setTemplateEngine(engine); + +TemplateLoader parent = mock(TemplateLoader.class); + when(parent.findTemplateSource("template/foo/bar/text.ftl")).thenReturn(new Object()); + +loader.init(parent); + +// when +Object actual = loader.findTemplateSource("template/~~~foo/bar/text.ftl"); + +// then +assertThat(actual).isNotNull(); +} + +public void testThemeExpansionTokenWithParent() throws Exception { +// given +FreemarkerThemeTemplateLoader loader = new FreemarkerThemeTemplateLoader(); +loader.setUIThemeExpansionToken("~~~"); + +TemplateEngine engine = mock(TemplateEngine.class); +Map props = new HashMap(); +props.put("parent", "foo/foo"); +when(engine.getThemeProps(Matchers.argThat(new IsEqual(new Template("template", "foo/bar", "text.ftl").thenReturn(props); +loader.setTemplateEngine(engine); + +TemplateLoader parent = mock(TemplateLoader.class); + when(parent.findTemplateSource("template/foo/bar/text.ftl")).thenReturn(null); + when(parent.findTemplateSource("template/foo/foo/text.ftl")).thenReturn(new Object()); + +loader.init(parent); + +// when +Object actual = loader.findTemplateSource("template/~~~foo/bar/text.ftl"); + +// then +assertThat(actual).isNotNull(); +} + +} \ No newline at end of file
[1/3] git commit: Adds mockito mocking lib
Repository: struts Updated Branches: refs/heads/develop aa4d5b3cf -> 16e240b4a Adds mockito mocking lib Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ce49822e Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ce49822e Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ce49822e Branch: refs/heads/develop Commit: ce49822e1e2faaee45ba8128df9ca533b17dbee1 Parents: aa4d5b3 Author: Lukasz Lenart Authored: Tue Aug 5 09:37:44 2014 +0200 Committer: Lukasz Lenart Committed: Tue Aug 5 09:37:44 2014 +0200 -- core/pom.xml | 12 pom.xml | 7 +++ 2 files changed, 19 insertions(+) -- http://git-wip-us.apache.org/repos/asf/struts/blob/ce49822e/core/pom.xml -- diff --git a/core/pom.xml b/core/pom.xml index d9527f2..8a9b7b6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -286,6 +286,18 @@ test + +org.mockito +mockito-all +test + + + +org.easytesting +fest-assert +test + + http://git-wip-us.apache.org/repos/asf/struts/blob/ce49822e/pom.xml -- diff --git a/pom.xml b/pom.xml index c7b69a9..9a20885 100644 --- a/pom.xml +++ b/pom.xml @@ -801,6 +801,13 @@ +org.mockito +mockito-all +1.9.5 +test + + + jmock jmock-cglib 1.2.0
[2/3] git commit: Implements equal/hashCode
Implements equal/hashCode Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/51b16bde Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/51b16bde Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/51b16bde Branch: refs/heads/develop Commit: 51b16bde8bbd2013427b704659fef6be033fa1e1 Parents: ce49822 Author: Lukasz Lenart Authored: Tue Aug 5 09:38:08 2014 +0200 Committer: Lukasz Lenart Committed: Tue Aug 5 09:38:08 2014 +0200 -- .../struts2/components/template/Template.java | 23 1 file changed, 23 insertions(+) -- http://git-wip-us.apache.org/repos/asf/struts/blob/51b16bde/core/src/main/java/org/apache/struts2/components/template/Template.java -- diff --git a/core/src/main/java/org/apache/struts2/components/template/Template.java b/core/src/main/java/org/apache/struts2/components/template/Template.java index b6bbfdb..d4f39e6 100644 --- a/core/src/main/java/org/apache/struts2/components/template/Template.java +++ b/core/src/main/java/org/apache/struts2/components/template/Template.java @@ -89,4 +89,27 @@ public class Template implements Cloneable { protected Object clone() throws CloneNotSupportedException { return super.clone(); } + +@Override +public boolean equals(Object o) { +if (this == o) return true; +if (o == null || getClass() != o.getClass()) return false; + +Template template = (Template) o; + +if (dir != null ? !dir.equals(template.dir) : template.dir != null) return false; +if (name != null ? !name.equals(template.name) : template.name != null) return false; +if (theme != null ? !theme.equals(template.theme) : template.theme != null) return false; + +return true; +} + +@Override +public int hashCode() { +int result = dir != null ? dir.hashCode() : 0; +result = 31 * result + (theme != null ? theme.hashCode() : 0); +result = 31 * result + (name != null ? name.hashCode() : 0); +return result; +} + }
[CONF] Confluence Changes in the last 24 hours
Confluence Changes in the last 24 hours Apache ActiveMQ Pages Page: Cached LDAP Authorization Module edited by Timothy Bish [02:08 PM] (View Changes) Apache Ambari Pages Page: Quick Start Guide edited by Yusaku Sako [05:46 PM] (View Changes) Apache Camel Pages Page: XmlJson edited by Franz Forsthofer [10:49 AM] (View Changes) Apache Cloudstack Pages Page: Git edited by Rohit Yadav [12:36 PM] (View Changes) Page: LXC Template creation edited by Kishan Kavala [09:42 AM] (View Changes) Page: Password Strength Checker For a User edited by Damodar Reddy T [09:42 AM] (View Changes) Apache Curator Pages Page: Third Party Articles edited by Jordan Zimmerman [04:49 PM] (View Changes) Apache CXF Documentation Pages Page: 3.1 Migration Guide created by Daniel Kulp [06:25 PM] Page: Migration Guides edited by Daniel Kulp [06:21 PM] (View Changes) Page: Secure JAX-RS Services edited by Andrei Shakirin [03:10 PM] (View Changes) Drill Wiki Pages Page: Apache Drill in 10 Minutes edited by Bridget Bevens [11:46 PM] (View Changes) Page: Deploying Apache Drill in a Clustered Environment edited by Bridget Bevens [09:44 PM] (View Changes) Page: Connecting to Data Sources edited by Bridget Bevens [01:13 AM] (View Changes) Apache Flex Pages Page: 6.3 Jenkins Automated Builds edited by Tom Chiverton [09:40 PM] (View Changes)