js/jsd/test/test_bug507448.html

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:d1acd567a720
1 <!DOCTYPE HTML>
2 <html>
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=507448
5 -->
6 <head>
7 <title>Test for Bug 507448</title>
8 <script type="application/javascript" src="/MochiKit/Base.js"></script>
9 <script type="application/javascript" src="/MochiKit/Async.js"></script>
10 <script type="application/javascript" src="/MochiKit/DOM.js"></script>
11 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
12 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
13 </head>
14 <body>
15 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=507448">Mozilla Bug 507448</a>
16 <p id="display"></p>
17 <div id="content" style="display: none">
18
19 </div>
20 <pre id="test">
21 <script type="application/javascript">
22 function f() {}
23 function g(a,b) {}
24 function h(me, too, here) { var x = 1; }
25 function annoying(a, b, a, b, b, a) {}
26 function manyLocals(a, b, c, d, e, f, g, h, i, j, k, l, m) {
27 var n, o, p, q, r, s, t, u, v, w, x, y, z;
28 }
29 </script>
30 <script type="application/javascript">
31
32 SimpleTest.waitForExplicitFinish();
33
34 function loadScript(url) {
35 var d = new MochiKit.Async.Deferred();
36 var head = document.getElementsByTagName("head")[0];
37 var script = MochiKit.DOM.createDOM("script", { type: "text/javascript", src: url });
38 script.onload = function() {
39 script.onload = null;
40 script.onerror = null;
41 script.onreadystatechange = null;
42 d.callback();
43 };
44 script.onerror = function(msg) {
45 script.onload = null;
46 script.onerror = null;
47 script.onreadystatechange = null;
48 msg = "Failed to load script at " + url + ": " + msg;
49 d.errback(new URIError(msg, url));
50 }
51 script.onreadystatechange = function() {
52 if (script.readyState == "loaded" || script.readyState == "complete") {
53 script.onload();
54 } else {
55 // IE doesn't bother to report errors...
56 MochiKit.Async.callLater(10, script.onerror, "Script loading timed out")
57 }
58 };
59 head.appendChild(script);
60 return d;
61 }
62
63 /** Test for Bug 507448 **/
64 function assertArraysEqual(arr1, arr2) {
65 is(arr1.length, arr2.length, "Lengths not equal");
66 for (var i = 0 ; i < arr1.length; ++i) {
67 is(arr1[i], arr2[i], "Element " + i + " not equal");
68 }
69 }
70
71 var jsdIDebuggerService = SpecialPowers.Ci.jsdIDebuggerService;
72 var jsd = SpecialPowers.Cc['@mozilla.org/js/jsd/debugger-service;1']
73 .getService(jsdIDebuggerService);
74 var jsdOnAtStart = false;
75
76 function setupJSD() {
77 // This is somewhat unfortunate: jsd only deals with scripts that have a
78 // nonzero line number, so we can't just createElement a script here.
79 // So break the test up into three <script>s, of which the middle one has our test functions.
80
81 jsdOnAtStart = jsd.isOn;
82 if (jsdOnAtStart) {
83 testJSD();
84 } else {
85 jsd.asyncOn(
86 {
87 onDebuggerActivated: function() {
88 testJSD();
89 }
90 }
91 );
92 }
93 }
94
95 addLoadEvent(setupJSD);
96
97 </script>
98 <script>
99 function testJSD() {
100 ok(jsd.isOn, "JSD needs to be running for this test.");
101
102 var deferred = loadScript("bug507448.js");
103 }
104 </script>
105 </pre>
106 </body>
107 </html>

mercurial