<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>

description("This tests the constructor for the ProgressEvent DOM class.");

// No initializer is passed.
shouldBe("new ProgressEvent('eventType').bubbles", "false");
shouldBe("new ProgressEvent('eventType').cancelable", "false");
shouldBe("new ProgressEvent('eventType').lengthComputable", "false");
shouldBe("new ProgressEvent('eventType').loaded", "0");
shouldBe("new ProgressEvent('eventType').total", "0");

// bubbles is passed.
shouldBe("new ProgressEvent('eventType', { bubbles: false }).bubbles", "false");
shouldBe("new ProgressEvent('eventType', { bubbles: true }).bubbles", "true");

// cancelable is passed.
shouldBe("new ProgressEvent('eventType', { cancelable: false }).cancelable", "false");
shouldBe("new ProgressEvent('eventType', { cancelable: true }).cancelable", "true");

// lengthComputable is passed.
shouldBe("new ProgressEvent('eventType', { lengthComputable: false }).lengthComputable", "false");
shouldBe("new ProgressEvent('eventType', { lengthComputable: true }).lengthComputable", "true");

// loaded or total is passed.
["loaded", "total"].forEach(function (attr) {
    // [0, 2^53 - 1]. A value that is in the unsigned long long range and can be exactly represented as a double.
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 0 })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 1 })." + attr, "1");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 9007199254740990 })." + attr, "9007199254740990");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 9007199254740991 })." + attr, "9007199254740991");

    // [2^53, 2^64 - 1]. A value that is in the unsigned long long range but cannot be represented as a double.
    // Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 18446744073709551615 })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 12345678901234567890 })." + attr, "12345678901234567890");

    // A negative number.
    shouldBe("new ProgressEvent('eventType', { " + attr + ": -1 })." + attr, "18446744073709551615");

    // NaN.
    shouldBe("new ProgressEvent('eventType', { " + attr + ": NaN })." + attr, "0");

    // A double.
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 123.45 })." + attr, "123");

    // Non-numeric values.
    shouldBe("new ProgressEvent('eventType', { " + attr + ": undefined })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": null })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": '' })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": '12345' })." + attr, "12345");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": '12345a' })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": 'abc' })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": [] })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": [12345] })." + attr, "12345");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": [12345, 67890] })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": {} })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": {moe: 12345} })." + attr, "0");
    shouldBe("new ProgressEvent('eventType', { " + attr + ": {valueOf: function () { return 12345; }} })." + attr, "12345");
});

// All initializers are passed.
shouldBe("new ProgressEvent('eventType', { bubbles: true, cancelable: true, lengthComputable: true, loaded: 12345, total: 12345 }).bubbles", "true");
shouldBe("new ProgressEvent('eventType', { bubbles: true, cancelable: true, lengthComputable: true, loaded: 12345, total: 12345 }).cancelable", "true");
shouldBe("new ProgressEvent('eventType', { bubbles: true, cancelable: true, lengthComputable: true, loaded: 12345, total: 12345 }).lengthComputable", "true");
shouldBe("new ProgressEvent('eventType', { bubbles: true, cancelable: true, lengthComputable: true, loaded: 12345, total: 12345 }).loaded", "12345");
shouldBe("new ProgressEvent('eventType', { bubbles: true, cancelable: true, lengthComputable: true, loaded: 12345, total: 12345 }).total", "12345");
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
