gecko/browser/base/content/test/newtab/browser_newtab_bug991210.js
Ed Lee 893190ba16 Bug 991210 - [new tab page] Tiles are sometimes arranged all in a single line (wrapping as appropriate, e.g. to two lines with 5 items and then 4 items), instead of 3x3 grid [r=adw]
Always Grid_init before "load", defer size calculation to "load", and only wait for links cache for site rendering. Clean up timers triggered from previous tests to avoid unexpected updates.

--HG--
extra : rebase_source : aba79dc12fd3660c50d8004197a6b2f5a23419cb
2014-04-15 12:14:09 -07:00

42 lines
1.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
const PRELOAD_PREF = "browser.newtab.preload";
function runTests() {
// turn off preload to ensure that a newtab page loads
Services.prefs.setBoolPref(PRELOAD_PREF, false);
// add a test provider that waits for load
let afterLoadProvider = {
getLinks: function(callback) {
this.callback = callback;
},
addObserver: function() {},
};
NewTabUtils.links.addProvider(afterLoadProvider);
// wait until about:newtab loads before calling provider callback
addNewTabPageTab();
let browser = gWindow.gBrowser.selectedTab.linkedBrowser;
yield browser.addEventListener("load", function onLoad() {
browser.removeEventListener("load", onLoad, true);
// afterLoadProvider.callback has to be called asynchronously to make grid
// initilize after "load" event was handled
executeSoon(() => afterLoadProvider.callback([]));
}, true);
let {_cellMargin, _cellHeight, _cellWidth, node} = getGrid();
isnot(_cellMargin, null, "grid has a computed cell margin");
isnot(_cellHeight, null, "grid has a computed cell height");
isnot(_cellWidth, null, "grid has a computed cell width");
let {height, maxHeight, maxWidth} = node.style;
isnot(height, "", "grid has a computed grid height");
isnot(maxHeight, "", "grid has a computed grid max-height");
isnot(maxWidth, "", "grid has a computed grid max-width");
// restore original state
NewTabUtils.links.removeProvider(afterLoadProvider);
Services.prefs.clearUserPref(PRELOAD_PREF);
}