[3/3] git commit: WW-4335 Uses lastIndexOf to figure out theme name

2014-08-05 Thread lukaszlenart
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

2014-08-05 Thread lukaszlenart
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

2014-08-05 Thread lukaszlenart
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

2014-08-05 Thread Anonymous (Confluence)
















  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)