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