<!DOCTYPE html>
<html>
<head>
<script src="/js-test-resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("Web Timing should report zeros for redirects and unload since there was no preceding page.");

window.performance = window.performance || {};
var navigation = performance.navigation || {};
var timing = performance.timing || {};

function performTest() {
    // FIXME: Need a way to synchronize the test so that loadEventEnd is non-zero.
    var shouldBeZeroList = ["loadEventEnd", "redirectStart", "redirectEnd", "secureConnectionStart", "unloadEventStart", "unloadEventEnd"];

    var timingProperties = new Array;
    for (var property in timing) {
        timingProperties.push(property);
    }
    timingProperties.sort();
    for (var i = 0; i < timingProperties.length; ++i) {
        if (shouldBeZeroList.indexOf(timingProperties[i]) >= 0)
            shouldBe("timing." + timingProperties[i], "0");
        else
            shouldBeNonZero("timing." + timingProperties[i]);
    }
    shouldBe("navigation.redirectCount", "0");

    finishJSTest();
}

window.addEventListener("load", performTest);

var jsTestIsAsync = true;
</script>
<script src="/js-test-resources/js-test-post.js"></script>
</body>
</html>
