Skip to content

Commit 10ade9a

Browse files
eriwenVictor Homyakov
authored andcommitted
Adding functional test index page and tweaking stacktrace path
1 parent eb3950c commit 10ade9a

File tree

5 files changed

+77
-4
lines changed

5 files changed

+77
-4
lines changed

test/functional/index.html

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?xml version="1.0"?>
2+
<!DOCTYPE html>
3+
<html>
4+
<head>
5+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
6+
<title>stacktrace.js functional tests</title>
7+
<style>li{font-size:14px;font-weight:bold}</style>
8+
</head>
9+
<body>
10+
<h3><a href="https://github.com/eriwen">eriwen</a> / <strong><a href="https://github.com/eriwen/javascript-stacktrace">stacktrace.js</a></strong></h3>
11+
<ul>
12+
<li>Just include stacktrace.js file on your page, and call it like so:</li>
13+
</ul>
14+
<code>
15+
<pre>&lt;script type="text/javascript" src="path/to/stacktrace.js" /&gt;
16+
&lt;script type="text/javascript"&gt;
17+
... your code ...
18+
if (errorCondition) {
19+
var trace = printStackTrace();
20+
//Output however you want!
21+
alert(trace.join('\n\n'));
22+
}
23+
... more code of yours ...
24+
&lt;/script&gt;</pre>
25+
</code>
26+
<p>Tested in <a href="testcase1.html" target="_blank">Plain test</a></p>
27+
<ul>
28+
<li>You can also pass in your own Error to get a stacktrace:</li>
29+
</ul>
30+
<code>
31+
<pre>&lt;script type="text/javascript"&gt;
32+
var lastError;
33+
try {
34+
// error producing code
35+
} catch(e) {
36+
lastError = e;
37+
// do something else with error
38+
}
39+
// Returns stacktrace from lastError!
40+
printStackTrace({e: lastError});
41+
&lt;/script&gt;</pre>
42+
</code>
43+
<p>Tested in <a href="testcase2.html" target="_blank">passing error test</a></p>
44+
<ul>
45+
<li>Some people recommend just assigning it to window.onerror (Only in IE and FF):</li>
46+
</ul>
47+
<code>
48+
<pre>window.onerror = function(msg, file, line) {
49+
alert(printStackTrace().join('\n\n'));
50+
}</pre>
51+
</code>
52+
<p>Tested in <a href="testcase3.html" target="_blank">window.onerror test</a></p>
53+
<ul>
54+
<li>You can now have any (public or privileged) function give you a stacktrace when it is called:</li>
55+
</ul>
56+
<code>
57+
<pre>var p = new printStackTrace.implementation();
58+
p.instrumentFunction(this, 'bar', logStackTrace);
59+
function logStackTrace(stack) {
60+
console.log(stack.join('\n'));
61+
} function foo() {
62+
var a = 1;
63+
bar();
64+
}
65+
function bar() {
66+
baz();
67+
}
68+
foo(); //Will log a stacktrace when 'bar()' is called containing 'foo()'!
69+
p.deinstrumentFunction(this, 'bar'); //Remove function instrumentation</pre>
70+
</code>
71+
<p>Tested in <a href="testcase4.html" target="_blank">function instrumentation test</a></p>
72+
</body>
73+
</html>

test/functional/testcase1.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<body>
44
<div id="output"></div>
55
</body>
6-
<script type="text/javascript" src="stacktrace.js"></script>
6+
<script type="text/javascript" src="../../stacktrace.js"></script>
77
<script type="text/javascript">function printTrace(trace){var output=document.getElementById("output");if(!output){output=document.createElement("div");output.id="output";document.body.appendChild(output);}
88
if(!expected){expected="";}
99
trace.push("--------------Expected:-------------------")

test/functional/testcase2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<body>
44
<div id="output"></div>
55
</body>
6-
<script type="text/javascript" src="stacktrace.js"></script>
6+
<script type="text/javascript" src="../../stacktrace.js"></script>
77
<script type="text/javascript">function printTrace(trace){var output=document.getElementById("output");if(!output){output=document.createElement("div");output.id="output";document.body.appendChild(output);}
88
if(!expected){expected="";}
99
trace.push("--------------Expected:-------------------")

test/functional/testcase3.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<body>
44
<div id="output"></div>
55
</body>
6-
<script type="text/javascript" src="stacktrace.js"></script>
6+
<script type="text/javascript" src="../../stacktrace.js"></script>
77
<script type="text/javascript">function printTrace(trace){var output=document.getElementById("output");if(!output){output=document.createElement("div");output.id="output";document.body.appendChild(output);}
88
if(!expected){expected="";}
99
trace.push("--------------Expected:-------------------")

test/functional/testcase4.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<body>
44
<div id="output"></div>
55
</body>
6-
<script type="text/javascript" src="stacktrace.js"></script>
6+
<script type="text/javascript" src="../../stacktrace.js"></script>
77
<script type="text/javascript">function printTrace(trace){var output=document.getElementById("output");if(!output){output=document.createElement("div");output.id="output";document.body.appendChild(output);}
88
if(!expected){expected="";}
99
trace.push("--------------Expected:-------------------")

0 commit comments

Comments
 (0)