[
https://issues.apache.org/jira/browse/MYFACES-4498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17637817#comment-17637817
]
Werner Punz commented on MYFACES-4498:
--------------------------------------
Error is reproducible with following unit test
```typescript
it("head replacement must work
(https://issues.apache.org/jira/browse/MYFACES-4498 and TCK Issue 4345IT)",
function(done) {
DQ.byId("cmd_complex_resource2").click();
this.respond(XmlResponses.HEAD_REPLACE);
let headHTML = document.head.innerHTML;
//failing now, no elements in the html head after respond!!!
expect(headHTML.indexOf("href=\"../../../xhrCore/fixtures/addedViewHead2.css\"")).not.eq(-1);
expect(DQ$("head
link[rel='stylesheet'][href='../../../xhrCore/fixtures/addedViewHead2.css']").length).to.eq(1);
expect(headHTML.indexOf("../../../xhrCore/fixtures/addedViewHead3.js")).not.eq(-1);
})
static HEAD_REPLACE = `
<partial-response id="j_id__v_0"><changes><update id="jakarta.faces.ViewHead">
<![CDATA[
<head>
<script type="text/javascript"
src="../../../xhrCore/fixtures/addedViewHead3.js"></script>
<link rel="stylesheet"
href="../../../xhrCore/fixtures/addedViewHead2.css"></link>
<script type="text/javascript">
setTimeout(() =>
document.getElementById('resource_area_1').innerHTML = 'booga', 1000);
</script>
</head>
]]>
</update>
</changes>
</partial-response>
`
```
> TCK: Issue 4345 : Head Element Not Updated As Expected via Ajax Call
> --------------------------------------------------------------------
>
> Key: MYFACES-4498
> URL: https://issues.apache.org/jira/browse/MYFACES-4498
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 4.0.0-RC2
> Reporter: Volodymyr Siedlecki
> Assignee: Werner Punz
> Priority: Major
> Attachments: test-faces22-ajax.war
>
>
> Test Code:
> [https://github.com/jakartaee/faces/blob/4.0.1/tck/faces22/ajax/src/test/java/ee/jakarta/tck/faces/test/servlet30/ajax/Issue4345IT.java#L47]
> [https://github.com/jakartaee/faces/blob/4.0.1/tck/faces22/ajax/src/main/webapp/issue4345result.xhtml]
>
> [https://github.com/jakartaee/faces/blob/4.0.1/tck/faces22/ajax/src/test/java/ee/jakarta/tck/faces/test/servlet30/ajax/Issue4345IT.java#L47]
> This test was created for ensure HTML is only escaped twice ([Issue
> 4345|https://github.com/eclipse-ee4j/mojarra/issues/4345). However, MyFaces
> is encountering two problems with this test.
> Firstly, here is the Ajax response and the updated HTML:
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <partial-response id="j_id__v_0">
> <changes>
> <update id="jakarta.faces.ViewRoot">
> <![CDATA[<!--
> Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights
> reserved.
>
> 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
>
> --><!DOCTYPE html>
> <html xmlns="http://www.w3.org/1999/xhtml"><head>
> <!-- h:outputStylesheet does not support params in the URL,
> so generate a similar link manually. -->
> <!--<h:outputStylesheet
> name="issue4345.css?firstParam=1&secondParam=2" />-->
> <link type="text/css" rel="stylesheet"
> href="/test-faces22-ajax/jakarta.faces.resource/issue4345.css.xhtml?firstParam=1&secondParam=2"
> /><script type="text/javascript"
> src="/test-faces22-ajax/jakarta.faces.resource/issue4345.js.xhtml?firstParam=1&secondParam=2"></script></head><body></body>
> </html>]]>
> </update>
> <update id="j_id__v_0:jakarta.faces.ViewState:1">
> <![CDATA[ZmY2MjMxN2MxYTY3OTg1MTAwMDAwMDA0]]>
> </update>
> </changes>
> </partial-response> {code}
> The HTML is then set as :
> {code:java}
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <style rel="stylesheet" type="text/css">@import
> url('/test-faces22-ajax/jakarta.faces.resource/issue4345.css.xhtml?firstParam=1&secondParam=2');</style>
> </head>
> <body></body>
> </html>
> {code}
> 1) We change from a link (type/css ) to a style tag that imports the URL?
> Should that occur? The JavaScript in issue4345result.xhtml specifically
> looks for a link element.
> 2) The script tags *are not appended* to the head element, but I do see
> network requests for them. Additionally, the scripts do run (confirmed by the
> console: "issue4345.js loaded." ).
> This fails on both the RC2 scripts and the new TypeScript code.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)