<html>
<head>
<script src="../../resources/common.js"></script>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFrames();
}

function write(s)
{
    frames[0].document.getElementById('console').appendChild(document.createTextNode(s));
}

function test() {
    var layoutTestDir = relativeTestPath(location.href);
    layoutTestDir = layoutTestDir.substring(0, layoutTestDir.lastIndexOf("/"));

    var frameSrc = document.getElementsByTagName('frame')[1].src;
    if (frameSrc.search(layoutTestDir) != -1)
        write("PASS: Frame 'src' attribute should include '" + layoutTestDir + "' and does.");
    else
        write("FAIL: Frame 'src' attribute should include '" + layoutTestDir + "' but instead is '" + frameSrc + "'.");
}
</script>
</head>

<frameset onload="test()">
<frame src="resources/frame-src-attribute-results.html">
<frame src="resources/frame-src-attribute-subframe.html">
</frameset>

</html>
