Merge pull request #1739 from arturadib/mozcentral-stuff
Fixed moz-central manifest; bundle Mochitests
This commit is contained in:
commit
c4e2c630a5
3
extensions/firefox/chrome-mozcentral.manifest
Normal file
3
extensions/firefox/chrome-mozcentral.manifest
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
resource pdf.js content/
|
||||||
|
component {6457a96b-2d68-439a-bcfa-44465fbcdbb1} components/PdfStreamConverter.js
|
||||||
|
contract @mozilla.org/streamconv;1?from=application/pdf&to=*/* {6457a96b-2d68-439a-bcfa-44465fbcdbb1}
|
13
make.js
13
make.js
@ -377,9 +377,10 @@ target.mozcentral = function() {
|
|||||||
echo('### Building mozilla-central extension');
|
echo('### Building mozilla-central extension');
|
||||||
|
|
||||||
var MOZCENTRAL_DIR = BUILD_DIR + 'mozcentral/',
|
var MOZCENTRAL_DIR = BUILD_DIR + 'mozcentral/',
|
||||||
MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + 'browser/app/profile/extensions/uriloader@pdf.js/',
|
MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + 'browser/extensions/pdfjs/',
|
||||||
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + 'content/',
|
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + 'content/',
|
||||||
MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + 'browser/locales/en-US/pdfviewer/',
|
MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + 'browser/locales/en-US/pdfviewer/',
|
||||||
|
MOZCENTRAL_TEST_DIR = MOZCENTRAL_EXTENSION_DIR + 'test/',
|
||||||
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/',
|
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/',
|
||||||
FIREFOX_EXTENSION_FILES_TO_COPY =
|
FIREFOX_EXTENSION_FILES_TO_COPY =
|
||||||
['*.js',
|
['*.js',
|
||||||
@ -393,8 +394,7 @@ target.mozcentral = function() {
|
|||||||
DEFAULT_LOCALE_FILES =
|
DEFAULT_LOCALE_FILES =
|
||||||
[LOCALE_SRC_DIR + 'en-US/viewer.properties'],
|
[LOCALE_SRC_DIR + 'en-US/viewer.properties'],
|
||||||
FIREFOX_MC_EXTENSION_FILES =
|
FIREFOX_MC_EXTENSION_FILES =
|
||||||
['bootstrap.js',
|
['icon.png',
|
||||||
'icon.png',
|
|
||||||
'icon64.png',
|
'icon64.png',
|
||||||
'chrome.manifest',
|
'chrome.manifest',
|
||||||
'components',
|
'components',
|
||||||
@ -415,6 +415,8 @@ target.mozcentral = function() {
|
|||||||
// Copy extension files
|
// Copy extension files
|
||||||
cd('extensions/firefox');
|
cd('extensions/firefox');
|
||||||
cp('-R', FIREFOX_EXTENSION_FILES_TO_COPY, ROOT_DIR + MOZCENTRAL_EXTENSION_DIR);
|
cp('-R', FIREFOX_EXTENSION_FILES_TO_COPY, ROOT_DIR + MOZCENTRAL_EXTENSION_DIR);
|
||||||
|
mv('-f', ROOT_DIR + MOZCENTRAL_EXTENSION_DIR + '/chrome-mozcentral.manifest',
|
||||||
|
ROOT_DIR + MOZCENTRAL_EXTENSION_DIR + '/chrome.manifest')
|
||||||
cd(ROOT_DIR);
|
cd(ROOT_DIR);
|
||||||
|
|
||||||
// Copy a standalone version of pdf.js inside the content directory
|
// Copy a standalone version of pdf.js inside the content directory
|
||||||
@ -457,6 +459,11 @@ target.mozcentral = function() {
|
|||||||
extensionFiles += file+'\n';
|
extensionFiles += file+'\n';
|
||||||
});
|
});
|
||||||
extensionFiles.to('extension-files');
|
extensionFiles.to('extension-files');
|
||||||
|
cd(ROOT_DIR);
|
||||||
|
|
||||||
|
// Copy test files
|
||||||
|
mkdir('-p', MOZCENTRAL_TEST_DIR);
|
||||||
|
cp('-Rf', 'test/mozcentral/*', MOZCENTRAL_TEST_DIR);
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
21
test/mozcentral/Makefile.in
Normal file
21
test/mozcentral/Makefile.in
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
DEPTH = ../../../..
|
||||||
|
topsrcdir = @top_srcdir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
relativesrcdir = browser/extensions/pdfjs/test
|
||||||
|
|
||||||
|
include $(DEPTH)/config/autoconf.mk
|
||||||
|
include $(topsrcdir)/config/rules.mk
|
||||||
|
|
||||||
|
_BROWSER_TEST_FILES = \
|
||||||
|
head.js \
|
||||||
|
browser_pdfjs_main.js \
|
||||||
|
file_pdfjs_test.pdf \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
libs:: $(_BROWSER_TEST_FILES)
|
||||||
|
$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
|
102
test/mozcentral/browser_pdfjs_main.js
Normal file
102
test/mozcentral/browser_pdfjs_main.js
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
/* 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;
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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) {
|
||||||
|
if (error)
|
||||||
|
finish();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Page change from thumbnail click
|
||||||
|
//
|
||||||
|
var pageNumber = document.querySelector('input#pageNumber');
|
||||||
|
is(parseInt(pageNumber.value), 1, 'initial page is 1');
|
||||||
|
|
||||||
|
var thumbnail = document.querySelector('canvas#thumbnail2');
|
||||||
|
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');
|
||||||
|
|
||||||
|
//
|
||||||
|
// Zoom in/out
|
||||||
|
//
|
||||||
|
var zoomOut = document.querySelector('button.zoomOut'),
|
||||||
|
zoomIn = document.querySelector('button.zoomIn');
|
||||||
|
|
||||||
|
// Zoom in
|
||||||
|
var oldWidth = document.querySelector('canvas#page1').width;
|
||||||
|
zoomIn.click();
|
||||||
|
var newWidth = document.querySelector('canvas#page1').width;
|
||||||
|
ok(oldWidth < newWidth, 'zooming in increases page width (old: '+oldWidth+', new: '+newWidth+')');
|
||||||
|
|
||||||
|
// Zoom out
|
||||||
|
var oldWidth = document.querySelector('canvas#page1').width;
|
||||||
|
zoomOut.click();
|
||||||
|
var newWidth = document.querySelector('canvas#page1').width;
|
||||||
|
ok(oldWidth > newWidth, 'zooming out decreases page width (old: '+oldWidth+', new: '+newWidth+')');
|
||||||
|
|
||||||
|
finish();
|
||||||
|
});
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
|
registerCleanupFunction(function() {
|
||||||
|
gBrowser.removeTab(tab);
|
||||||
|
});
|
||||||
|
}
|
BIN
test/mozcentral/file_pdfjs_test.pdf
Normal file
BIN
test/mozcentral/file_pdfjs_test.pdf
Normal file
Binary file not shown.
21
test/mozcentral/head.js
Normal file
21
test/mozcentral/head.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Waits for element 'el' to exist in the DOM of 'doc' before executing 'callback'
|
||||||
|
// Useful when elements are created asynchronously, e.g. after a Web Worker task
|
||||||
|
function waitForElement(doc, el, callback) {
|
||||||
|
var time = 0,
|
||||||
|
interval = 10,
|
||||||
|
timeout = 5000;
|
||||||
|
|
||||||
|
var checkEl = setInterval(function() {
|
||||||
|
if (doc.querySelector(el)) {
|
||||||
|
clearInterval(checkEl);
|
||||||
|
if (callback) callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
time += interval;
|
||||||
|
if (time > timeout) {
|
||||||
|
ok(false, 'waitForElement timed out on element: '+el);
|
||||||
|
clearInterval(checkEl);
|
||||||
|
if (callback) callback(true);
|
||||||
|
}
|
||||||
|
}, interval);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user