001 package org.apache.tapestry.javascript; 002 003 import java.util.Locale; 004 005 import org.apache.tapestry.IAsset; 006 import org.apache.tapestry.TestBase; 007 import org.apache.tapestry.util.DescribedLocation; 008 import org.apache.tapestry.asset.AssetSource; 009 import org.apache.hivemind.Resource; 010 import org.testng.annotations.Test; 011 012 import static org.easymock.EasyMock.*; 013 014 @Test 015 public class TestJavascriptManagerImpl extends TestBase 016 { 017 public void test_null_manager() 018 { 019 JavascriptManagerImpl impl = createImpl(); 020 replay(); 021 022 assertNullAndEmpty(impl); 023 024 verify(); 025 } 026 027 public void test_empty_manager() 028 { 029 JavascriptManagerImpl impl = createImpl("", "", "", "", "", ""); 030 replay(); 031 032 assertNullAndEmpty(impl); 033 034 verify(); 035 } 036 037 public void test_several_files() 038 { 039 AssetSource source = newMock(AssetSource.class); 040 expectFile(source, "a.js"); 041 expectFile(source, "b.js"); 042 expectFile(source, "tap"); 043 044 replay(); 045 046 JavascriptManagerImpl impl = createImpl(source, "a.js, b.js", "", "", "", "tap", ""); 047 assertEquals(impl.getAssets().size(), 2); 048 assertNotNull(impl.getFirstAsset()); 049 assertNotNull(impl.getTapestryAsset()); 050 051 verify(); 052 } 053 054 private void expectFile(AssetSource source, String file) { 055 expect(source.findAsset((Resource) isNull(), eq(file), 056 (Locale) isNull(), isA(DescribedLocation.class))) 057 .andReturn(newMock(IAsset.class)); 058 } 059 060 private void assertNullAndEmpty(JavascriptManagerImpl impl) { 061 assertNull(impl.getPath()); 062 assertNull(impl.getTapestryAsset()); 063 assertNull(impl.getTapestryPath()); 064 assertNull(impl.getFirstAsset()); 065 assertNull(impl.getFirstFormAsset()); 066 assertNull(impl.getFirstWidgetAsset()); 067 assertTrue(impl.getAssets().isEmpty()); 068 assertTrue(impl.getFormAssets().isEmpty()); 069 assertTrue(impl.getWidgetAssets().isEmpty()); 070 } 071 072 private JavascriptManagerImpl createImpl(String...params) { 073 return createImpl(newMock(AssetSource.class), params); 074 } 075 076 private JavascriptManagerImpl createImpl(AssetSource source, String... params) { 077 JavascriptManagerImpl impl = new JavascriptManagerImpl(); 078 impl.setAssetSource(source); 079 080 if (params.length>0) 081 impl.setFiles(params[0]); 082 if (params.length>1) 083 impl.setFormFiles(params[1]); 084 if (params.length>2) 085 impl.setWidgetFiles(params[2]); 086 if (params.length>3) 087 impl.setFolder(params[3]); 088 if (params.length>4) 089 impl.setTapestryFile(params[4]); 090 if (params.length>5) 091 impl.setTapestryFolder(params[5]); 092 return impl; 093 } 094 }