67 lines
3.8 KiB
HTML
67 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
|
|
description("This tests the constructor for the OverflowEvent DOM class.");
|
|
|
|
// No initializer is passed.
|
|
shouldBe("new OverflowEvent('eventType').bubbles", "false");
|
|
shouldBe("new OverflowEvent('eventType').cancelable", "false");
|
|
shouldBe("new OverflowEvent('eventType').horizontalOverflow", "false");
|
|
shouldBe("new OverflowEvent('eventType').verticalOverflow", "false");
|
|
shouldBe("new OverflowEvent('eventType').orient", "0");
|
|
|
|
// bubbles, cancelable, horizontalOverflow, verticalOverflow are passed.
|
|
["bubbles", "cancelable", "horizontalOverflow", "verticalOverflow"].forEach(function(attr) {
|
|
shouldBe("new OverflowEvent('eventType', { " + attr + ": false })." + attr, "false");
|
|
shouldBe("new OverflowEvent('eventType', { " + attr + ": true })." + attr, "true");
|
|
});
|
|
|
|
// orient is passed.
|
|
// Numbers within the unsigned short range.
|
|
shouldBe("new OverflowEvent('eventType', { orient: 0 }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 1 }).orient", "1");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 65534 }).orient", "65534");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 65535 }).orient", "65535");
|
|
|
|
// Numbers out of the unsigned short range.
|
|
// 2^{53}-1, the largest number that can be exactly represented by double.
|
|
shouldBe("new OverflowEvent('eventType', { orient: 9007199254740991 }).orient", "65535");
|
|
// 2^{64}-1
|
|
shouldBe("new OverflowEvent('eventType', { orient: 18446744073709551615 }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 12345678901234567890 }).orient", "2048");
|
|
shouldBe("new OverflowEvent('eventType', { orient: -1 }).orient", "65535");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 123.45 }).orient", "123");
|
|
shouldBe("new OverflowEvent('eventType', { orient: NaN }).orient", "0");
|
|
|
|
// Non-numeric values.
|
|
shouldBe("new OverflowEvent('eventType', { orient: undefined }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: null }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: '' }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: '12345' }).orient", "12345");
|
|
shouldBe("new OverflowEvent('eventType', { orient: '12345a' }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: 'abc' }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: [] }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: [12345] }).orient", "12345");
|
|
shouldBe("new OverflowEvent('eventType', { orient: [12345, 67890] }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: {} }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: {foo: 12345} }).orient", "0");
|
|
shouldBe("new OverflowEvent('eventType', { orient: {valueOf: function () { return 12345; }} }).orient", "12345");
|
|
|
|
// All initializers are passed.
|
|
shouldBe("new OverflowEvent('eventType', { bubbles: true, cancelable: true, horizontalOverflow: true, verticalOverflow: true, orient: 12345 }).bubbles", "true");
|
|
shouldBe("new OverflowEvent('eventType', { bubbles: true, cancelable: true, horizontalOverflow: true, verticalOverflow: true, orient: 12345 }).cancelable", "true");
|
|
shouldBe("new OverflowEvent('eventType', { bubbles: true, cancelable: true, horizontalOverflow: true, verticalOverflow: true, orient: 12345 }).horizontalOverflow", "true");
|
|
shouldBe("new OverflowEvent('eventType', { bubbles: true, cancelable: true, horizontalOverflow: true, verticalOverflow: true, orient: 12345 }).verticalOverflow", "true");
|
|
shouldBe("new OverflowEvent('eventType', { bubbles: true, cancelable: true, horizontalOverflow: true, verticalOverflow: true, orient: 12345 }).orient", "12345");
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|