package org.richfaces.showcase; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.eu.ingwar.tools.arquillian.extension.suite.annotations.ArquillianSuiteDeployment; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.OverProtocol; import org.jboss.arquillian.container.test.api.RunAsClient; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.runner.RunWith; @RunAsClient @RunWith(Arquillian.class) @ArquillianSuiteDeployment public class AbstractShowcaseTest { @ArquillianResource protected URL contextRoot; protected static final Boolean runInPortalEnv = Boolean.getBoolean("runInPortalEnv"); @Deployment(testable = false) @OverProtocol("Servlet 3.0") public static WebArchive deploy() { File warFile2deploy; if (runInPortalEnv) { warFile2deploy = new File("target/showcase-portlet.war"); } else { warFile2deploy = new File("target/richfaces-showcase-" + System.getProperty("container.classifier") + ".war"); } WebArchive war = ShrinkWrap.createFromZipFile(WebArchive.class, warFile2deploy); return war; } protected String getAdditionToContextRoot() { return String.format("richfaces/component-sample.jsf?skin=blueSky&demo=%s&sample=%s", getDemoName(), getSampleName()); } protected URL getContextRoot() { String isHTTPTesting = System.getenv("HTTPS_TESTING"); if (isHTTPTesting != null && isHTTPTesting.equals("true")) { try { URL httpsUrl = new URL(contextRoot.toExternalForm().replace("http", "https").replace("8080", "8443")); return httpsUrl; } catch (MalformedURLException e) { // it is not malformed URL for sure } } return this.contextRoot; } protected String getDemoName() { // demo name - takes last part of package name String demoName = this.getClass().getPackage().getName(); return demoName.substring(demoName.lastIndexOf(".") + 1); } protected String getSampleName() { // sample name - removes ITest- prefix from class name and uncapitalize // first letter String sampleName = this.getClass().getSimpleName().substring(5); sampleName = ("" + sampleName.charAt(0)).toLowerCase() + sampleName.substring(1); return sampleName; } }