Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2508)

Unified Diff: chrome/test/data/extensions/platform_apps/window_api/test.js

Issue 186343002: Create windows for new app window bounds API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self nit: comment Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/platform_apps/window_api/test.js
diff --git a/chrome/test/data/extensions/platform_apps/window_api/test.js b/chrome/test/data/extensions/platform_apps/window_api/test.js
index eb2e86bb9f967e98bafc6d6eda122809b1107e4a..4897087dcee37e7f29b337b742c82b9bba896679 100644
--- a/chrome/test/data/extensions/platform_apps/window_api/test.js
+++ b/chrome/test/data/extensions/platform_apps/window_api/test.js
@@ -49,6 +49,61 @@ function waitForLoad(win, callback) {
}));
}
+function assertConstraintsUnspecified(win) {
+ chrome.test.assertEq(null, win.innerBounds.minWidth);
+ chrome.test.assertEq(null, win.innerBounds.minHeight);
+ chrome.test.assertEq(null, win.innerBounds.maxWidth);
+ chrome.test.assertEq(null, win.innerBounds.maxHeight);
+ chrome.test.assertEq(null, win.outerBounds.minWidth);
+ chrome.test.assertEq(null, win.outerBounds.minHeight);
+ chrome.test.assertEq(null, win.outerBounds.maxWidth);
+ chrome.test.assertEq(null, win.outerBounds.maxHeight);
+}
+
+function assertBoundsConsistent(win) {
+ chrome.test.assertTrue(win.innerBounds.left >= win.outerBounds.left);
+ chrome.test.assertTrue(win.innerBounds.top >= win.outerBounds.top);
+ chrome.test.assertTrue(win.innerBounds.width <= win.outerBounds.width);
+ chrome.test.assertTrue(win.innerBounds.height <= win.outerBounds.height);
+
+ if (win.innerBounds.minWidth === null)
+ chrome.test.assertEq(null, win.outerBounds.minWidth);
+ else
+ chrome.test.assertTrue(
+ win.innerBounds.minWidth <= win.outerBounds.minWidth);
+
+ if (win.innerBounds.minHeight === null)
+ chrome.test.assertEq(null, win.outerBounds.minHeight);
+ else
+ chrome.test.assertTrue(
+ win.innerBounds.minHeight <= win.outerBounds.minHeight);
+
+ if (win.innerBounds.maxWidth === null)
+ chrome.test.assertEq(null, win.outerBounds.maxWidth);
+ else
+ chrome.test.assertTrue(
+ win.innerBounds.maxWidth <= win.outerBounds.maxWidth);
+
+ if (win.innerBounds.maxHeight === null)
+ chrome.test.assertEq(null, win.outerBounds.maxHeight);
+ else
+ chrome.test.assertTrue(
+ win.innerBounds.maxHeight <= win.outerBounds.maxHeight);
+}
+
+function testConflictingBoundsProperty(propertyName) {
+ var innerBounds = {};
+ var outerBounds = {};
+ innerBounds[propertyName] = 20;
+ outerBounds[propertyName] = 20;
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds,
+ outerBounds: outerBounds
+ }, callbackFail('The ' + propertyName + ' property cannot be specified for ' +
+ 'both inner and outer bounds.')
+ );
+}
+
function testCreate() {
chrome.test.runTests([
function basic() {
@@ -153,6 +208,333 @@ function testCreate() {
]);
}
+function testInitialBounds() {
+ chrome.test.runTests([
+ function testNoOptions() {
+ chrome.app.window.create('test.html', {
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertTrue(win.innerBounds.width > 0);
+ chrome.test.assertTrue(win.innerBounds.height > 0);
+ chrome.test.assertTrue(win.outerBounds.width > 0);
+ chrome.test.assertTrue(win.outerBounds.height > 0);
+ assertConstraintsUnspecified(win);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testInnerBoundsOnly() {
+ var innerBounds = {
+ left: 150,
+ top: 100,
+ width: 400,
+ height: 300
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(innerBounds.left, win.innerBounds.left);
+ chrome.test.assertEq(innerBounds.top, win.innerBounds.top);
+ chrome.test.assertEq(innerBounds.width, win.innerBounds.width);
+ chrome.test.assertEq(innerBounds.height, win.innerBounds.height);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testOuterBoundsOnly() {
+ var outerBounds = {
+ left: 150,
+ top: 100,
+ width: 400,
+ height: 300
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.left, win.outerBounds.left);
+ chrome.test.assertEq(outerBounds.top, win.outerBounds.top);
+ chrome.test.assertEq(outerBounds.width, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.height, win.outerBounds.height);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testFrameless() {
+ var outerBounds = {
+ left: 150,
+ top: 100,
+ width: 400,
+ height: 300
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds,
+ frame: 'none'
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.left, win.outerBounds.left);
+ chrome.test.assertEq(outerBounds.top, win.outerBounds.top);
+ chrome.test.assertEq(outerBounds.width, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.height, win.outerBounds.height);
+ chrome.test.assertEq(outerBounds.left, win.innerBounds.left);
+ chrome.test.assertEq(outerBounds.top, win.innerBounds.top);
+ chrome.test.assertEq(outerBounds.width, win.innerBounds.width);
+ chrome.test.assertEq(outerBounds.height, win.innerBounds.height);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testInnerSizeAndOuterPos() {
+ var innerBounds = {
+ width: 400,
+ height: 300
+ };
+ var outerBounds = {
+ left: 150,
+ top: 100
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds,
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.left, win.outerBounds.left);
+ chrome.test.assertEq(outerBounds.top, win.outerBounds.top);
+ chrome.test.assertEq(innerBounds.width, win.innerBounds.width);
+ chrome.test.assertEq(innerBounds.height, win.innerBounds.height);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testInnerAndOuterBoundsEdgeCase() {
+ var innerBounds = {
+ left: 150,
+ height: 300
+ };
+ var outerBounds = {
+ width: 400,
+ top: 100
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds,
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(innerBounds.left, win.innerBounds.left);
+ chrome.test.assertEq(innerBounds.height, win.innerBounds.height);
+ chrome.test.assertEq(outerBounds.top, win.outerBounds.top);
+ chrome.test.assertEq(outerBounds.width, win.outerBounds.width);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testPositionOnly() {
+ var outerBounds = {
+ left: 150,
+ top: 100
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.left, win.outerBounds.left);
+ chrome.test.assertEq(outerBounds.top, win.outerBounds.top);
+ chrome.test.assertTrue(win.innerBounds.width > 0);
+ chrome.test.assertTrue(win.innerBounds.height > 0);
+ chrome.test.assertTrue(win.outerBounds.width > 0);
+ chrome.test.assertTrue(win.outerBounds.height > 0);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testSizeOnly() {
+ var outerBounds = {
+ width: 500,
+ height: 400
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.width, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.height, win.outerBounds.height);
+ assertBoundsConsistent(win);
+ assertConstraintsUnspecified(win);
+ win.close();
+ }));
+ },
+ function testConflictingProperties() {
+ testConflictingBoundsProperty("width");
+ testConflictingBoundsProperty("height");
+ testConflictingBoundsProperty("left");
+ testConflictingBoundsProperty("top");
+ testConflictingBoundsProperty("minWidth");
+ testConflictingBoundsProperty("minHeight");
+ testConflictingBoundsProperty("maxWidth");
+ testConflictingBoundsProperty("maxHeight");
+ }
+ ]);
+}
+
+function testInitialBoundsInStable() {
+ chrome.test.runTests([
+ function testInnerBounds() {
+ var innerBounds = {
+ width: 600,
+ height: 400
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds
+ }, callbackFail('innerBounds and outerBounds are only available in'+
+ ' dev channel.')
+ );
+ },
+ function testOuterBounds() {
+ var outerBounds = {
+ width: 600,
+ height: 400
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackFail('innerBounds and outerBounds are only available in'+
+ ' dev channel.')
+ );
+ }
+ ]);
+}
+
+function testInitialConstraints() {
+ chrome.test.runTests([
+ function testMaxInnerConstraints() {
+ var innerBounds = {
+ width: 800,
+ height: 600,
+ maxWidth: 500,
+ maxHeight: 400
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(innerBounds.maxWidth, win.innerBounds.width);
+ chrome.test.assertEq(innerBounds.maxHeight, win.innerBounds.height);
+ chrome.test.assertEq(innerBounds.maxWidth, win.innerBounds.maxWidth);
+ chrome.test.assertEq(innerBounds.maxHeight, win.innerBounds.maxHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testMinInnerConstraints() {
+ var innerBounds = {
+ width: 100,
+ height: 100,
+ minWidth: 300,
+ minHeight: 200
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(innerBounds.minWidth, win.innerBounds.width);
+ chrome.test.assertEq(innerBounds.minHeight, win.innerBounds.height);
+ chrome.test.assertEq(innerBounds.minWidth, win.innerBounds.minWidth);
+ chrome.test.assertEq(innerBounds.minHeight, win.innerBounds.minHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testMaxOuterConstraints() {
+ var outerBounds = {
+ width: 800,
+ height: 600,
+ maxWidth: 500,
+ maxHeight: 400
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.maxWidth, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.maxHeight, win.outerBounds.height);
+ chrome.test.assertEq(outerBounds.maxWidth, win.outerBounds.maxWidth);
+ chrome.test.assertEq(outerBounds.maxHeight, win.outerBounds.maxHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testMinOuterConstraints() {
+ var outerBounds = {
+ width: 100,
+ height: 100,
+ minWidth: 300,
+ minHeight: 200
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.minHeight, win.outerBounds.height);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.minWidth);
+ chrome.test.assertEq(outerBounds.minHeight, win.outerBounds.minHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testMixedConstraints() {
+ var innerBounds = {
+ width: 100,
+ minHeight: 300
+ };
+ var outerBounds = {
+ height: 100,
+ minWidth: 400,
+ };
+ chrome.app.window.create('test.html', {
+ innerBounds: innerBounds,
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.width);
+ chrome.test.assertEq(innerBounds.minHeight, win.innerBounds.height);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.minWidth);
+ chrome.test.assertEq(innerBounds.minHeight, win.innerBounds.minHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ function testBadConstraints() {
+ var outerBounds = {
+ width: 500,
+ height: 400,
+ minWidth: 800,
+ minHeight: 700,
+ maxWidth: 300,
+ maxHeight: 200
+ };
+ chrome.app.window.create('test.html', {
+ outerBounds: outerBounds
+ }, callbackPass(function(win) {
+ chrome.test.assertTrue(win != null);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.width);
+ chrome.test.assertEq(outerBounds.minHeight, win.outerBounds.height);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.minWidth);
+ chrome.test.assertEq(outerBounds.minHeight, win.outerBounds.minHeight);
+ chrome.test.assertEq(outerBounds.minWidth, win.outerBounds.maxWidth);
+ chrome.test.assertEq(outerBounds.minHeight, win.outerBounds.maxHeight);
+ assertBoundsConsistent(win);
+ win.close();
+ }));
+ },
+ ]);
+}
+
benwells 2014/03/05 02:33:30 These tests are awesome, hopefully they won't suff
function testSingleton() {
chrome.test.runTests([
function noParameterWithId() {

Powered by Google App Engine
This is Rietveld 408576698