Author: andyhot
Date: Sun Sep 28 14:18:39 2008
New Revision: 699894

URL: http://svn.apache.org/viewvc?rev=699894&view=rev
Log:
(forgotten) test for JavascriptManagerImpl handling multiple js

Modified:
    
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/javascript/TestJavascriptManagerImpl.java

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/javascript/TestJavascriptManagerImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/javascript/TestJavascriptManagerImpl.java?rev=699894&r1=699893&r2=699894&view=diff
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/javascript/TestJavascriptManagerImpl.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/javascript/TestJavascriptManagerImpl.java
 Sun Sep 28 14:18:39 2008
@@ -1,12 +1,20 @@
 package org.apache.tapestry.javascript;
 
+import java.io.CharArrayWriter;
+import java.io.InputStream;
+import java.io.PrintWriter;
 import java.util.Locale;
 
 import org.apache.tapestry.IAsset;
+import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.TestBase;
+import org.apache.tapestry.markup.MarkupWriterImpl;
+import org.apache.tapestry.markup.UTFMarkupFilter;
 import org.apache.tapestry.util.DescribedLocation;
 import org.apache.tapestry.asset.AssetSource;
+import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
+import org.easymock.IAnswer;
 import org.testng.annotations.Test;
 
 import static org.easymock.EasyMock.*;
@@ -14,6 +22,9 @@
 @Test
 public class TestJavascriptManagerImpl extends TestBase
 {
+    private static final String SYSTEM_NEWLINE = 
(String)java.security.AccessController.doPrivileged(
+            new sun.security.action.GetPropertyAction("line.separator"));
+    
     public void test_null_manager()
     {
         JavascriptManagerImpl impl = createImpl();
@@ -50,14 +61,70 @@
 
         verify();
     }
+    
+    public void test_several_files_output()
+    {
+        AssetSource source = newMock(AssetSource.class);
+        expectFile(source, "a.js");
+        expectFile(source, "b.js");
+        expectFile(source, "tap");
+        IRequestCycle cycle = newRequestCycle();
+        
+        replay();
+        
+        JavascriptManager impl = createImpl(source, "a.js, b.js", "", "", "", 
"tap", "");
+        
+        CharArrayWriter charWriter = new CharArrayWriter();
+        MarkupWriterImpl writer = new MarkupWriterImpl(
+                       "text/html", new PrintWriter(charWriter), new 
UTFMarkupFilter());
+        
+        impl.renderLibraryResources(writer, cycle, true, true);
+        impl.renderLibraryAdaptor(writer, cycle);
+        
+        assertEquals(charWriter.toString(), 
+                       "<script type=\"text/javascript\" 
src=\"a.js\"></script>" + SYSTEM_NEWLINE +
+                       "<script type=\"text/javascript\" 
src=\"b.js\"></script>" + SYSTEM_NEWLINE +
+                       "<script type=\"text/javascript\" 
src=\"tap\"></script>" + SYSTEM_NEWLINE);
+
+        verify();
+    }    
 
-    private void expectFile(AssetSource source, String file) {
+    private void expectFile(AssetSource source, final String file) 
+    {
         expect(source.findAsset((Resource) isNull(), eq(file),
                 (Locale) isNull(), isA(DescribedLocation.class)))
-                .andReturn(newMock(IAsset.class));
+                .andAnswer( new IAnswer<IAsset>() 
+                       {
+                                       public IAsset answer() throws Throwable 
{
+                                               return new IAsset() 
+                                               {
+                                                       public String 
buildURL() 
+                                                       {
+                                                               return file;
+                                                       }
+
+                                                       public InputStream 
getResourceAsStream() 
+                                                       {
+                                                               return null;
+                                                       }
+
+                                                       public Resource 
getResourceLocation() 
+                                                       {
+                                                               return null;
+                                                       }
+
+                                                       public Location 
getLocation() 
+                                                       {
+                                                               return null;
+                                                       }                       
                                
+                                               };
+                                       }
+                                       
+                       });               
     }
 
-    private void assertNullAndEmpty(JavascriptManagerImpl impl) {
+    private void assertNullAndEmpty(JavascriptManagerImpl impl) 
+    {
         assertNull(impl.getPath());
         assertNull(impl.getTapestryAsset());
         assertNull(impl.getTapestryPath());
@@ -69,11 +136,13 @@
         assertTrue(impl.getWidgetAssets().isEmpty());
     }
 
-    private JavascriptManagerImpl createImpl(String...params) {
+    private JavascriptManagerImpl createImpl(String...params) 
+    {
         return createImpl(newMock(AssetSource.class), params);
     }
 
-    private JavascriptManagerImpl createImpl(AssetSource source, String... 
params) {
+    private JavascriptManagerImpl createImpl(AssetSource source, String... 
params) 
+    {
         JavascriptManagerImpl impl = new JavascriptManagerImpl();
         impl.setAssetSource(source);
 


Reply via email to