Skip to content

Commit

Permalink
IT that text/javascript and text/css are omitted in HTML5 but not HTML4
Browse files Browse the repository at this point in the history
  • Loading branch information
BalusC committed Apr 3, 2021
1 parent 805a7df commit 98b94a9
Show file tree
Hide file tree
Showing 8 changed files with 286 additions and 0 deletions.
37 changes: 37 additions & 0 deletions test2/faces40/resources/pom.xml
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2021 Contributors to Eclipse Foundation.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->

<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">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.glassfish.mojarra.faces40</groupId>
<artifactId>pom</artifactId>
<version>4.0.0-SNAPSHOT</version>
</parent>

<artifactId>resources</artifactId>
<packaging>war</packaging>

<name>Mojarra ${project.version} - Test - Faces 4.0 - resources</name>

<build>
<finalName>test-faces40-resources</finalName>
</build>
</project>
31 changes: 31 additions & 0 deletions test2/faces40/resources/src/main/webapp/WEB-INF/faces-config.xml
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2021 Contributors to Eclipse Foundation.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<faces-config
xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-facesconfig_3_0.xsd"
version="3.0"
>
<faces-config-extension>
<facelets-processing>
<file-extension>.xhtml</file-extension>
<process-as>xhtml</process-as>
</facelets-processing>
</faces-config-extension>
</faces-config>
54 changes: 54 additions & 0 deletions test2/faces40/resources/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2021 Contributors to Eclipse Foundation.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<web-app
xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
>
<context-param>
<param-name>jakarta.faces.PROJECT_STAGE</param-name>
<param-value>${webapp.projectStage}</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>${webapp.partialStateSaving}</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.STATE_SAVING_METHOD</param-name>
<param-value>${webapp.stateSavingMethod}</param-value>
</context-param>
<context-param>
<param-name>jakarta.faces.SERIALIZE_SERVER_STATE</param-name>
<param-value>${webapp.serializeServerState}</param-value>
</context-param>

<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>spec1565IT-HTML5.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Empty file.
Empty file.
33 changes: 33 additions & 0 deletions test2/faces40/resources/src/main/webapp/spec1565IT-HTML4.xhtml
@@ -0,0 +1,33 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Copyright (c) 2021 Contributors to Eclipse Foundation.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<html
xmlns:f="jakarta.faces.core"
xmlns:h="jakarta.faces.html"
>
<h:head>
<h:outputStylesheet name="style.css" />
<h:outputScript name="script.js" />

<h:outputStylesheet>.inline { background: pink; }</h:outputStylesheet>
<h:outputScript>var inline = "pink";</h:outputScript>
</h:head>
<h:body>
<h:messages />
</h:body>
</html>
33 changes: 33 additions & 0 deletions test2/faces40/resources/src/main/webapp/spec1565IT-HTML5.xhtml
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<!--
Copyright (c) 2021 Contributors to Eclipse Foundation.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<html
xmlns:f="jakarta.faces.core"
xmlns:h="jakarta.faces.html"
>
<h:head>
<h:outputStylesheet name="style.css" />
<h:outputScript name="script.js" />

<h:outputStylesheet>.inline { background: pink; }</h:outputStylesheet>
<h:outputScript>var inline = "pink";</h:outputScript>
</h:head>
<h:body>
<h:messages />
</h:body>
</html>
@@ -0,0 +1,98 @@
/*
* Copyright (c) 2021 Contributors to Eclipse Foundation.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/

package com.sun.faces.test.servlet50.resources;

import static java.lang.System.getProperty;
import static org.jboss.shrinkwrap.api.ShrinkWrap.create;
import static org.junit.Assert.assertEquals;

import java.io.File;
import java.net.URL;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.importer.ZipImporter;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

@RunWith(Arquillian.class)
public class Spec1565IT {

@ArquillianResource
private URL webUrl;
private WebClient webClient;

@Deployment(testable = false)
public static WebArchive createDeployment() {
return create(ZipImporter.class, getProperty("finalName") + ".war")
.importFrom(new File("target/" + getProperty("finalName") + ".war"))
.as(WebArchive.class);
}

@Before
public void setUp() {
webClient = new WebClient();
}

@After
public void tearDown() {
webClient.close();
}

@Test
public void testHtml5() throws Exception {
HtmlPage page = webClient.getPage(webUrl + "spec1565IT-HTML5.xhtml");

for (DomElement element : page.getElementsByTagName("script")) {
assertEquals("Script element has no type attribute", "", element.getAttribute("type"));
}

for (DomElement element : page.getElementsByTagName("link")) {
assertEquals("Link element has no type attribute", "", element.getAttribute("type"));
}

for (DomElement element : page.getElementsByTagName("style")) {
assertEquals("Style element has no type attribute", "", element.getAttribute("type"));
}
}

@Test
public void testHtml4() throws Exception {
HtmlPage page = webClient.getPage(webUrl + "spec1565IT-HTML4.xhtml");

for (DomElement element : page.getElementsByTagName("script")) {
assertEquals("Script element has a type='text/javascript' attribute", "text/javascript", element.getAttribute("type"));
}

for (DomElement element : page.getElementsByTagName("link")) {
assertEquals("Link element has a type='text/css' attribute", "text/css", element.getAttribute("type"));
}

for (DomElement element : page.getElementsByTagName("style")) {
assertEquals("Style element has a type='text/css' attribute", "text/css", element.getAttribute("type"));
}
}

}

0 comments on commit 98b94a9

Please sign in to comment.