<!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_js(TypeError, function() {
screen.lock('invalid-orientation');
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(null);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(undefined);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(undefined);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(123);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(window);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(['portrait-primary']);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.lock(['portrait-primary', 'landscape-primary']);
});
assert_equals(screen.orientation.type, 'portrait-primary');
assert_throws_js(TypeError, function() {
screen.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>