4 <script src="../resources/js-test.js"></script>
6 description("Validates that lockOrientation() returns false on bad orientation value in array argument.");
7 window.jsTestIsAsync = true;
9 function onOrientationChangeEvent(ev) {
10 testFailed("Unexpected 'orientationchange' event");
13 function completeTest() {
14 shouldBeEqualToString("screen.orientation", "portrait-primary");
15 screen.unlockOrientation();
19 window.addEventListener("orientationchange", onOrientationChangeEvent);
21 function typeErrorEnum(argStr) {
22 return "TypeError: Failed to execute 'lockOrientation' on 'Screen': parameter 1 ('" + argStr + "') is not a valid enum value.";
25 shouldBeEqualToString("screen.orientation", "portrait-primary");
26 // Bad argument to lockOrientation(), we should not get locked.
27 shouldThrow("screen.lockOrientation(['portrait-primary', 'invalid-orientation'])", "typeErrorEnum('portrait-primary,invalid-orientation')");
28 shouldThrow("screen.lockOrientation(['portrait-primary', null])", "typeErrorEnum('portrait-primary,')");
29 shouldThrow("screen.lockOrientation(['portrait-primary', undefined])", "typeErrorEnum('portrait-primary,')");
30 shouldThrow("screen.lockOrientation(['portrait-primary', 123])", "typeErrorEnum('portrait-primary,123')");
31 shouldThrow("screen.lockOrientation(['portrait-primary', window])", "typeErrorEnum('portrait-primary,[object Window]')");
33 // Finish asynchronously to give events a chance to fire.
34 setTimeout(completeTest, 0);