<html>
<head>
<title>Original Title</title>
<link rel="shortcut icon" href="http://test.com/barfavicon.ico"/>
<script src="../../resources/js-test-pre.js"></script>
<script>

function runTests() {
    if (window.testRunner)
        testRunner.dumpAsText();

    iconURL = document.getElementsByTagName("link")[0].href;
    debug('Original iconURL is: ' + iconURL);

    // check that the URL in the document is as we expect
    var expectedURL = "http://test.com/barfavicon.ico";
    var iconURLs = window.internals.shortcutIconURLs();

    if (iconURLs.length === 1 && expectedURL === iconURLs[0])
        testPassed('Icon URL matches expected');
    else
        testFailed('Icon URL does not match expected: length = ' + iconURLs.length + ', URL=' + iconURLs[0]);
}

</script>
</head>
<body onload='runTests();'>
</div>
</body>
</html>
