summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/progress-events/interface.html
blob: 850d1b23dcfa2662b2ffce3c1968d1f92eaaf188 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<title>The ProgressEvent interface</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  assert_equals(typeof ProgressEvent, "function")
  assert_equals(ProgressEvent.length, 1)
})
test(function() {
  var desc = Object.getOwnPropertyDescriptor(ProgressEvent, "prototype")
  assert_equals(desc.value, ProgressEvent.prototype)
  assert_equals(desc.writable, false)
  assert_equals(desc.enumerable, false)
  assert_equals(desc.configurable, false)
  assert_throws(new TypeError(), function() {
    "use strict";
    delete ProgressEvent.prototype;
  })
  assert_equals(ProgressEvent.prototype.constructor, ProgressEvent)
  assert_equals(Object.getPrototypeOf(ProgressEvent.prototype), Event.prototype)
}, "interface prototype object")
var attributes = [
  ["boolean", "lengthComputable"],
  ["unsigned long long", "loaded"],
  ["unsigned long long", "total"]
];
attributes.forEach(function(a) {
  test(function() {
    var desc = Object.getOwnPropertyDescriptor(ProgressEvent.prototype, a[1])
    assert_equals(desc.enumerable, true)
    assert_equals(desc.configurable, true)
    assert_throws(new TypeError(), function() {
      ProgressEvent.prototype[a[1]]
    })
  })
})
test(function() {
  for (var p in window) {
    assert_not_equals(p, "ProgressEvent")
  }
}, "Interface objects properties should not be Enumerable")
test(function() {
  assert_true(!!window.ProgressEvent, "Interface should exist.")
  assert_true(delete window.ProgressEvent, "The delete operator should return true.")
  assert_equals(window.ProgressEvent, undefined, "Interface should be gone.")
}, "Should be able to delete ProgressEvent.")
</script>