<!DOCTYPE html>
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>

test(function() {
    assert_true('orientation' in window.screen);
    assert_true('angle' in window.screen.orientation);
    assert_true('type' in window.screen.orientation);
    assert_true('lock' in window.screen.orientation);
    assert_true('unlock' in window.screen.orientation);
    assert_true('onchange' in window.screen.orientation);
}, "Test that the Screen Orientation API is present.")

test(function() {
  assert_equals(typeof(screen.orientation), "object");
  assert_equals(typeof(screen.orientation.angle), "number");
  assert_equals(typeof(screen.orientation.type), "string");
  assert_equals(typeof(screen.orientation.lock), "function");
  assert_equals(typeof(screen.orientation.unlock), "function");
  assert_equals(typeof(screen.orientation.onchange), "object");
}, "Test Screen Orientation API property types.");

test(function() {
  assert_true('addEventListener' in screen.orientation);
  assert_true('removeEventListener' in screen.orientation);
  assert_true('dispatchEvent' in screen.orientation);
  assert_true(screen.orientation instanceof EventTarget)
}, "Test that screen.orientation is an EventTarget.");

</script>
</body>
</html>
