1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import org.htmlunit.SimpleWebTestCase;
18 import org.junit.jupiter.api.Test;
19
20
21
22
23
24
25
26 public class BaseFrameElementTest extends SimpleWebTestCase {
27
28
29
30
31 @Test
32 public void removeIFrameAndAddAgain() throws Exception {
33 final String html = DOCTYPE_HTML
34 + "<html><head>\n"
35 + "<script>\n"
36 + " function test() {\n"
37 + " var frag1 = document.createDocumentFragment();\n"
38 + " var div = document.getElementById('myDiv');\n"
39 + " div.innerHTML = \"<iframe id='iframe'></iframe>\";\n"
40 + " var iframe1 = document.getElementById('iframe');\n"
41 + " frag1.appendChild(iframe1);\n"
42 + " var frag2 = frag1.cloneNode(true);\n"
43 + " document.body.appendChild(frag2);\n"
44 + " }\n"
45 + "</script>\n"
46 + "</head><body onload='test()'>\n"
47 + " <div id='myDiv'/>\n"
48 + "</body></html>";
49
50 final HtmlPage page = loadPageWithAlerts(html);
51 final BaseFrameElement frame = page.getHtmlElementById("iframe");
52 final BaseFrameElement frame2 = frame.getEnclosedWindow().getFrameElement();
53 final DomNode parent1 = frame.getParentNode();
54 final DomNode parent2 = frame2.getParentNode();
55 assertEquals(parent1.getClass().getName(), parent2.getClass().getName());
56 assertEquals(frame.hashCode(), frame2.hashCode());
57 }
58 }