Go to file
Chris Jones f7aa149778 Initial import of first test harness
The harness (test.py) operates as follows.  First it locates executable browsers
(or symlinks or scripts) named "[browser][version]", e.g. "firefox4".
It then launches the located browsers and asks them to load the file
test_slave.html.  At the same time, test.py sets up an HTTP server on
localhost:8080 (there's a race condition here currently ;).  After
test_slave loads in the browser(s), it fetches the task manifest
(test_manifest.json).  The entries in the manifest specify which PDF
to load and how many times to cycle through page rendering.  This will
probably evolve over time.  test_slave then performs the requested
tasks and POSTs the results back to test.py, which saves them.  When
all the results of for a task are in, test.py checks them.

There are three types of tests currently.  "==" tests compare the
rendering of a PDF against a master copy.  This is not yet implemented
because setting up a master copy is complicated.  "fbf" tests render
all a PDF's pages, then go back to page 1 and render all pages a
second time.  The renderings from the first round must match the ones
from the second round.  "load" tests just check that a PDF's pages
load without errors.

Currently the test harness will only launch a "firefox4" target.  This
can be a bash script in your pdf.js checkout, pdf.js/firefox4,
something like the following

 #!/bin/bash
 dist="/path/to/firefox4/installation"
 profile=`mktemp -dt 'pdf.js-test-ff-profile-XXXXXXXXXX'`
 $dist/firefox -no-remote -profile $profile $*
 rm -rf $profile

(Yes, this script doesn't clean up properly on early termination.)
It's possible to run the tests in a normal browsing session, but that
might be annoying.  With that set up, run the harness like so

 python test.py

If all goes well, you'll see all "TEST-PASS" messages printed to
stdout.  If something goes wrong, you'll see "TEST-UNEXPECTED-FAIL"
printed to stdout.
2011-06-18 18:09:21 -07:00
tests Initial import of first test harness 2011-06-18 18:09:21 -07:00
utils move cffStandardStrings into utils/ along with font_utils.js 2011-06-17 16:07:09 -07:00
compressed.tracemonkey-pldi-09.pdf replace wrong compressed pdf with the actual tracemonkey paper 2011-06-03 14:24:43 -07:00
fonts.js avoid toString conversion in lookup 2011-06-17 21:34:06 -07:00
glyphlist.js rename test.html to viewer.html 2011-06-17 16:20:13 -07:00
LICENSE added Shaon as contributor 2011-06-04 10:41:18 -07:00
pdf.js remove toString code to avoid any future accidental implicit conversions 2011-06-18 01:18:21 -07:00
README add blogs and twitter link 2011-06-16 09:37:15 -07:00
test_manifest.json Initial import of first test harness 2011-06-18 18:09:21 -07:00
test_slave.html Initial import of first test harness 2011-06-18 18:09:21 -07:00
test.py Initial import of first test harness 2011-06-18 18:09:21 -07:00
viewer.css rename test.html to viewer.html 2011-06-17 16:20:13 -07:00
viewer.html rename test.html to viewer.html 2011-06-17 16:20:13 -07:00
viewer.js rename test.html to viewer.html 2011-06-17 16:20:13 -07:00

pdf.js is a technology demonstrator prototype to explore whether the HTML5
platform is complete enough to faithfully and efficiently render the ISO
32000-1:2008 Portable Document Format (PDF) without native code assistance.

You can read more about pdf.js here:

http://andreasgal.com/2011/06/15/pdf-js/
http://blog.mozilla.com/cjones/2011/06/15/overview-of-pdf-js-guts/

Or follow us on twitter: @pdfjs

http://twitter.com/#!/pdfjs