You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2011/06/15 17:18:20 UTC
svn commit: r1136081 - in /wicket/trunk/wicket-core/src:
main/java/org/apache/wicket/request/resource/
test/java/org/apache/wicket/request/resource/
Author: pedro
Date: Wed Jun 15 15:18:19 2011
New Revision: 1136081
URL: http://svn.apache.org/viewvc?rev=1136081&view=rev
Log:
removing duplicated logic and testing PackageResourceReference
Issue: WICKET-3797
Added:
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2.txt
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt.txt
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt_BR.txt
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2.txt
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt.txt
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt_BR.txt
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java?rev=1136081&r1=1136080&r2=1136081&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java Wed Jun 15 15:18:19 2011
@@ -110,12 +110,16 @@ public class PackageResourceReference ex
}
}
- private StreamInfo lookupStream(IResourceStreamLocator locator, Locale locale, String style,
- String variation)
+ private StreamInfo lookupStream(Locale locale, String style, String variation)
{
+ IResourceStreamLocator locator = Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator();
+
String absolutePath = Packages.absolutePath(getScope(), getName());
+
IResourceStream stream = locator.locate(getScope(), absolutePath, style, variation, locale,
- null, true);
+ null, false);
if (stream == null)
return null;
@@ -123,42 +127,6 @@ public class PackageResourceReference ex
return new StreamInfo(stream);
}
- private StreamInfo lookupStream(Locale locale, String style, String variation)
- {
- IResourceStreamLocator locator = Application.get()
- .getResourceSettings()
- .getResourceStreamLocator();
-
- StreamInfo info;
-
- info = lookupStream(locator, locale, style, variation);
- if (info == null)
- {
- info = lookupStream(locator, locale, style, null);
- }
- if (info == null)
- {
- info = lookupStream(locator, locale, null, variation);
- }
- if (info == null)
- {
- info = lookupStream(locator, null, style, variation);
- }
- if (info == null)
- {
- info = lookupStream(locator, locale, null, null);
- }
- if (info == null)
- {
- info = lookupStream(locator, null, style, null);
- }
- if (info == null)
- {
- info = lookupStream(locator, null, null, variation);
- }
- return info;
- }
-
private UrlAttributes getUrlAttributes(Locale locale, String style, String variation)
{
StreamInfo info = lookupStream(locale, style, variation);
@@ -193,8 +161,8 @@ public class PackageResourceReference ex
@Override
public UrlAttributes getUrlAttributes()
{
- Locale locale = getLocale() != null ? getLocale() : Session.get().getLocale();
- String style = getStyle() != null ? getStyle() : Session.get().getStyle();
+ Locale locale = getCurrentLocale();
+ String style = getCurrentStyle();
String variation = getVariation();
UrlAttributes key = new UrlAttributes(locale, style, variation);
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java?rev=1136081&r1=1136080&r2=1136081&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/PackageResourceReferenceTest.java Wed Jun 15 15:18:19 2011
@@ -19,7 +19,9 @@ package org.apache.wicket.request.resour
import java.util.Locale;
import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.request.resource.IResource.Attributes;
import org.apache.wicket.request.resource.ResourceReference.UrlAttributes;
+import org.apache.wicket.response.ByteArrayResponse;
import org.junit.Test;
@@ -28,30 +30,155 @@ import org.junit.Test;
*/
public class PackageResourceReferenceTest extends WicketTestCase
{
+ private static Class<PackageResourceReferenceTest> scope = PackageResourceReferenceTest.class;
+ private static Locale[] locales = { null, new Locale("en"), new Locale("en", "US") };
+ private static String[] styles = { null, "style" };
+ private static String[] variations = { null, "var" };
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ // some locale outside those in locales array
+ tester.getSession().setLocale(Locale.CHINA);
+ }
+
/**
*
*/
@Test
- public void testResourceResolution()
+ public void resourceResolution()
{
- Locale[] locales = { null, new Locale("en"), new Locale("en", "US") };
- String[] styles = { null, "style" };
- String[] variations = { null, "var" };
for (Locale locale : locales)
{
for (String style : styles)
{
for (String variation : variations)
{
- ResourceReference reference = new PackageResourceReference(
- PackageResourceReferenceTest.class, "resource.txt", locale, style,
- variation);
+ ResourceReference reference = new PackageResourceReference(scope,
+ "resource.txt", locale, style, variation);
UrlAttributes urlAttributes = reference.getUrlAttributes();
- assertEquals(urlAttributes.getLocale(), locale);
- assertEquals(urlAttributes.getStyle(), style);
- assertEquals(urlAttributes.getVariation(), variation);
+ assertEquals(locale, urlAttributes.getLocale());
+ assertEquals(style, urlAttributes.getStyle());
+ assertEquals(variation, urlAttributes.getVariation());
+
+ ByteArrayResponse byteResponse = new ByteArrayResponse();
+ Attributes mockAttributes = new Attributes(tester.getRequestCycle()
+ .getRequest(), byteResponse);
+ reference.getResource().respond(mockAttributes);
+ String fileContent = new String(byteResponse.getBytes());
+ if (locale != null)
+ {
+ assertTrue(fileContent.contains(locale.getLanguage()));
+ if (locale.getCountry() != null)
+ {
+ assertTrue(fileContent.contains(locale.getCountry()));
+ }
+ }
+ if (style != null)
+ {
+ assertTrue(fileContent.contains(style));
+ }
+ if (variation != null)
+ {
+ assertTrue(fileContent.contains(variation));
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ */
+ @Test
+ public void resourceResponse()
+ {
+ for (Locale locale : locales)
+ {
+ for (String style : styles)
+ {
+ for (String variation : variations)
+ {
+ ResourceReference reference = new PackageResourceReference(scope,
+ "resource.txt", locale, style, variation);
+
+ ByteArrayResponse byteResponse = new ByteArrayResponse();
+ Attributes mockAttributes = new Attributes(tester.getRequestCycle()
+ .getRequest(), byteResponse);
+ reference.getResource().respond(mockAttributes);
+ String fileContent = new String(byteResponse.getBytes());
+ if (locale != null)
+ {
+ assertTrue(fileContent.contains(locale.getLanguage()));
+ if (locale.getCountry() != null)
+ {
+ assertTrue(fileContent.contains(locale.getCountry()));
+ }
+ }
+ if (style != null)
+ {
+ assertTrue(fileContent.contains(style));
+ }
+ if (variation != null)
+ {
+ assertTrue(fileContent.contains(variation));
+ }
}
}
}
}
+
+ /**
+ * Asserting if user did not set any locale or style, those from session get used if any
+ */
+ @Test
+ public void sessionAttributesRelevance()
+ {
+ for (Locale locale : new Locale[] { new Locale("en"), new Locale("en", "US") })
+ {
+ tester.getSession().setLocale(locale);
+ for (String style : styles)
+ {
+ tester.getSession().setStyle(style);
+ for (String variation : variations)
+ {
+ ResourceReference reference = new PackageResourceReference(scope,
+ "resource.txt", null, null, variation);
+ UrlAttributes urlAttributes = reference.getUrlAttributes();
+ assertEquals(tester.getSession().getLocale(), urlAttributes.getLocale());
+ assertEquals(tester.getSession().getStyle(), urlAttributes.getStyle());
+ assertEquals(variation, urlAttributes.getVariation());
+ }
+ }
+ }
+ }
+
+ /**
+ * Assert preference for specified locale and style over session ones
+ */
+ @Test
+ public void userAttributesPreference()
+ {
+ tester.getSession().setLocale(new Locale("en"));
+ tester.getSession().setStyle("style");
+
+ Locale[] userLocales = { null, new Locale("pt"), new Locale("pt", "BR") };
+ String userStyle = "style2";
+
+ for (Locale userLocale : userLocales)
+ {
+ for (String variation : variations)
+ {
+ ResourceReference reference = new PackageResourceReference(scope, "resource.txt",
+ userLocale, userStyle, variation);
+ UrlAttributes urlAttributes = reference.getUrlAttributes();
+
+ assertEquals(userLocale, urlAttributes.getLocale());
+ assertEquals(userStyle, urlAttributes.getStyle());
+ assertEquals(variation, urlAttributes.getVariation());
+ }
+ }
+ }
+
}
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_style.txt
\ No newline at end of file
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_style_en.txt
\ No newline at end of file
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt_BR.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt_BR.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt_BR.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_style2_pt_BR.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_style_en_US.txt
\ No newline at end of file
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_var_style.txt
\ No newline at end of file
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_var_style_en.txt
\ No newline at end of file
Added: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt_BR.txt
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt_BR.txt?rev=1136081&view=auto
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt_BR.txt (added)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/resource/resource_var_style2_pt_BR.txt Wed Jun 15 15:18:19 2011
@@ -0,0 +1 @@
+resource_var_style_en_US.txt
\ No newline at end of file