1 package net.sf.uitags.js; 2 3 import java.io.File ; 4 import java.io.IOException ; 5 import java.util.Date ; 6 7 import junit.framework.TestCase; 8 9 import org.springframework.core.io.ClassPathResource; 10 import org.springframework.core.io.FileSystemResource; 11 import org.springframework.core.io.FileSystemResourceLoader; 12 import org.springframework.core.io.Resource; 13 import org.springframework.core.io.ResourceLoader; 14 import org.springframework.mock.web.MockServletContext; 15 16 public class JsFilesTest extends TestCase { 17 private JsFiles jsFiles; 18 19 protected void tearDown() throws Exception { 20 super.tearDown(); 21 this.jsFiles = null; 22 } 23 24 private void setUpJsFilesWithClasspathBasedFileFinder() { 25 Suites suites = Suites.getInstance("core"); 26 27 ResourceLoader classpathResourceLoader = new ResourceLoader() { 28 public Resource getResource(String location) { 29 return new ClassPathResource(location); 30 } 31 }; 32 FileFinder fileFinder = FileFinder.getInstance( 33 new MockServletContext(classpathResourceLoader), null); 34 35 this.jsFiles = new JsFiles(suites, fileFinder); 36 } 37 38 private void setUpJsFilesWithFileSystemBasedFileFinder() { 39 Suites suites = Suites.getInstance("core"); 40 41 ResourceLoader fileSystemResourceLoader = new ResourceLoader() { 42 public Resource getResource(String location) { 43 return new FileSystemResource("." + location); 44 } 45 }; 46 FileFinder fileFinder = FileFinder.getInstance( 47 new MockServletContext(fileSystemResourceLoader), "src/main/js"); 48 49 this.jsFiles = new JsFiles(suites, fileFinder); 50 } 51 52 53 54 59 public void testDebugJsIsNotIncludedInDebugModeIfUsingClasspathBasedFileFinder() 60 throws IOException { 61 setUpJsFilesWithClasspathBasedFileFinder(); 62 63 this.jsFiles.setInDebugMode(true); 64 String contents = this.jsFiles.getContents(); 65 assertTrue(contents.indexOf("uiGlobal_defaultLevel =") == -1); 66 } 67 68 public void testDebugJsIsNotIncludedInNonDebugModeIfUsingClasspathBasedFileFinder() 69 throws IOException { 70 setUpJsFilesWithClasspathBasedFileFinder(); 71 72 String contents = this.jsFiles.getContents(); 73 assertTrue(contents.indexOf("uiGlobal_defaultLevel =") == -1); 74 } 75 76 77 78 83 public void testDebugJsIsIncludedInDebugModeIfUsingFileSystemBasedFileFinder() 84 throws IOException { 85 setUpJsFilesWithFileSystemBasedFileFinder(); 86 87 this.jsFiles.setInDebugMode(true); 88 String contents = this.jsFiles.getContents(); 89 assertTrue(contents.indexOf("uiGlobal_defaultLevel =") > -1); 90 } 91 92 public void testDebugJsIsNotIncludedInNonDebugModeIfUsingFileSystemBasedFileFinder() 93 throws IOException { 94 setUpJsFilesWithFileSystemBasedFileFinder(); 95 96 String contents = this.jsFiles.getContents(); 97 assertTrue(contents.indexOf("uiGlobal_defaultLevel =") == -1); 98 } 99 100 101 102 106 public void testUsesLatestLastModifiedOfAllFiles() throws IOException { 107 Resource resource = new FileSystemResourceLoader().getResource( 108 "./src/main/js/html/Element.js"); 109 File fileToTouch = resource.getFile(); 110 long latestTimestamp = new Date ().getTime(); 111 assertTrue(fileToTouch.setLastModified(latestTimestamp)); 112 113 setUpJsFilesWithFileSystemBasedFileFinder(); 115 116 long delta = 1000; 119 assertEquals(latestTimestamp, this.jsFiles.getLastModified(), delta); 120 } 121 } 122 | Popular Tags |