<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Historical touch events features</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="touch-support.js"></script>
<body>
<script>
[
  "webkitRadiusX",
  "webkitRadiusY",
  "webkitRotationAngle",
  "webkitForce",
].forEach(function(name) {
  test(function() {
    assert_false(name in Touch.prototype,
                 "Should not be supported on the prototype");

    var touch = document.createTouch(window, window, 0, 0, 0, 0, 0);
    assert_false(name in touch,
                 "Should not be supported on the instance");
  }, "Touch::" + name);
});

test(function() {
  assert_false("identifiedTouch" in TouchList.prototype,
               "Should not be supported on the prototype");

  var touchList = document.createTouchList();
  assert_false("identifiedTouch" in touchList,
               "Should not be supported on the instance");
}, "TouchList::identifiedTouch");

test(function() {
  assert_false("initTouchEvent" in TouchEvent.prototype,
               "Should not be supported on the prototype");

  var touchEvent = document.createEvent("touchevent");
  assert_false("initTouchEvent" in touchEvent,
               "Should not be supported on the instance");
}, "TouchEvent::initTouchEvent");
</script>
