[jboss-user] [JBoss Seam] - Testing view syntax

matt.drees do-not-reply at jboss.com
Thu Apr 12 14:09:05 EDT 2007


I created a somewhat simple test to make sure all the view files are compilable by facelets.  It really only checks syntax (not el bindings, etc), but maybe this will prove useful to people anyway.  

(It requires commons-io)

CompileAllPagesTest.java:

  | import java.io.File;
  | import java.util.Collection;
  | 
  | import org.apache.commons.io.FileUtils;
  | import org.jboss.seam.log.Log;
  | import org.jboss.seam.log.Logging;
  | import org.testng.annotations.Test;
  | 
  | import com.sun.facelets.Facelet;
  | import com.sun.facelets.FaceletFactory;
  | 
  | public class CompileAllPagesTest extends FaceletTest {
  |     
  | 	private Log log = Logging.getLog(CompileAllPagesTest.class);
  | 
  | 	@SuppressWarnings("unchecked")
  | 	@Test
  | 	public void testLoginPage() throws Exception{
  | 		File viewDir = new File(rootDir);
  | 
  | 		Collection<File> files =  FileUtils.listFiles(viewDir, new String[]{"xhtml"}, true);
  | 		for (File viewFile : files ){
  | 			String path = viewFile.getPath();
  | 			String viewId = path.replaceFirst(rootDir, "").replace('\\', '/');
  | 			log.debug("testing view " + viewId);
  | 			Facelet facelet = FaceletFactory.getInstance().getFacelet(viewId);
  | 			assert facelet != null : "created facelet for view " + viewId + " is null!";
  | 			createComponentTree(viewId, facelet);
  | 		}
  | 	}
  | }
  | 
  | 

FaceletTest.java:

  | public class FaceletTest {
  | 
  | 	public static final String rootDir = "view";
  | 	
  | 	@Configuration(beforeTest= true)
  | 	public void setupFaceletFactory() throws IOException {
  | 	assert FaceletFactory.getInstance() == null;
  | 		ResourceResolver simpleResolver = new ResourceResolver() {
  | 
  | 
  | 			public URL resolveUrl(String path) {
  | 				String urlString = rootDir + path;
  | 				File file = new File(urlString);
  | 				assert file != null;
  | 				URL url = null;
  | 				try {
  | 					url = file.toURL();
  | 				} catch (MalformedURLException e) {
  | 					throw new RuntimeException("bad url: " + urlString, e);
  | 				}
  | 				return url;
  | 			}
  | 			
  | 		};
  | 		
  | 		DefaultFaceletFactory defaultFaceletFactory = new DefaultFaceletFactory(
  | 				new SAXCompiler(), simpleResolver);
  | 		FaceletFactory.setInstance(defaultFaceletFactory);
  | 		assert FaceletFactory.getInstance() != null;
  | 	}
  | 
  | }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4036828#4036828

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4036828



More information about the jboss-user mailing list