Thread: [Jsf4portlets-devel] SF.net SVN: jsf4portlets:[91] trunk/jsf4portlets-tck
Status: Alpha
Brought to you by:
alonsoft
From: <alo...@us...> - 2012-06-24 17:55:19
|
Revision: 91 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=91&view=rev Author: alonsoft Date: 2012-06-24 17:55:12 +0000 (Sun, 24 Jun 2012) Log Message: ----------- tck splitted for ease development Modified Paths: -------------- trunk/jsf4portlets-tck/pom.xml Added Paths: ----------- trunk/jsf4portlets-tck/jsf4portlets-tck-core/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/beans/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/beans/Chapter3_2Bean.java trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/META-INF/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/META-INF/TCKPorletApplication.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/faces-config.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/web.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/test/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java Property changes on: trunk/jsf4portlets-tck/jsf4portlets-tck-core ___________________________________________________________________ Added: svn:ignore + jsf4portlets-tck-core.iml Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>jsf4portlets-tck</artifactId> + <groupId>net.sf.jsf4portlets</groupId> + <version>1.0-alpha-3-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <name>JSF 4 Portlets TCK Core</name> + <artifactId>jsf4portlets-tck-core</artifactId> + + <build> + <finalName>${project.artifactId}</finalName> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>javax.el</groupId> + <artifactId>el-api</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + </dependency> + <dependency> + <groupId>javax.faces</groupId> + <artifactId>jsf-api</artifactId> + </dependency> + <dependency> + <groupId>javax.annotation</groupId> + <artifactId>jsr250-api</artifactId> + </dependency> + <dependency> + <groupId>javax.portlet</groupId> + <artifactId>portlet-api</artifactId> + </dependency> + + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-api</artifactId> + </dependency> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-impl</artifactId> + </dependency> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-ext</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-all</artifactId> + </dependency> + </dependencies> +</project> \ No newline at end of file Property changes on: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp ___________________________________________________________________ Added: svn:ignore + jsf4portlets-tck-webapp.iml Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>jsf4portlets-tck</artifactId> + <groupId>net.sf.jsf4portlets</groupId> + <version>1.0-alpha-3-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <name>JSF 4 Portlets TCK Webapp</name> + <artifactId>jsf4portlets-tck-webapp</artifactId> + <packaging>war</packaging> + + <properties> + <test.webapp.source>${basedir}/src/test/webapp</test.webapp.source> + <test.webapp.runtime>${project.build.directory}/${project.artifactId}</test.webapp.runtime> + </properties> + + <build> + <finalName>${project.artifactId}</finalName> + <plugins> + <plugin> + <groupId>org.apache.pluto</groupId> + <artifactId>maven-pluto-plugin</artifactId> + <version>1.1.6</version> + <executions> + <execution> + <phase>generate-test-resources</phase> + <goals> + <goal>assemble</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>maven-jetty-plugin</artifactId> + <version>${jetty.version}</version> + <configuration> + <webXml>${project.build.directory}/pluto-resources/web.xml</webXml> + <webAppConfig> + <contextPath>/${project.artifactId}</contextPath> + </webAppConfig> + <systemProperties> + <systemProperty> + <name>org.apache.pluto.embedded.portletIds</name> + <value>jsf4portlets:chapter3_2</value> + </systemProperty> + </systemProperties> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.2</version> + <configuration> + <webXml>${project.build.directory}/pluto-resources/web.xml</webXml> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>javax.el</groupId> + <artifactId>el-api</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.faces</groupId> + <artifactId>jsf-api</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.annotation</groupId> + <artifactId>jsr250-api</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>javax.portlet</groupId> + <artifactId>portlet-api</artifactId> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-api</artifactId> + </dependency> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-impl</artifactId> + </dependency> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-ext</artifactId> + </dependency> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-tck-core</artifactId> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.pluto</groupId> + <artifactId>pluto-portal-driver</artifactId> + <version>${pluto.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.bekk.boss</groupId> + <artifactId>maven-jetty-pluto-embedded</artifactId> + <version>1.0.1</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-all</artifactId> + </dependency> + </dependencies> +</project> \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/beans/Chapter3_2Bean.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/beans/Chapter3_2Bean.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/java/net/sf/jsf4portlets/tck/beans/Chapter3_2Bean.java 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,12 @@ +package net.sf.jsf4portlets.tck.beans; + +import net.sf.jsf4portlets.tck.common.TCKTestBean; + +import javax.portlet.faces.Bridge; + +public class Chapter3_2Bean extends TCKTestBean { + @Override + public Bridge.BridgeRenderPolicy getRenderPolicy() { + return Bridge.BridgeRenderPolicy.ALWAYS_DELEGATE; + } +} Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/META-INF/TCKPorletApplication.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/META-INF/TCKPorletApplication.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/META-INF/TCKPorletApplication.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,2 @@ +<Context path="/TCKPortletApplication" + docBase="TCKPortletApplication" crossContext="true"/> \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/faces-config.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/faces-config.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/faces-config.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:bridge="http://jsf4portlets.sf.net/jsfportlet" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <factory> + <application-factory>net.sf.jsf4portlets.tck.faces.application.TCKApplicationFactory</application-factory> + <faces-context-factory>net.sf.jsf4portlets.tck.faces.context.TCKFacesContextFactory</faces-context-factory> + <lifecycle-factory>net.sf.jsf4portlets.tck.faces.lifecycle.TCKLifecycleFactory</lifecycle-factory> + </factory> + + <managed-bean> + <managed-bean-name>chapter3_2</managed-bean-name> + <managed-bean-class>net.sf.jsf4portlets.tck.beans.Chapter3_2Bean</managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + </managed-bean> + +</faces-config> Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<portlet-app version="1.0" + xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> + + <portlet> + <portlet-name>jsf4portlets:chapter3_2</portlet-name> + <portlet-class>net.sf.jsf4portlets.tck.portlet.TCKFacesPortlet</portlet-class> + + <init-param> + <name>javax.portlet.faces.defaultViewId.view</name> + <value>/test/chapter3_2.jsp</value> + </init-param> + + <supports> + <mime-type>text/html</mime-type> + </supports> + + <portlet-info> + <title>Chapter 3.2</title> + </portlet-info> + </portlet> + +</portlet-app> Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/web.xml (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/web.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'> +<web-app> + <display-name>JSR-301 - TCK Web</display-name> + + <context-param> + <param-name>javax.faces.DEFAULT_SUFFIX</param-name> + <param-value>.jsp</param-value> + </context-param> + <context-param> + <param-name>javax.portlet.faces.LIFECYCLE_ID</param-name> + <param-value>TCKLifecycle</param-value> + </context-param> + + + <!-- Faces Servlet --> + <servlet> + <servlet-name>faces</servlet-name> + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> + </servlet> + + + <!-- Faces Servlet Mappings --> + <!-- + In this demo application, I chose to use suffix mapping. I did this because it makes urls + in the portlet world look nicer in the source. The portlet url should be the same + reguardless. + --> + <servlet-mapping> + <servlet-name>faces</servlet-name> + <url-pattern>*.jsf</url-pattern> + </servlet-mapping> +</web-app> Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java 2012-06-24 17:55:12 UTC (rev 91) @@ -0,0 +1,21 @@ +package net.sf.jsf4portlets.tck.test; + +import org.junit.Test; + +import javax.portlet.faces.GenericFacesPortlet; + +import static org.junit.Assert.*; +import static org.hamcrest.Matchers.*; + +public class Chapter3_1Test { + + private static final String SPECIFICATION_TITLE = "Portlet 1.0 Bridge for JavaServer Faces 1.2"; + + @Test + public void checkSpecificationTitle() { + GenericFacesPortlet portlet = new GenericFacesPortlet(); + Package pack = portlet.getClass().getPackage(); + assertThat(pack.getSpecificationTitle(), equalTo(SPECIFICATION_TITLE)); + } + +} Modified: trunk/jsf4portlets-tck/pom.xml =================================================================== --- trunk/jsf4portlets-tck/pom.xml 2012-06-24 17:41:12 UTC (rev 90) +++ trunk/jsf4portlets-tck/pom.xml 2012-06-24 17:55:12 UTC (rev 91) @@ -10,179 +10,53 @@ <modelVersion>4.0.0</modelVersion> <name>JSF 4 Portlets TCK</name> + <artifactId>jsf4portlets-tck</artifactId> + <packaging>pom</packaging> - <properties> - <test.webapp.source>${basedir}/src/test/webapp</test.webapp.source> - <test.webapp.runtime>${project.build.directory}/${project.artifactId}</test.webapp.runtime> + <modules> + <module>jsf4portlets-tck-core</module> + <module>jsf4portlets-tck-webapp</module> + </modules> + <properties> <pluto.version>1.1.7</pluto.version> </properties> <build> - <finalName>${project.artifactId}</finalName> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.7</version> - <executions> - <execution> - <id>add-test-webapp-resource</id> - <phase>generate-test-resources</phase> - <goals> - <goal>add-test-resource</goal> - </goals> - <configuration> - <resources> - <resource> - <directory>${test.webapp.source}</directory> - </resource> - </resources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.pluto</groupId> - <artifactId>maven-pluto-plugin</artifactId> - <version>1.1.6</version> - <executions> - <execution> - <phase>generate-test-resources</phase> - <goals> - <goal>assemble</goal> - </goals> - <configuration> - <portletXml>${test.webapp.source}/WEB-INF/portlet.xml</portletXml> - <webXml>${test.webapp.source}/WEB-INF/web.xml</webXml> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <version>1.7</version> - <executions> - <execution> - <phase>process-test-resources</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target> - <mkdir dir="${test.webapp.runtime}" /> - <copy todir="${test.webapp.runtime}"> - <fileset dir="${test.webapp.source}"> - <exclude name="/WEB-INF/portlet.xml" /> - <exclude name="/WEB-INF/web.xml" /> - </fileset> - </copy> - </target> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.mortbay.jetty</groupId> - <artifactId>maven-jetty-plugin</artifactId> - <version>${jetty.version}</version> - <configuration> - <webXml>${project.build.directory}/pluto-resources/web.xml</webXml> - <webAppConfig> - <contextPath>/${project.artifactId}</contextPath> - </webAppConfig> - <systemProperties> - <systemProperty> - <name>org.apache.pluto.embedded.portletIds</name> - <value></value> - </systemProperty> - </systemProperties> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>2.2</version> - <configuration> - <webXml>${project.build.directory}/pluto-resources/web.xml</webXml> - </configuration> - </plugin> - </plugins> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.7</version> + </plugin> + <plugin> + <groupId>org.apache.pluto</groupId> + <artifactId>maven-pluto-plugin</artifactId> + <version>1.1.6</version> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>maven-jetty-plugin</artifactId> + <version>${jetty.version}</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.2</version> + </plugin> + </plugins> + </pluginManagement> </build> - <dependencies> - <dependency> - <groupId>javax.el</groupId> - <artifactId>el-api</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.servlet.jsp</groupId> - <artifactId>jsp-api</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.faces</groupId> - <artifactId>jsf-api</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.annotation</groupId> - <artifactId>jsr250-api</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>javax.portlet</groupId> - <artifactId>portlet-api</artifactId> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>net.sf.jsf4portlets</groupId> - <artifactId>jsf4portlets-api</artifactId> - </dependency> - <dependency> - <groupId>net.sf.jsf4portlets</groupId> - <artifactId>jsf4portlets-impl</artifactId> - </dependency> - <dependency> - <groupId>net.sf.jsf4portlets</groupId> - <artifactId>jsf4portlets-ext</artifactId> - </dependency> - - <dependency> - <groupId>org.mortbay.jetty</groupId> - <artifactId>jetty</artifactId> - <version>${jetty.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.pluto</groupId> - <artifactId>pluto-portal-driver</artifactId> - <version>${pluto.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.bekk.boss</groupId> - <artifactId>maven-jetty-pluto-embedded</artifactId> - <version>1.0.1</version> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-all</artifactId> - </dependency> - </dependencies> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>net.sf.jsf4portlets</groupId> + <artifactId>jsf4portlets-tck-core</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </dependencyManagement> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alo...@us...> - 2012-06-24 20:10:27
|
Revision: 95 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=95&view=rev Author: alonsoft Date: 2012-06-24 20:10:21 +0000 (Sun, 24 Jun 2012) Log Message: ----------- added selenium Modified Paths: -------------- trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java Added Paths: ----------- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/common/ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/common/TCKSeleniumTestCase.java Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml 2012-06-24 19:30:17 UTC (rev 94) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/pom.xml 2012-06-24 20:10:21 UTC (rev 95) @@ -64,10 +64,12 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> + <scope>compile</scope> </dependency> </dependencies> </project> \ No newline at end of file Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 19:30:17 UTC (rev 94) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 20:10:21 UTC (rev 95) @@ -20,6 +20,15 @@ <build> <finalName>${project.artifactId}</finalName> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>selenium-maven-plugin</artifactId> + <version>2.3</version> + </plugin> + </plugins> + </pluginManagement> <plugins> <plugin> <groupId>org.apache.pluto</groupId> @@ -49,7 +58,29 @@ <value>jsf4portlets:chapter3_2</value> </systemProperty> </systemProperties> + <stopPort>9966</stopPort> + <stopKey>maven</stopKey> </configuration> + <executions> + <execution> + <id>start-jetty</id> + <phase>pre-integration-test</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <scanIntervalSeconds>0</scanIntervalSeconds> + <daemon>true</daemon> + </configuration> + </execution> + <execution> + <id>stop-jetty</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -62,7 +93,6 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> - <version>2.3</version> <executions> <execution> <id>start-selenium</id> @@ -90,32 +120,26 @@ <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> - <scope>compile</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> - <scope>compile</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> - <scope>compile</scope> </dependency> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> - <scope>compile</scope> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> - <scope>compile</scope> </dependency> <dependency> <groupId>javax.portlet</groupId> <artifactId>portlet-api</artifactId> - <scope>compile</scope> </dependency> <dependency> @@ -162,5 +186,40 @@ <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> </dependency> + <dependency> + <groupId>org.seleniumhq.selenium</groupId> + <artifactId>selenium-java</artifactId> + <version>2.24.1</version> + <scope>test</scope> + </dependency> </dependencies> + + <profiles> + <profile> + <id>teamcity-build</id> + <activation> + <property> + <name>teamcity.running</name> + <value>true</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>selenium-maven-plugin</artifactId> + <executions> + <execution> + <id>start-xvfb</id> + <phase>pre-integration-test</phase> + <goals> + <goal>xvfb</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/common/TCKSeleniumTestCase.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/common/TCKSeleniumTestCase.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/common/TCKSeleniumTestCase.java 2012-06-24 20:10:21 UTC (rev 95) @@ -0,0 +1,42 @@ +package net.sf.jsf4portlets.tck.common; + +import com.thoughtworks.selenium.DefaultSelenium; +import com.thoughtworks.selenium.Selenium; +import net.sf.jsf4portlets.tck.TCKConstants; +import org.junit.AfterClass; +import org.junit.BeforeClass; + +public abstract class TCKSeleniumTestCase { + + private static final String PROPERTY_PREFIX = TCKConstants.TCK_PREFIX + "test.selenium."; + + public static final String BROWSER_START_COMMAND = PROPERTY_PREFIX + ".browser.cmd"; + public static final String BROWSER_URL = PROPERTY_PREFIX + ".browser.url"; + public static final String SERVER_HOST = PROPERTY_PREFIX + "server.host"; + public static final String SERVER_PORT = PROPERTY_PREFIX + "server.port"; + + public static final String DEFAULT_SERVER_HOST = "localhost"; + public static final String DEFAULT_SERVER_PORT = "8080"; + public static final String DEFAULT_BROWSER_START_COMMAND = "firefox"; + public static final String DEFAULT_BROWSER_URL = "http://localhost:8080/TCKPortal"; + + protected static Selenium selenium; + + @BeforeClass + public static void initSelenium() { + String serverHost = System.getProperty(SERVER_HOST, DEFAULT_SERVER_HOST); + int serverPort = Integer.valueOf(System.getProperty(SERVER_PORT, DEFAULT_SERVER_PORT)); + String browserStartCmd = System.getProperty(BROWSER_START_COMMAND, DEFAULT_BROWSER_START_COMMAND); + String browserUrl = System.getProperty(BROWSER_URL, DEFAULT_BROWSER_URL); + + selenium = new DefaultSelenium(serverHost, serverPort, browserStartCmd, browserUrl); + selenium.start(); + } + + @AfterClass + public static void stopSelenium() { + selenium.stop(); + selenium = null; + } + +} Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java 2012-06-24 19:30:17 UTC (rev 94) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/test/java/net/sf/jsf4portlets/tck/test/Chapter3_1Test.java 2012-06-24 20:10:21 UTC (rev 95) @@ -4,8 +4,8 @@ import javax.portlet.faces.GenericFacesPortlet; -import static org.junit.Assert.*; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.equalTo; +import static org.junit.Assert.assertThat; public class Chapter3_1Test { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alo...@us...> - 2012-06-24 20:33:54
|
Revision: 96 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=96&view=rev Author: alonsoft Date: 2012-06-24 20:33:48 +0000 (Sun, 24 Jun 2012) Log Message: ----------- jetty and selenium at launched during build Modified Paths: -------------- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java 2012-06-24 20:10:21 UTC (rev 95) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java 2012-06-24 20:33:48 UTC (rev 96) @@ -9,7 +9,7 @@ public class TCKFacesPortlet extends GenericFacesPortlet { - public static final String SEPARATOR = ":"; + public static final String SEPARATOR = "-"; private String testBeanName; private String testName; @@ -20,7 +20,7 @@ String portletName = portletConfig.getPortletName(); if (portletName.indexOf(SEPARATOR) < 0) { - throw new UnavailableException("Invalid portlet name."); + throw new UnavailableException("Invalid portlet name: " + portletName); } String[] parts = portletName.split(SEPARATOR); Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 20:10:21 UTC (rev 95) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 20:33:48 UTC (rev 96) @@ -55,7 +55,7 @@ <systemProperties> <systemProperty> <name>org.apache.pluto.embedded.portletIds</name> - <value>jsf4portlets:chapter3_2</value> + <value>jsf4portlets-chapter3_2</value> </systemProperty> </systemProperties> <stopPort>9966</stopPort> @@ -120,6 +120,7 @@ <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> @@ -132,19 +133,23 @@ <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>javax.portlet</groupId> <artifactId>portlet-api</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>net.sf.jsf4portlets</groupId> <artifactId>jsf4portlets-api</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>net.sf.jsf4portlets</groupId> @@ -163,15 +168,27 @@ <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>${jetty.version}</version> - <scope>test</scope> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.pluto</groupId> + <artifactId>pluto-container</artifactId> + <version>${pluto.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.pluto</groupId> <artifactId>pluto-portal-driver</artifactId> <version>${pluto.version}</version> - <scope>test</scope> + <scope>runtime</scope> </dependency> <dependency> + <groupId>org.apache.pluto</groupId> + <artifactId>pluto-portal-driver-impl</artifactId> + <version>${pluto.version}</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>com.bekk.boss</groupId> <artifactId>maven-jetty-pluto-embedded</artifactId> <version>1.0.1</version> Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml 2012-06-24 20:10:21 UTC (rev 95) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/src/main/webapp/WEB-INF/portlet.xml 2012-06-24 20:33:48 UTC (rev 96) @@ -6,7 +6,7 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet> - <portlet-name>jsf4portlets:chapter3_2</portlet-name> + <portlet-name>jsf4portlets-chapter3_2</portlet-name> <portlet-class>net.sf.jsf4portlets.tck.portlet.TCKFacesPortlet</portlet-class> <init-param> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alo...@us...> - 2012-06-24 19:30:24
|
Revision: 94 http://jsf4portlets.svn.sourceforge.net/jsf4portlets/?rev=94&view=rev Author: alonsoft Date: 2012-06-24 19:30:17 +0000 (Sun, 24 Jun 2012) Log Message: ----------- recovering missed code Modified Paths: -------------- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml Added Paths: ----------- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/common/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/common/TCKTestBean.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplication.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplicationFactory.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKViewHandler.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/ELResolveMap.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKExternalContext.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContext.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/ELUtil.java trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/StringUtil.java Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/TCKConstants.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,14 @@ +package net.sf.jsf4portlets.tck; + +import net.sf.jsf4portlets.BridgeConstants; + +public class TCKConstants { + public static final String TCK_PREFIX = BridgeConstants.J4P_PREFIX + "tck."; + + public static final String LIFECYCLE_ID = "TCKLifecycle"; + + public static final String TEST_BEAN_NAME = TCK_PREFIX + "testBeanName"; + public static final String TEST_NAME = TCK_PREFIX + "testName"; + + private TCKConstants() { } +} Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/common/TCKTestBean.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/common/TCKTestBean.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/common/TCKTestBean.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,17 @@ +package net.sf.jsf4portlets.tck.common; + +import javax.portlet.faces.Bridge; +import javax.portlet.faces.Bridge.BridgeRenderPolicy; + +public class TCKTestBean { + + private BridgeRenderPolicy renderPolicy = BridgeRenderPolicy.DEFAULT; + + public BridgeRenderPolicy getRenderPolicy() { + return renderPolicy; + } + + public void setRenderPolicy(BridgeRenderPolicy renderPolicy) { + this.renderPolicy = renderPolicy; + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplication.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplication.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplication.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,255 @@ +package net.sf.jsf4portlets.tck.faces.application; + +import javax.el.*; +import javax.faces.FacesException; +import javax.faces.application.Application; +import javax.faces.application.NavigationHandler; +import javax.faces.application.StateManager; +import javax.faces.application.ViewHandler; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.el.*; +import javax.faces.event.ActionListener; +import javax.faces.validator.Validator; +import java.util.Collection; +import java.util.Iterator; +import java.util.Locale; +import java.util.ResourceBundle; + +public class TCKApplication extends Application { + + private Application delegate; + private boolean addedViewHandler = false; + private TCKViewHandler tckViewHandler; + + public TCKApplication(Application delegate) { + this.delegate = delegate; + } + + @Override + public ActionListener getActionListener() { + return delegate.getActionListener(); + } + + @Override + public void setActionListener(ActionListener listener) { + delegate.setActionListener(listener); + } + + @Override + public Locale getDefaultLocale() { + return delegate.getDefaultLocale(); + } + + @Override + public void setDefaultLocale(Locale locale) { + delegate.setDefaultLocale(locale); + } + + @Override + public String getDefaultRenderKitId() { + return delegate.getDefaultRenderKitId(); + } + + @Override + public void setDefaultRenderKitId(String renderKitId) { + delegate.setDefaultRenderKitId(renderKitId); + } + + @Override + public String getMessageBundle() { + return delegate.getMessageBundle(); + } + + @Override + public void setMessageBundle(String bundle) { + delegate.setMessageBundle(bundle); + } + + @Override + public NavigationHandler getNavigationHandler() { + return delegate.getNavigationHandler(); + } + + @Override + public void setNavigationHandler(NavigationHandler handler) { + delegate.setNavigationHandler(handler); + } + + @Override + public PropertyResolver getPropertyResolver() { + return delegate.getPropertyResolver(); + } + + @Override + public void setPropertyResolver(PropertyResolver resolver) { + delegate.setPropertyResolver(resolver); + } + + @Override + public ResourceBundle getResourceBundle(FacesContext ctx, String name) { + return delegate.getResourceBundle(ctx, name); + } + + @Override + public VariableResolver getVariableResolver() { + return delegate.getVariableResolver(); + } + + @Override + public void setVariableResolver(VariableResolver resolver) { + delegate.setVariableResolver(resolver); + } + + @Override + public void addELResolver(ELResolver resolver) { + delegate.addELResolver(resolver); + } + + @Override + public ELResolver getELResolver() { + return delegate.getELResolver(); + } + + @Override + public ViewHandler getViewHandler() { + return delegate.getViewHandler(); + } + + @Override + public void setViewHandler(ViewHandler handler) { + if (!addedViewHandler) { + tckViewHandler = new TCKViewHandler(handler); + delegate.setViewHandler(tckViewHandler); + addedViewHandler = true; + } else { + delegate.setViewHandler(handler); + } + } + + @Override + public StateManager getStateManager() { + return delegate.getStateManager(); + } + + @Override + public void setStateManager(StateManager manager) { + delegate.setStateManager(manager); + } + + @Override + public void addComponent(String componentType, String componentClass) { + delegate.addComponent(componentType, componentClass); + } + + @Override + public UIComponent createComponent(String componentType) throws FacesException { + return delegate.createComponent(componentType); + } + + @Override + public UIComponent createComponent(ValueBinding componentBinding, FacesContext context, String componentType) throws FacesException { + return delegate.createComponent(componentBinding, context, componentType); + } + + @Override + public UIComponent createComponent(ValueExpression componentExpression, FacesContext context, String componentType) throws FacesException { + return delegate.createComponent(componentExpression, context, componentType); + } + + @Override + public Iterator<String> getComponentTypes() { + return delegate.getComponentTypes(); + } + + @Override + public void addConverter(String converterId, String converterClass) { + delegate.addConverter(converterId, converterClass); + } + + @Override + public void addConverter(Class targetClass, String converterClass) { + delegate.addConverter(targetClass, converterClass); + } + + @Override + public Converter createConverter(String converterId) { + return delegate.createConverter(converterId); + } + + @Override + public Converter createConverter(Class targetClass) { + return delegate.createConverter(targetClass); + } + + @Override + public Iterator<String> getConverterIds() { + return delegate.getConverterIds(); + } + + @Override + public Iterator<Class> getConverterTypes() { + return delegate.getConverterTypes(); + } + + @Override + public ExpressionFactory getExpressionFactory() { + return delegate.getExpressionFactory(); + } + + @Override + public Object evaluateExpressionGet(FacesContext context, String expression, Class expectedType) throws ELException { + return delegate.evaluateExpressionGet(context, expression, expectedType); + } + + @Override + public MethodBinding createMethodBinding(String ref, Class[] params) throws ReferenceSyntaxException { + return delegate.createMethodBinding(ref, params); + } + + @Override + public Iterator<Locale> getSupportedLocales() { + return delegate.getSupportedLocales(); + } + + @Override + public void setSupportedLocales(Collection<Locale> locales) { + delegate.setSupportedLocales(locales); + } + + @Override + public void addELContextListener(ELContextListener listener) { + delegate.addELContextListener(listener); + } + + @Override + public void removeELContextListener(ELContextListener listener) { + delegate.removeELContextListener(listener); + } + + @Override + public ELContextListener[] getELContextListeners() { + return delegate.getELContextListeners(); + } + + @Override + public void addValidator(String validatorId, String validatorClass) { + delegate.addValidator(validatorId, validatorClass); + } + + @Override + public Validator createValidator(String validatorId) throws FacesException { + return delegate.createValidator(validatorId); + } + + @Override + public Iterator<String> getValidatorIds() { + return delegate.getValidatorIds(); + } + + @Override + public ValueBinding createValueBinding(String ref) throws ReferenceSyntaxException { + return delegate.createValueBinding(ref); + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplicationFactory.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplicationFactory.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKApplicationFactory.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,28 @@ +package net.sf.jsf4portlets.tck.faces.application; + +import javax.faces.application.Application; +import javax.faces.application.ApplicationFactory; + +public class TCKApplicationFactory extends ApplicationFactory { + + private ApplicationFactory delegate; + private TCKApplication tckApplication; + + public TCKApplicationFactory(ApplicationFactory delegate) { + this.delegate = delegate; + } + + @Override + public Application getApplication() { + if (tckApplication == null) { + tckApplication = new TCKApplication(delegate.getApplication()); + } + return tckApplication; + } + + @Override + public void setApplication(Application application) { + delegate.setApplication(application); + this.tckApplication = null; + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKViewHandler.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKViewHandler.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/application/TCKViewHandler.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,18 @@ +package net.sf.jsf4portlets.tck.faces.application; + +import javax.faces.application.ViewHandler; +import javax.faces.application.ViewHandlerWrapper; + +public class TCKViewHandler extends ViewHandlerWrapper { + + private ViewHandler delegate; + + public TCKViewHandler(ViewHandler delegate) { + this.delegate = delegate; + } + + @Override + protected ViewHandler getWrapped() { + return delegate; + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/ELResolveMap.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/ELResolveMap.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/ELResolveMap.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,97 @@ +package net.sf.jsf4portlets.tck.faces.context; + +import net.sf.jsf4portlets.tck.util.ELUtil; +import net.sf.jsf4portlets.tck.util.StringUtil; + +import javax.portlet.PortletRequest; +import java.util.AbstractMap; +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +public class ELResolveMap<V> extends AbstractMap<String, V> { + + private Map<String, V> delegate; + private PortletRequest request; + private Class<V> valueType; + + public ELResolveMap(PortletRequest request, Map<String, V> delegate, Class<V> valueType) { + this.delegate = delegate; + this.request = request; + this.valueType = valueType; + } + + @Override + public int size() { + return delegate.size(); + } + + @Override + public boolean isEmpty() { + return delegate.isEmpty(); + } + + @Override + public boolean containsKey(Object o) { + return delegate.containsKey(o); + } + + @Override + public boolean containsValue(Object o) { + return delegate.containsValue(o); + } + + @Override + public V get(Object o) { + V result = delegate.get(o); + if (result == null) { + result = ELUtil.resolveTestBeanProperty(request, + StringUtil.capitalize((String) o), valueType); + } + return result; + } + + public V put(String s, V v) { + return delegate.put(s, v); + } + + @Override + public V remove(Object o) { + return delegate.remove(o); + } + + public void putAll(Map<? extends String, ? extends V> map) { + delegate.putAll(map); + } + + @Override + public void clear() { + delegate.clear(); + } + + @Override + public Set<String> keySet() { + return delegate.keySet(); + } + + @Override + public Collection<V> values() { + return delegate.values(); + } + + @Override + public Set<Entry<String, V>> entrySet() { + return delegate.entrySet(); + } + + @Override + public boolean equals(Object o) { + return delegate.equals(o); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } + +} Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKExternalContext.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKExternalContext.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKExternalContext.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,259 @@ +package net.sf.jsf4portlets.tck.faces.context; + +import net.sf.jsf4portlets.tck.util.ELUtil; +import net.sf.jsf4portlets.tck.util.StringUtil; + +import javax.faces.context.ExternalContext; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.Principal; +import java.util.Iterator; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + +public class TCKExternalContext extends ExternalContext { + + private ExternalContext delegate; + + private Map<String, String> initParameterMap; + + private PortletRequest request; + + public TCKExternalContext(PortletContext context, PortletRequest request, + PortletResponse response, ExternalContext delegate) { + this.delegate = delegate; + this.request = request; + } + + @Override + public void dispatch(String path) throws IOException { + delegate.dispatch(path); + } + + @Override + public String encodeActionURL(String url) { + return delegate.encodeActionURL(url); + } + + @Override + public String encodeNamespace(String name) { + return delegate.encodeNamespace(name); + } + + @Override + public String encodeResourceURL(String url) { + return delegate.encodeResourceURL(url); + } + + @Override + public Map<String, Object> getApplicationMap() { + return delegate.getApplicationMap(); + } + + @Override + public String getAuthType() { + return delegate.getAuthType(); + } + + @Override + public Object getContext() { + return delegate.getContext(); + } + + @Override + public String getInitParameter(String name) { + String value = delegate.getInitParameter(name); + if (value == null) { + value = ELUtil.resolveTestBeanProperty(request, + StringUtil.capitalize(name), String.class); + } + return value; + } + + @Override + public Map getInitParameterMap() { + if (initParameterMap == null) { + initParameterMap = new ELResolveMap<String>(request, delegate.getInitParameterMap(), String.class); + } + return initParameterMap; + } + + @Override + public String getRemoteUser() { + return delegate.getRemoteUser(); + } + + @Override + public Object getRequest() { + return delegate.getRequest(); + } + + @Override + public void setRequest(Object request) { + delegate.setRequest(request); + } + + @Override + public void setRequestCharacterEncoding(String encoding) throws UnsupportedEncodingException { + delegate.setRequestCharacterEncoding(encoding); + } + + @Override + public String getRequestContextPath() { + return delegate.getRequestContextPath(); + } + + @Override + public Map<String, Object> getRequestCookieMap() { + return delegate.getRequestCookieMap(); + } + + @Override + public Map<String, String> getRequestHeaderMap() { + return delegate.getRequestHeaderMap(); + } + + @Override + public Map<String, String[]> getRequestHeaderValuesMap() { + return delegate.getRequestHeaderValuesMap(); + } + + @Override + public Locale getRequestLocale() { + return delegate.getRequestLocale(); + } + + @Override + public Iterator<Locale> getRequestLocales() { + return delegate.getRequestLocales(); + } + + @Override + public Map<String, Object> getRequestMap() { + return delegate.getRequestMap(); + } + + @Override + public Map<String, String> getRequestParameterMap() { + return delegate.getRequestParameterMap(); + } + + @Override + public Iterator<String> getRequestParameterNames() { + return delegate.getRequestParameterNames(); + } + + @Override + public Map<String, String[]> getRequestParameterValuesMap() { + return delegate.getRequestParameterValuesMap(); + } + + @Override + public String getRequestPathInfo() { + return delegate.getRequestPathInfo(); + } + + @Override + public String getRequestServletPath() { + return delegate.getRequestServletPath(); + } + + @Override + public String getRequestCharacterEncoding() { + return delegate.getRequestCharacterEncoding(); + } + + @Override + public String getRequestContentType() { + return delegate.getRequestContentType(); + } + + @Override + public String getResponseCharacterEncoding() { + return delegate.getResponseCharacterEncoding(); + } + + @Override + public String getResponseContentType() { + return delegate.getResponseContentType(); + } + + @Override + public URL getResource(String path) throws MalformedURLException { + return delegate.getResource(path); + } + + @Override + public InputStream getResourceAsStream(String path) { + return delegate.getResourceAsStream(path); + } + + @Override + public Set<String> getResourcePaths(String path) { + return delegate.getResourcePaths(path); + } + + @Override + public Object getResponse() { + return delegate.getResponse(); + } + + @Override + public void setResponse(Object response) { + delegate.setResponse(response); + } + + @Override + public void setResponseCharacterEncoding(String encoding) { + delegate.setResponseCharacterEncoding(encoding); + } + + @Override + public Object getSession(boolean create) { + return delegate.getSession(create); + } + + @Override + public Map<String, Object> getSessionMap() { + return delegate.getSessionMap(); + } + + @Override + public Principal getUserPrincipal() { + return delegate.getUserPrincipal(); + } + + @Override + public boolean isUserInRole(String role) { + return delegate.isUserInRole(role); + } + + @Override + public void log(String message) { + delegate.log(message); + } + + @Override + public void log(String message, Throwable exception) { + delegate.log(message, exception); + } + + @Override + public void redirect(String url) throws IOException { + delegate.redirect(url); + } + + public void release() { + delegate = null; + initParameterMap = null; + request = null; + } + +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContext.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContext.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContext.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,141 @@ +package net.sf.jsf4portlets.tck.faces.context; + +import javax.el.ELContext; +import javax.faces.application.Application; +import javax.faces.application.FacesMessage; +import javax.faces.component.UIViewRoot; +import javax.faces.context.ExternalContext; +import javax.faces.context.FacesContext; +import javax.faces.context.ResponseStream; +import javax.faces.context.ResponseWriter; +import javax.faces.render.RenderKit; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletResponse; +import java.util.Iterator; + +public class TCKFacesContext extends FacesContext { + + private TCKExternalContext externalContext; + private FacesContext delegate; + + public TCKFacesContext(FacesContext delegate, PortletContext context, + PortletRequest request, PortletResponse response) { + this.delegate = delegate; + + externalContext = new TCKExternalContext(context, request, + response, delegate.getExternalContext()); + } + + @Override + public Application getApplication() { + return delegate.getApplication(); + } + + @Override + public Iterator<String> getClientIdsWithMessages() { + return delegate.getClientIdsWithMessages(); + } + + @Override + public ELContext getELContext() { + return delegate.getELContext(); + } + + @Override + public ExternalContext getExternalContext() { + return externalContext; + } + + @Override + public FacesMessage.Severity getMaximumSeverity() { + return delegate.getMaximumSeverity(); + } + + @Override + public Iterator<FacesMessage> getMessages() { + return delegate.getMessages(); + } + + @Override + public Iterator<FacesMessage> getMessages(String clientId) { + return delegate.getMessages(clientId); + } + + @Override + public RenderKit getRenderKit() { + return delegate.getRenderKit(); + } + + @Override + public boolean getRenderResponse() { + return delegate.getRenderResponse(); + } + + @Override + public boolean getResponseComplete() { + return delegate.getResponseComplete(); + } + + @Override + public ResponseStream getResponseStream() { + return delegate.getResponseStream(); + } + + @Override + public void setResponseStream(ResponseStream responseStream) { + delegate.setResponseStream(responseStream); + } + + @Override + public ResponseWriter getResponseWriter() { + return delegate.getResponseWriter(); + } + + @Override + public void setResponseWriter(ResponseWriter responseWriter) { + delegate.setResponseWriter(responseWriter); + } + + @Override + public UIViewRoot getViewRoot() { + return delegate.getViewRoot(); + } + + @Override + public void setViewRoot(UIViewRoot root) { + delegate.setViewRoot(root); + } + + @Override + public void addMessage(String clientId, FacesMessage message) { + delegate.addMessage(clientId, message); + } + + @Override + public void release() { + externalContext.release(); + externalContext = null; + + delegate.release(); + delegate = null; + } + + @Override + public void renderResponse() { + delegate.renderResponse(); + } + + @Override + public void responseComplete() { + delegate.responseComplete(); + } + + public static FacesContext getCurrentInstance() { + return FacesContext.getCurrentInstance(); + } + + public static void setCurrentInstance(FacesContext context) { + FacesContext.setCurrentInstance(context); + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/context/TCKFacesContextFactory.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,33 @@ +package net.sf.jsf4portlets.tck.faces.context; + +import javax.faces.FacesException; +import javax.faces.context.FacesContext; +import javax.faces.context.FacesContextFactory; +import javax.faces.lifecycle.Lifecycle; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletResponse; + +public class TCKFacesContextFactory extends FacesContextFactory { + + private FacesContextFactory delegate; + + public TCKFacesContextFactory(FacesContextFactory delegate) { + this.delegate = delegate; + } + + @Override + public FacesContext getFacesContext(Object context, Object request, Object response, Lifecycle lifecycle) + throws FacesException { + if (!(context instanceof PortletContext)) { + return delegate.getFacesContext(context, request, response, lifecycle); + } + + PortletContext portletContext = (PortletContext) context; + PortletRequest portletRequest = (PortletRequest) request; + PortletResponse portletResponse = (PortletResponse) response; + FacesContext facesContext = delegate.getFacesContext(context, request, response, lifecycle); + + return new TCKFacesContext(facesContext, portletContext, portletRequest, portletResponse); + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycle.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,40 @@ +package net.sf.jsf4portlets.tck.faces.lifecycle; + +import javax.faces.FacesException; +import javax.faces.context.FacesContext; +import javax.faces.event.PhaseListener; +import javax.faces.lifecycle.Lifecycle; + +public class TCKLifecycle extends Lifecycle { + + private Lifecycle delegate; + + public TCKLifecycle(Lifecycle delegate) { + this.delegate = delegate; + } + + @Override + public void addPhaseListener(PhaseListener listener) { + delegate.addPhaseListener(listener); + } + + @Override + public void execute(FacesContext context) throws FacesException { + delegate.execute(context); + } + + @Override + public PhaseListener[] getPhaseListeners() { + return delegate.getPhaseListeners(); + } + + @Override + public void removePhaseListener(PhaseListener listener) { + delegate.removePhaseListener(listener); + } + + @Override + public void render(FacesContext context) throws FacesException { + delegate.render(context); + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/faces/lifecycle/TCKLifecycleFactory.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,34 @@ +package net.sf.jsf4portlets.tck.faces.lifecycle; + +import net.sf.jsf4portlets.tck.TCKConstants; + +import javax.faces.lifecycle.Lifecycle; +import javax.faces.lifecycle.LifecycleFactory; +import java.util.Iterator; + +public class TCKLifecycleFactory extends LifecycleFactory { + + private LifecycleFactory delegate; + + public TCKLifecycleFactory(LifecycleFactory delegate) { + this.delegate = delegate; + + Lifecycle defaultLifecycle = delegate.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE); + addLifecycle(TCKConstants.LIFECYCLE_ID, new TCKLifecycle(defaultLifecycle)); + } + + @Override + public void addLifecycle(String lifecycleId, Lifecycle lifecycle) { + delegate.addLifecycle(lifecycleId, lifecycle); + } + + @Override + public Lifecycle getLifecycle(String lifecycleId) { + return delegate.getLifecycle(lifecycleId); + } + + @Override + public Iterator<String> getLifecycleIds() { + return delegate.getLifecycleIds(); + } +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/portlet/TCKFacesPortlet.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,65 @@ +package net.sf.jsf4portlets.tck.portlet; + +import net.sf.jsf4portlets.tck.TCKConstants; + +import javax.portlet.*; +import javax.portlet.faces.Bridge; +import javax.portlet.faces.GenericFacesPortlet; +import java.io.IOException; + +public class TCKFacesPortlet extends GenericFacesPortlet { + + public static final String SEPARATOR = ":"; + + private String testBeanName; + private String testName; + + @Override + public void init(PortletConfig portletConfig) throws PortletException { + super.init(portletConfig); + + String portletName = portletConfig.getPortletName(); + if (portletName.indexOf(SEPARATOR) < 0) { + throw new UnavailableException("Invalid portlet name."); + } + + String[] parts = portletName.split(SEPARATOR); + testBeanName = parts[1]; + if (parts.length > 2) { + testName = parts[2]; + } else { + testName = parts[1]; + if (!testName.endsWith("Test")) { + testName = testName.concat("Test"); + } + } + } + + @Override + public void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException { + initTestRequest(request); + super.doDispatch(request, response); + } + + @Override + public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException { + initTestRequest(request); + super.processAction(request, response); + } + + @Override + public Bridge getFacesBridge(PortletRequest request, PortletResponse response) throws PortletException { + initTestRequest(request); + return super.getFacesBridge(request, response); + } + + public String getTestName() { + return testName; + } + + private void initTestRequest(PortletRequest request) { + request.setAttribute(TCKConstants.TEST_BEAN_NAME, testBeanName); + request.setAttribute(TCKConstants.TEST_NAME, testName); + } + +} \ No newline at end of file Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/ELUtil.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/ELUtil.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/ELUtil.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,35 @@ +package net.sf.jsf4portlets.tck.util; + +import net.sf.jsf4portlets.tck.TCKConstants; + +import javax.el.ELException; +import javax.el.ExpressionFactory; +import javax.el.ValueExpression; +import javax.faces.FacesException; +import javax.faces.context.FacesContext; +import javax.portlet.PortletRequest; + +public final class ELUtil { + + public static <T> T resolveTestBeanProperty(PortletRequest request, String property, Class<T> type) { + FacesContext context = FacesContext.getCurrentInstance(); + if (context == null) { + throw new IllegalStateException("No FacesContext!"); + } + + String testBeanName = (String) request.getAttribute(TCKConstants.TEST_BEAN_NAME); + StringBuilder exp = new StringBuilder(); + exp.append("#{").append(testBeanName).append(".").append(property).append("}"); + + ExpressionFactory ef = context.getApplication().getExpressionFactory(); + ValueExpression ve = ef.createValueExpression(context.getELContext(), exp.toString(), type); + try { + return type.cast(ve.getValue(context.getELContext())); + } catch (ELException e) { + throw new FacesException(e); + } + } + + private ELUtil() { } + +} Added: trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/StringUtil.java =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/StringUtil.java (rev 0) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-core/src/main/java/net/sf/jsf4portlets/tck/util/StringUtil.java 2012-06-24 19:30:17 UTC (rev 94) @@ -0,0 +1,50 @@ +package net.sf.jsf4portlets.tck.util; + +public final class StringUtil { + + public static String capitalize(String str) { + if (str == null || str.length() == 0) { + return str; + } + + String[] parts = str.split("_"); + for (int i = 0;i < parts.length;i++) { + parts[i] = capitalizeWord(parts[i]); + } + return join(parts); + } + + public static String capitalizeWord(String str) { + if (str == null || str.length() == 0) { + return str; + } + + str = str.toLowerCase(); + return new StringBuilder() + .append(Character.toUpperCase(str.charAt(0))) + .append(str.substring(1)) + .toString(); + } + + public static String join(String... parts) { + return join(null, parts); + } + + public static String join(String separator, String... parts) { + if (parts == null) { + return null; + } + + StringBuilder str = new StringBuilder(); + for (int i = 0;i < parts.length;i++) { + if (separator != null && i > 0) { + str.append(separator); + } + str.append(parts[i]); + } + return str.toString(); + } + + private StringUtil() { } + +} Modified: trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml =================================================================== --- trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 18:06:57 UTC (rev 93) +++ trunk/jsf4portlets-tck/jsf4portlets-tck-webapp/pom.xml 2012-06-24 19:30:17 UTC (rev 94) @@ -59,6 +59,30 @@ <webXml>${project.build.directory}/pluto-resources/web.xml</webXml> </configuration> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>selenium-maven-plugin</artifactId> + <version>2.3</version> + <executions> + <execution> + <id>start-selenium</id> + <phase>pre-integration-test</phase> + <goals> + <goal>start-server</goal> + </goals> + <configuration> + <background>true</background> + </configuration> + </execution> + <execution> + <id>stop-selenium</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop-server</goal> + </goals> + </execution> + </executions> + </plugin> </plugins> </build> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |