blob: 5dfdaedf63b84a1b1b667f75dc1c09d89343a404 [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/debugger-test.js"></script>
<script>
function dummyScript()
{
console.log("dummy string");
}
function test()
{
InspectorTest.startDebuggerTest(waitForScripts);
var linkifier;
var link;
var script;
var uiSourceCode;
function waitForScripts()
{
InspectorTest.showScriptSource("linkifier.html", debuggerTest);
}
function debuggerTest()
{
var scripts = WebInspector.debuggerModel.scripts;
for (var scriptId in scripts) {
var scriptCandidate = scripts[scriptId];
if (scriptCandidate.sourceURL === WebInspector.inspectedPageURL && scriptCandidate.lineOffset === 4) {
script = scriptCandidate;
break;
}
}
uiSourceCode = WebInspector.workspace.uiSourceCodeForOriginURL(WebInspector.inspectedPageURL);
var linkifyMe = "at triggerError (http://localhost/show/:22:11)";
var fragment = WebInspector.linkifyStringAsFragment(linkifyMe);
var anchor = fragment.querySelector('a');
InspectorTest.addResult("The string \"" + linkifyMe + " \" linkifies to url: " + anchor.href);
InspectorTest.addResult("The lineNumber is " + anchor.lineNumber + " with type " + (typeof anchor.lineNumber));
linkifier = new WebInspector.Linkifier();
var count1 = liveLocationsCount();
link = linkifier.linkifyLocation(WebInspector.inspectedPageURL, 8, 0, "dummy-class");
var count2 = liveLocationsCount();
InspectorTest.addResult("listeners added on raw source code: " + (count2 - count1));
InspectorTest.addResult("original location: " + link.textContent);
InspectorTest.addSniffer(linkifier._formatter, "formatLiveAnchor", linkUpdated);
uiSourceCode.setFormatted(true);
}
function linkUpdated()
{
InspectorTest.addResult("pretty printed location: " + link.textContent);
InspectorTest.addSniffer(linkifier._formatter, "formatLiveAnchor", linkReverted);
uiSourceCode.setFormatted(false);
}
function linkReverted()
{
InspectorTest.addResult("reverted location: " + link.textContent);
var count1 = liveLocationsCount();
linkifier.reset();
var count2 = liveLocationsCount();
InspectorTest.addResult("listeners removed from raw source code: " + (count1 - count2));
InspectorTest.completeDebuggerTest();
}
function liveLocationsCount()
{
return script._locations.size();
}
}
</script>
</head>
<body onload="runTest()">
<p>
Tests that Linkifier works correctly.
<p>
</body>
</html>