42 } |
42 } |
43 |
43 |
44 @Test |
44 @Test |
45 public void test() { |
45 public void test() { |
46 javadoc("-d", "out", |
46 javadoc("-d", "out", |
47 "--frames", |
|
48 "-sourcepath", testSrc, |
47 "-sourcepath", testSrc, |
49 "pkg", testSrc("TestJavascript.java")); |
48 "pkg", testSrc("TestJavascript.java")); |
50 checkExit(Exit.OK); |
49 checkExit(Exit.OK); |
51 |
50 |
52 checkOutput("pkg/C.html", true, |
51 checkOutput("pkg/C.html", true, |
53 "<a href=\"../index.html?pkg/C.html\" target=\"_top\">Frames</a>", |
|
54 "<script type=\"text/javascript\"><!--\n" |
52 "<script type=\"text/javascript\"><!--\n" |
55 + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n" |
53 + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n" |
56 + "//-->\n" |
54 + "//-->\n" |
57 + "</script>"); |
55 + "</script>"); |
58 |
56 |
59 checkOutput("TestJavascript.html", true, |
|
60 "<a href=\"index.html?TestJavascript.html\" target=\"_top\">Frames</a>"); |
|
61 |
|
62 checkOutput("index.html", true, |
57 checkOutput("index.html", true, |
63 "<script type=\"text/javascript\">\n" |
58 "<script type=\"text/javascript\"><!--\n" |
64 + " tmpTargetPage = \"\" + window.location.search;\n" |
59 + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n" |
65 + " if (tmpTargetPage != \"\" && tmpTargetPage != \"undefined\")\n" |
60 + "//-->\n"); |
66 + " tmpTargetPage = tmpTargetPage.substring(1);\n" |
|
67 + " if (tmpTargetPage.indexOf(\":\") != -1 || (tmpTargetPage != \"\" && !validURL(tmpTargetPage)))\n" |
|
68 + " tmpTargetPage = \"undefined\";\n" |
|
69 + " targetPage = tmpTargetPage;\n" |
|
70 + " function validURL(url) {\n" |
|
71 + " try {\n" |
|
72 + " url = decodeURIComponent(url);\n" |
|
73 + " }\n" |
|
74 + " catch (error) {\n" |
|
75 + " return false;\n" |
|
76 + " }\n" |
|
77 + " var pos = url.indexOf(\".html\");\n" |
|
78 + " if (pos == -1 || pos != url.length - 5)\n" |
|
79 + " return false;\n" |
|
80 + " var allowNumber = false;\n" |
|
81 + " var allowSep = false;\n" |
|
82 + " var seenDot = false;\n" |
|
83 + " for (var i = 0; i < url.length - 5; i++) {\n" |
|
84 + " var ch = url.charAt(i);\n" |
|
85 + " if ('a' <= ch && ch <= 'z' ||\n" |
|
86 + " 'A' <= ch && ch <= 'Z' ||\n" |
|
87 + " ch == '$' ||\n" |
|
88 + " ch == '_' ||\n" |
|
89 + " ch.charCodeAt(0) > 127) {\n" |
|
90 + " allowNumber = true;\n" |
|
91 + " allowSep = true;\n" |
|
92 + " } else if ('0' <= ch && ch <= '9'\n" |
|
93 + " || ch == '-') {\n" |
|
94 + " if (!allowNumber)\n" |
|
95 + " return false;\n" |
|
96 + " } else if (ch == '/' || ch == '.') {\n" |
|
97 + " if (!allowSep)\n" |
|
98 + " return false;\n" |
|
99 + " allowNumber = false;\n" |
|
100 + " allowSep = false;\n" |
|
101 + " if (ch == '.')\n" |
|
102 + " seenDot = true;\n" |
|
103 + " if (ch == '/' && seenDot)\n" |
|
104 + " return false;\n" |
|
105 + " } else {\n" |
|
106 + " return false;\n" |
|
107 + " }\n" |
|
108 + " }\n" |
|
109 + " return true;\n" |
|
110 + " }\n" |
|
111 + " function loadFrames() {\n" |
|
112 + " if (targetPage != \"\" && targetPage != \"undefined\")\n" |
|
113 + " top.classFrame.location = top.targetPage;\n" |
|
114 + " }\n" |
|
115 + "</script>"); |
|
116 |
|
117 checkOutput("index.html", true, |
|
118 "<body class=\"frames\" onload=\"loadFrames()\""); |
|
119 |
|
120 //Make sure title javascript only runs if is-external is not true |
|
121 checkOutput("pkg/C.html", true, |
|
122 " try {\n" |
|
123 + " if (location.href.indexOf('is-external=true') == -1) {\n" |
|
124 + " parent.document.title=\"C\";\n" |
|
125 + " }\n" |
|
126 + " }\n" |
|
127 + " catch(err) {\n" |
|
128 + " }"); |
|
129 |
61 |
130 checkOutput("script.js", true, |
62 checkOutput("script.js", true, |
131 "$(window).resize(function() {\n" |
63 "$(window).resize(function() {\n" |
132 + " $('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n" |
64 + " $('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n" |
133 + " });"); |
65 + " });"); |