blob: df27ac21d298870720d108fb0978b580d6bf6984 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var test = async_test("Test that screen.orientation.lock() throws when the input isn't valid.");
function onOrientationChangeEvent(ev) {
assert_unreached('Unexpected orientation change');
}
window.screen.orientation.addEventListener('change', test.step_func(onOrientationChangeEvent));
test.step(function() {
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock('invalid-orientation');
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(null);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(undefined);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(undefined);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(123);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(window);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(['portrait-primary']);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock(['portrait-primary', 'landscape-primary']);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws(new TypeError(), function() {
screen.orientation.lock();
});
});
// Finish asynchronously to give events a chance to fire.
setTimeout(test.step_func(function() {
assert_equals(screen.orientation.type, 'portrait-primary');
screen.orientation.unlock();
test.done();
}));
</script>
</body>
</html>