1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.svg;
16
17 import org.htmlunit.WebDriverTestCase;
18 import org.htmlunit.html.DomElement;
19 import org.htmlunit.html.HtmlPage;
20 import org.htmlunit.html.HtmlScript;
21 import org.htmlunit.junit.annotation.Alerts;
22 import org.htmlunit.junit.annotation.HtmlUnitNYI;
23 import org.junit.jupiter.api.Test;
24 import org.openqa.selenium.WebDriver;
25 import org.openqa.selenium.htmlunit.HtmlUnitDriver;
26
27
28
29
30
31
32
33
34 public class SvgScriptTest extends WebDriverTestCase {
35
36
37
38
39 @Test
40 @Alerts("[object SVGScriptElement]")
41 public void simpleScriptable() throws Exception {
42 final String html = DOCTYPE_HTML
43 + "<html><head>\n"
44 + "<script>\n"
45 + LOG_TITLE_FUNCTION
46 + " function test() {\n"
47 + " log(document.getElementById('myId'));\n"
48 + " }\n"
49 + "</script>\n"
50 + "</head><body onload='test()'>\n"
51 + " <svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
52 + " <script id='myId'></script>\n"
53 + " </svg>\n"
54 + "</body></html>";
55
56 final WebDriver driver = loadPageVerifyTitle2(html);
57 if (driver instanceof HtmlUnitDriver) {
58 final HtmlPage page = (HtmlPage) getEnclosedPage();
59 assertType(getExpectedAlerts()[0], page.getElementById("myId"));
60 }
61 }
62
63 private void assertType(final String expectedAlert, final DomElement element) {
64 if ("[object SVGScriptElement]".equals(expectedAlert)) {
65 assertTrue(SvgScript.class.isInstance(element));
66 }
67 else {
68 assertTrue(HtmlScript.class.isInstance(element));
69 }
70 }
71
72
73
74
75 @Test
76 @Alerts({"[object SVGScriptElement]", "[object HTMLScriptElement]"})
77 @HtmlUnitNYI(CHROME = {"[object SVGScriptElement]", "[object SVGScriptElement]"},
78 EDGE = {"[object SVGScriptElement]", "[object SVGScriptElement]"},
79 FF = {"[object SVGScriptElement]", "[object SVGScriptElement]"},
80 FF_ESR = {"[object SVGScriptElement]", "[object SVGScriptElement]"})
81 public void htmlOrSvg() throws Exception {
82 final String html = "<svg xmlns='http://www.w3.org/2000/svg' version='1.1'>\n"
83 + "<script id='id1'>\n"
84 + LOG_TITLE_FUNCTION
85 + " function test() {\n"
86 + " log(document.getElementById('id1'));\n"
87 + " log(document.getElementById('id2'));\n"
88 + " }\n"
89 + "</script>\n"
90 + "<body onload='test()'>\n"
91 + " <script id='id2'></script>\n"
92 + "</body>\n"
93 + "</svg>";
94
95 final WebDriver driver = loadPageVerifyTitle2(html);
96 if (driver instanceof HtmlUnitDriver) {
97 final HtmlPage page = (HtmlPage) getEnclosedPage();
98 assertType(getExpectedAlerts()[0], page.getElementById("id1"));
99 assertType(getExpectedAlerts()[1], page.getElementById("id2"));
100 }
101 }
102 }