1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import org.htmlunit.WebDriverTestCase;
18 import org.htmlunit.junit.annotation.Alerts;
19 import org.junit.jupiter.api.Test;
20 import org.openqa.selenium.WebDriver;
21 import org.openqa.selenium.htmlunit.HtmlUnitDriver;
22
23
24
25
26
27
28
29 public class HtmlSvgTest extends WebDriverTestCase {
30
31
32
33
34 @Test
35 @Alerts("[object SVGSVGElement]")
36 public void simpleScriptable() throws Exception {
37 final String html = DOCTYPE_HTML
38 + "<html><head>\n"
39 + "<script>\n"
40 + LOG_TITLE_FUNCTION
41 + " function test() {\n"
42 + " log(document.getElementById('myId'));\n"
43 + " }\n"
44 + "</script>\n"
45 + "</head><body onload='test()'>\n"
46 + " <svg xmlns='http://www.w3.org/2000/svg' id='myId' version='1.1'>\n"
47 + " </svg>\n"
48 + "</body></html>";
49
50 final WebDriver driver = loadPageVerifyTitle2(html);
51 if (driver instanceof HtmlUnitDriver) {
52 final HtmlPage page = (HtmlPage) getEnclosedPage();
53 assertTrue(HtmlSvg.class.isInstance(page.getElementById("myId")));
54 }
55 }
56
57
58
59
60 @Test
61 @Alerts("false")
62 public void style() throws Exception {
63 final String html = DOCTYPE_HTML
64 + "<html><body>\n"
65 + " <svg xmlns='http://www.w3.org/2000/svg' id='myId' version='1.1'>\n"
66 + " </svg>\n"
67 + "<script>\n"
68 + LOG_TITLE_FUNCTION
69 + " log(document.getElementById('myId').style == undefined);\n"
70 + "</script>\n"
71 + "</body></html>";
72
73 loadPageVerifyTitle2(html);
74 }
75
76
77
78
79 @Test
80 @Alerts({"function", "function"})
81 public void functions() throws Exception {
82 final String html = DOCTYPE_HTML
83 + "<html><body>\n"
84 + " <svg xmlns='http://www.w3.org/2000/svg' id='myId' version='1.1'>\n"
85 + " </svg>\n"
86 + "<script>\n"
87 + LOG_TITLE_FUNCTION
88 + " var svg = document.getElementById('myId');\n"
89 + " log(typeof svg.getScreenCTM);\n"
90 + " log(typeof svg.createSVGMatrix);\n"
91 + "</script>\n"
92 + "</body></html>";
93
94 loadPageVerifyTitle2(html);
95 }
96
97
98
99
100 @Test
101 @Alerts("[object SVGMatrix]")
102 public void getScreenCTM() throws Exception {
103 final String html = DOCTYPE_HTML
104 + "<html><body>\n"
105 + " <svg xmlns='http://www.w3.org/2000/svg' id='myId' version='1.1'>\n"
106 + " </svg>\n"
107 + "<script>\n"
108 + LOG_TITLE_FUNCTION
109 + " var svg = document.getElementById('myId');\n"
110 + " try {\n"
111 + " log(svg.getScreenCTM());\n"
112 + " } catch(e) { logEx(e); }\n"
113 + "</script>\n"
114 + "</body></html>";
115
116 loadPageVerifyTitle2(html);
117 }
118 }