mc tests- fixing intermittent crashes

This commit is contained in:
Artur Adib 2012-05-24 16:11:32 -04:00
parent 932628981f
commit 9201c7caa7
3 changed files with 72 additions and 129 deletions

View File

@ -14,7 +14,6 @@ include $(topsrcdir)/config/rules.mk
_BROWSER_TEST_FILES = \ _BROWSER_TEST_FILES = \
head.js \ head.js \
browser_pdfjs_main.js \ browser_pdfjs_main.js \
browser_pdfjs_zoom.js \
file_pdfjs_test.pdf \ file_pdfjs_test.pdf \
$(NULL) $(NULL)

View File

@ -6,16 +6,28 @@ const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR; const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
function test() { function test() {
waitForExplicitFinish(); var tab;
var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf"); waitForExplicitFinish();
registerCleanupFunction(function() {
gBrowser.removeTab(tab);
});
tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
var newTabBrowser = gBrowser.getBrowserForTab(tab); var newTabBrowser = gBrowser.getBrowserForTab(tab);
newTabBrowser.addEventListener("pagechange", function onPageChange() { newTabBrowser.addEventListener("load", function eventHandler() {
newTabBrowser.removeEventListener("pagechange", onPageChange, true); newTabBrowser.removeEventListener("load", eventHandler, true);
var document = newTabBrowser.contentDocument, var document = newTabBrowser.contentDocument,
window = newTabBrowser.contentWindow; window = newTabBrowser.contentWindow;
waitForElement(document, 'canvas#page1', function(err, page1) {
runTests(document, window);
});
}, true);
}
function runTests(document, window) {
// //
// Overall sanity tests // Overall sanity tests
// //
@ -75,9 +87,4 @@ function test() {
finish(); finish();
}); });
}, true, true);
registerCleanupFunction(function() {
gBrowser.removeTab(tab);
});
} }

View File

@ -1,63 +0,0 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
function test() {
waitForExplicitFinish();
var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
var newTabBrowser = gBrowser.getBrowserForTab(tab);
newTabBrowser.addEventListener("pagechange", function onPageChange() {
newTabBrowser.removeEventListener("pagechange", onPageChange, true);
var document = newTabBrowser.contentDocument,
window = newTabBrowser.contentWindow;
//
// Zoom in/out
//
var zoomOut = document.querySelector('button.zoomOut'),
zoomIn = document.querySelector('button.zoomIn');
var newWidth, oldWidth;
// We need to query the DOM every time since zoom in/out operations destroy the canvas element
waitForElement(document, 'canvas#page1', function(error, page1) {
if (error)
finish();
oldWidth = page1.width;
zoomIn.click();
waitForElement(document, 'canvas#page1', function(error, page1) {
if (error)
finish();
newWidth = page1.width;
ok(oldWidth < newWidth, 'zooming in increases page width (old: '+oldWidth+', new: '+newWidth+')');
// Zoom out
oldWidth = newWidth;
zoomOut.click();
waitForElement(document, 'canvas#page1', function(error, page1) {
if (error)
finish();
newWidth = page1.width;
ok(oldWidth > newWidth, 'zooming out decreases page width (old: '+oldWidth+', new: '+newWidth+')');
finish();
});
});
});
}, true, true);
registerCleanupFunction(function() {
gBrowser.removeTab(tab);
});
}