Skip to content

Commit

Permalink
fix failing CombinedResourceHandlerIT since removal of JSF 3.0 support
Browse files Browse the repository at this point in the history
  • Loading branch information
BalusC committed May 12, 2024
1 parent 03f34d4 commit d204707
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 30 deletions.
50 changes: 22 additions & 28 deletions src/test/java/org/omnifaces/test/OmniFacesIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
Expand Down Expand Up @@ -60,18 +59,17 @@ public abstract class OmniFacesIT {

@BeforeAll
public void setup() {
String arquillianBrowser = System.getProperty("arquillian.browser");

switch (arquillianBrowser) {
case "chrome":
WebDriverManager.chromedriver().setup();
ChromeDriver chrome = new ChromeDriver(new ChromeOptions().addArguments("--no-sandbox", "--headless"));
chrome.setLogLevel(Level.INFO);
browser = chrome;
break;
default:
throw new UnsupportedOperationException("arquillian.browser='" + arquillianBrowser + "' is not yet supported");
var arquillianBrowser = System.getProperty("arquillian.browser");

browser = switch (arquillianBrowser) {
case "chrome" -> {
WebDriverManager.chromedriver().setup();
var chrome = new ChromeDriver(new ChromeOptions().addArguments("--no-sandbox", "--headless"));
chrome.setLogLevel(Level.INFO);
yield chrome;
}
default -> throw new UnsupportedOperationException("arquillian.browser='" + arquillianBrowser + "' is not yet supported");
};

PageFactory.initElements(browser, this);
}
Expand All @@ -95,11 +93,11 @@ protected void open(String pageName) {
}

protected String openNewTab(WebElement elementWhichOpensNewTab) {
Set<String> oldTabs = browser.getWindowHandles();
var oldTabs = browser.getWindowHandles();
elementWhichOpensNewTab.click();
Set<String> newTabs = new HashSet<>(browser.getWindowHandles());
newTabs.removeAll(oldTabs); // Just to be sure; it's nowhere in Selenium API specified whether tabs are ordered.
String newTab = newTabs.iterator().next();
var newTab = newTabs.iterator().next();
browser.switchTo().window(newTab);
return newTab;
}
Expand Down Expand Up @@ -133,7 +131,7 @@ protected void guardHttp(Runnable action) {
}

protected void guardAjax(Runnable action) {
String uuid = UUID.randomUUID().toString();
var uuid = UUID.randomUUID().toString();
executeScript("window.$ajax=true;(window.jsf?jsf:faces).ajax.addOnEvent(data=>{if(data.status=='complete')window.$ajax='" + uuid + "'})");
action.run();
waitUntil(() -> executeScript("return window.$ajax=='" + uuid + "' || (!window.$ajax && document.readyState=='complete')")); // window.$ajax will be falsey when ajax redirect has occurred.
Expand Down Expand Up @@ -195,7 +193,7 @@ protected static String stripJsessionid(String url) {

protected static String stripHostAndJsessionid(String url) {
try {
URIBuilder builder = new URIBuilder(url);
var builder = new URIBuilder(url);
builder.setScheme(null);
builder.setHost(null);
return stripJsessionid(builder.toString());
Expand All @@ -205,10 +203,6 @@ protected static String stripHostAndJsessionid(String url) {
}
}

protected static boolean isFaces4Used() {
return System.getProperty("profile.id").endsWith("4");
}

protected static boolean isLibertyUsed() {
return System.getProperty("profile.id").startsWith("liberty-");
}
Expand All @@ -229,17 +223,17 @@ protected static class ArchiveBuilder {
private boolean primeFacesSet;

private <T extends OmniFacesIT> ArchiveBuilder(Class<T> testClass) {
String packageName = testClass.getPackage().getName();
String className = testClass.getSimpleName();
String warName = className + ".war";
var packageName = testClass.getPackage().getName();
var className = testClass.getSimpleName();
var warName = className + ".war";

archive = create(WebArchive.class, warName)
.addPackage(packageName)
.deleteClass(testClass)
.addAsWebInfResource("WEB-INF/beans.xml", "beans.xml")
.addAsLibrary(new File(System.getProperty("omnifaces.jar")));

String warLibraries = System.getProperty("war.libraries");
var warLibraries = System.getProperty("war.libraries");

if (warLibraries != null) {
archive.addAsLibraries(Maven.resolver().resolve(warLibraries.split("\\s*,\\s*")).withTransitivity().asFile());
Expand All @@ -250,7 +244,7 @@ private <T extends OmniFacesIT> ArchiveBuilder(Class<T> testClass) {

private void addWebResources(File root, String directory) {
for (File file : root.listFiles()) {
String path = directory + "/" + file.getName();
var path = directory + "/" + file.getName();

if (file.isFile()) {
archive.addAsWebResource(file, path);
Expand Down Expand Up @@ -306,7 +300,7 @@ public ArchiveBuilder withPrimeFaces() {
throw new IllegalStateException("There can be only one PrimeFaces library");
}

MavenResolverSystem maven = Maven.resolver();
var maven = Maven.resolver();
archive.addAsLibraries(maven.resolve("org.primefaces:primefaces:jar:jakarta:" + System.getProperty("primefaces.version")).withTransitivity().asFile());
primeFacesSet = true;
return this;
Expand All @@ -325,7 +319,7 @@ public WebArchive createDeployment() {
}
}

public static enum FacesConfig {
public enum FacesConfig {
basic,
withFullAjaxExceptionHandler,
withCombinedResourceHandler,
Expand All @@ -336,7 +330,7 @@ public static enum FacesConfig {
withViewResourceHandler;
}

public static enum WebXml {
public enum WebXml {
basic,
distributable,
withDevelopmentStage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

public class CombinedResourceHandlerIT extends OmniFacesIT {

private static final String HEAD_COMBINED_SCRIPT_NAME = serializeURLSafe("omnifaces:omnifaces.js|jakarta.faces:" + (isFaces4Used() ? "faces.js" : "jsf.js") + "|headWithTarget.js|bodyWithTargetHead.js");
private static final String HEAD_COMBINED_SCRIPT_NAME = serializeURLSafe("omnifaces:omnifaces.js|jakarta.faces:faces.js|headWithTarget.js|bodyWithTargetHead.js");
private static final String DEFERRED_COMBINED_SCRIPT_NAME = serializeURLSafe("deferredInHead.js|deferredInBody.js");
private static final String HEAD_COMBINED_STYLESHEET_NAME = serializeURLSafe("main.css|screen.css");
private static final String DEFERRED_COMBINED_SCRIPT_INTEGRITY = "sha384-O+BEiFMIrNp5+3EV1U/ZpJg3T+qlYYvqTsF0UIsd5swios9XPYrMkDuxHxvtkBlx";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
>
<h:head>
<h:outputScript>var i = 0;</h:outputScript>
<h:outputScript library="jakarta.faces" name="#{combinedResourceHandlerITBean.facesJsAvailable ? 'faces.js' : 'jsf.js'}" target="head" />
<h:outputScript library="jakarta.faces" name="faces.js" target="head" />
<h:outputScript library="omnifaces" name="omnifaces.js" target="head" />
<h:outputScript name="headWithTarget.js" target="head" />
<h:outputScript name="headWithoutTarget.js" />
Expand Down

0 comments on commit d204707

Please sign in to comment.