mc tests- fixing intermittent crashes
This commit is contained in:
parent
932628981f
commit
9201c7caa7
@ -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)
|
||||||
|
|
||||||
|
@ -6,78 +6,85 @@ 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) {
|
||||||
// Overall sanity tests
|
runTests(document, window);
|
||||||
//
|
|
||||||
ok(document.querySelector('div#viewer'), "document content has viewer UI");
|
|
||||||
ok('PDFJS' in window.wrappedJSObject, "window content has PDFJS object");
|
|
||||||
|
|
||||||
//
|
|
||||||
// Sidebar: open
|
|
||||||
//
|
|
||||||
var sidebar = document.querySelector('button#sidebarToggle'),
|
|
||||||
outerContainer = document.querySelector('div#outerContainer');
|
|
||||||
|
|
||||||
sidebar.click();
|
|
||||||
ok(outerContainer.classList.contains('sidebarOpen'), 'sidebar opens on click');
|
|
||||||
|
|
||||||
// Thumbnails are created asynchronously - wait for them
|
|
||||||
waitForElement(document, 'canvas#thumbnail2', function(error, thumbnail) {
|
|
||||||
if (error)
|
|
||||||
finish();
|
|
||||||
|
|
||||||
//
|
|
||||||
// Page change from thumbnail click
|
|
||||||
//
|
|
||||||
var pageNumber = document.querySelector('input#pageNumber');
|
|
||||||
is(parseInt(pageNumber.value), 1, 'initial page is 1');
|
|
||||||
|
|
||||||
ok(thumbnail, 'thumbnail2 is available');
|
|
||||||
if (thumbnail) {
|
|
||||||
thumbnail.click();
|
|
||||||
is(parseInt(pageNumber.value), 2, 'clicking on thumbnail changes page');
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Sidebar: close
|
|
||||||
//
|
|
||||||
sidebar.click();
|
|
||||||
ok(!outerContainer.classList.contains('sidebarOpen'), 'sidebar closes on click');
|
|
||||||
|
|
||||||
//
|
|
||||||
// Page change from prev/next buttons
|
|
||||||
//
|
|
||||||
var prevPage = document.querySelector('button#previous'),
|
|
||||||
nextPage = document.querySelector('button#next');
|
|
||||||
|
|
||||||
nextPage.click();
|
|
||||||
is(parseInt(pageNumber.value), 2, 'page increases after clicking on next');
|
|
||||||
|
|
||||||
prevPage.click();
|
|
||||||
is(parseInt(pageNumber.value), 1, 'page decreases after clicking on previous');
|
|
||||||
|
|
||||||
//
|
|
||||||
// Bookmark button
|
|
||||||
//
|
|
||||||
var viewBookmark = document.querySelector('a#viewBookmark');
|
|
||||||
viewBookmark.click();
|
|
||||||
ok(viewBookmark.href.length > 0, 'viewBookmark button has href');
|
|
||||||
|
|
||||||
finish();
|
|
||||||
});
|
});
|
||||||
}, true, true);
|
}, true);
|
||||||
|
}
|
||||||
|
|
||||||
registerCleanupFunction(function() {
|
function runTests(document, window) {
|
||||||
gBrowser.removeTab(tab);
|
//
|
||||||
|
// Overall sanity tests
|
||||||
|
//
|
||||||
|
ok(document.querySelector('div#viewer'), "document content has viewer UI");
|
||||||
|
ok('PDFJS' in window.wrappedJSObject, "window content has PDFJS object");
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sidebar: open
|
||||||
|
//
|
||||||
|
var sidebar = document.querySelector('button#sidebarToggle'),
|
||||||
|
outerContainer = document.querySelector('div#outerContainer');
|
||||||
|
|
||||||
|
sidebar.click();
|
||||||
|
ok(outerContainer.classList.contains('sidebarOpen'), 'sidebar opens on click');
|
||||||
|
|
||||||
|
// Thumbnails are created asynchronously - wait for them
|
||||||
|
waitForElement(document, 'canvas#thumbnail2', function(error, thumbnail) {
|
||||||
|
if (error)
|
||||||
|
finish();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Page change from thumbnail click
|
||||||
|
//
|
||||||
|
var pageNumber = document.querySelector('input#pageNumber');
|
||||||
|
is(parseInt(pageNumber.value), 1, 'initial page is 1');
|
||||||
|
|
||||||
|
ok(thumbnail, 'thumbnail2 is available');
|
||||||
|
if (thumbnail) {
|
||||||
|
thumbnail.click();
|
||||||
|
is(parseInt(pageNumber.value), 2, 'clicking on thumbnail changes page');
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sidebar: close
|
||||||
|
//
|
||||||
|
sidebar.click();
|
||||||
|
ok(!outerContainer.classList.contains('sidebarOpen'), 'sidebar closes on click');
|
||||||
|
|
||||||
|
//
|
||||||
|
// Page change from prev/next buttons
|
||||||
|
//
|
||||||
|
var prevPage = document.querySelector('button#previous'),
|
||||||
|
nextPage = document.querySelector('button#next');
|
||||||
|
|
||||||
|
nextPage.click();
|
||||||
|
is(parseInt(pageNumber.value), 2, 'page increases after clicking on next');
|
||||||
|
|
||||||
|
prevPage.click();
|
||||||
|
is(parseInt(pageNumber.value), 1, 'page decreases after clicking on previous');
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bookmark button
|
||||||
|
//
|
||||||
|
var viewBookmark = document.querySelector('a#viewBookmark');
|
||||||
|
viewBookmark.click();
|
||||||
|
ok(viewBookmark.href.length > 0, 'viewBookmark button has href');
|
||||||
|
|
||||||
|
finish();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
});
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user