| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>orientation_test</title> | |
| <link rel="stylesheet" href="/filez/_main/third_party/js/qunit/qunit.css"> | |
| <script src="/filez/_main/third_party/js/qunit/qunit.js"></script> | |
| <script src="/filez/_main/third_party/js/qunit/qunit_test_runner.js"></script> | |
| <script src="test_bootstrap.js"></script> | |
| <script type="text/javascript"> | |
| goog.require('bot.dom'); | |
| goog.require('bot.window'); | |
| goog.require('goog.dom'); | |
| goog.require('goog.events'); | |
| </script> | |
| <body> | |
| <div id="qunit"></div> | |
| <div id="qunit-fixture"></div> | |
| <script type="text/javascript"> | |
| var iframe; | |
| (function() { | |
| if (goog.userAgent.product.CHROME) { | |
| goog.userAgent.MOBILE = true; | |
| } | |
| })(); | |
| QUnit.testStart(function() { | |
| if (orientationSupported()) { | |
| iframe = document.createElement('iframe'); | |
| iframe.src = 'testdata/blank_page.html'; | |
| iframe.style.backgroundColor = 'blue'; | |
| iframe.width = '300px'; | |
| iframe.height = '480px'; | |
| document.body.appendChild(iframe); | |
| bot.setWindow(goog.dom.getFrameContentWindow(iframe)); | |
| } | |
| }); | |
| QUnit.testDone(function() { | |
| if (iframe) { | |
| document.body.removeChild(iframe); | |
| iframe = null; | |
| } | |
| }); | |
| function orientationSupported() { | |
| return goog.userAgent.MOBILE || goog.userAgent.product.ANDROID; | |
| } | |
| function isPortrait() { | |
| var height = bot.getWindow().frameElement.offsetHeight; | |
| var width = bot.getWindow().frameElement.offsetWidth; | |
| return height > width; | |
| } | |
| function assertOrientationChange(assert, shouldOrientationChangeFire, orientation) { | |
| var orientationChangeFired = false; | |
| goog.events.listenOnce(bot.getWindow(), 'orientationchange', function() { | |
| orientationChangeFired = true; | |
| }); | |
| bot.window.changeOrientation(orientation); | |
| assert.strictEqual(orientationChangeFired, shouldOrientationChangeFire); | |
| } | |
| QUnit.test('changingOrientation', function(assert) { | |
| if (!orientationSupported()) { | |
| assert.ok(true, 'Skipping: orientation not supported'); | |
| return; | |
| } | |
| assert.ok(isPortrait()); | |
| assertOrientationChange(assert, true, bot.window.Orientation.LANDSCAPE); | |
| assert.notOk(isPortrait()); | |
| if (!bot.userAgent.ANDROID_PRE_GINGERBREAD) { | |
| assertOrientationChange(assert, true, bot.window.Orientation.PORTRAIT); | |
| assert.ok(isPortrait()); | |
| assertOrientationChange(assert, true, bot.window.Orientation.LANDSCAPE_SECONDARY); | |
| assert.notOk(isPortrait()); | |
| } | |
| }); | |
| QUnit.test('noChangeWhenOrientationDoesNotChange', function(assert) { | |
| if (!orientationSupported()) { | |
| assert.ok(true, 'Skipping: orientation not supported'); | |
| return; | |
| } | |
| assert.ok(isPortrait()); | |
| assertOrientationChange(assert, false, bot.window.Orientation.PORTRAIT); | |
| }); | |
| QUnit.test('maybeChangeForPortraitSecondary', function(assert) { | |
| if (!orientationSupported()) { | |
| assert.ok(true, 'Skipping: orientation not supported'); | |
| return; | |
| } | |
| assert.ok(isPortrait()); | |
| assertOrientationChange(assert, goog.userAgent.MOBILE ? false : true, | |
| bot.window.Orientation.PORTRAIT_SECONDARY); | |
| }); | |
| </script> | |
| </body> | |
| </html> |