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.htmlunit.junit.BrowserRunner;
19 import org.junit.Test;
20 import org.junit.runner.RunWith;
21
22
23
24
25
26
27 @RunWith(BrowserRunner.class)
28 public class BaseFrameElementTest extends SimpleWebTestCase {
29
30
31
32
33 @Test
34 public void removeIFrameAndAddAgain() throws Exception {
35 final String html = DOCTYPE_HTML
36 + "<html><head>\n"
37 + "<script>\n"
38 + " function test() {\n"
39 + " var frag1 = document.createDocumentFragment();\n"
40 + " var div = document.getElementById('myDiv');\n"
41 + " div.innerHTML = \"<iframe id='iframe'></iframe>\";\n"
42 + " var iframe1 = document.getElementById('iframe');\n"
43 + " frag1.appendChild(iframe1);\n"
44 + " var frag2 = frag1.cloneNode(true);\n"
45 + " document.body.appendChild(frag2);\n"
46 + " }\n"
47 + "</script>\n"
48 + "</head><body onload='test()'>\n"
49 + " <div id='myDiv'/>\n"
50 + "</body></html>";
51
52 final HtmlPage page = loadPageWithAlerts(html);
53 final BaseFrameElement frame = page.getHtmlElementById("iframe");
54 final BaseFrameElement frame2 = frame.getEnclosedWindow().getFrameElement();
55 final DomNode parent1 = frame.getParentNode();
56 final DomNode parent2 = frame2.getParentNode();
57 assertEquals(parent1.getClass().getName(), parent2.getClass().getName());
58 assertEquals(frame.hashCode(), frame2.hashCode());
59 }
60 }