279 Commits

Author SHA1 Message Date
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
Andreas Gal
e9980c1558 remove toString code to avoid any future accidental implicit conversions 2011-06-18 01:18:21 -07:00
Andreas Gal
6dc697071e avoid toString conversion in lookup 2011-06-17 21:34:06 -07:00
Andreas Gal
5517602df0 speedup unicode/glyph conversion and cache translated strings in the font 2011-06-17 21:22:37 -07:00
Andreas Gal
2588eb054b IsInteger => IsInt 2011-06-17 20:17:10 -07:00
Andreas Gal
a4e1fba9ec even more error checking for font translation 2011-06-17 16:34:29 -07:00
Andreas Gal
050acaf5e0 add more error checking for font translation 2011-06-17 16:29:48 -07:00
Andreas Gal
22efbb3af3 rename test.html to viewer.html 2011-06-17 16:20:13 -07:00
Andreas Gal
735bfa5972 move cffStandardStrings into utils/ along with font_utils.js 2011-06-17 16:07:09 -07:00
Andreas Gal
1db4812c00 inline Encodings table into pdf.js and use getters for lazy construction 2011-06-17 15:48:17 -07:00
Chris Jones
3309bc8ceb Merge pull request #18 from vingtetun/master
Do not assume charset is defined and move some fonts timing to the right place
2011-06-17 12:07:28 -07:00
Vivien Nicolas
4bd3308b78 Do not assume charset is defined and move some fonts timing to the right place 2011-06-17 20:29:34 +02:00
andreasgal
ecedfb52d5 Merge pull request #16 from vingtetun/master
Clean up some debug leftovers (mostly dump/logs/minor signature changes)
2011-06-17 11:14:40 -07:00
Vivien Nicolas
172dadb008 Clean up some debug leftovers 2011-06-17 13:55:42 +02:00
Chris Jones
370303f005 render at 1.5x scale 2011-06-17 01:19:59 -07:00
Andreas Gal
fd269facbc 2nd attempt to make glyph list integers 2011-06-17 01:03:21 -07:00
Andreas Gal
4184414501 revert commit 2311c954f8b74297725bda9e90e3eabf79862193 2011-06-17 00:46:27 -07:00
Andreas Gal
2311c954f8 store unicode value as integer instead of hex string in glyphlist 2011-06-17 00:34:03 -07:00
Chris Jones
00bde52237 Merge pull request #13 from vingtetun/master
Fonts!
2011-06-17 00:20:57 -07:00
Vivien Nicolas
6f91d109c6 Rename PDFFonts.js to fonts.js 2011-06-17 09:11:03 +02:00
Vivien Nicolas
2b0fa98257 Merge with master 2011-06-17 09:06:19 +02:00
Andreas Gal
1b8f0883dd add blogs and twitter link 2011-06-17 14:45:50 +08:00
Vivien Nicolas
f8696259b7 Fix CIMM6/CIIM9 2011-06-17 08:36:52 +02:00
Vivien Nicolas
75baff40f4 Do not use stream when it is not necessary 2011-06-17 07:48:45 +02:00
Vivien Nicolas
7ec2ea1e2f Use a typed array in the CMAP construction function 2011-06-17 07:14:11 +02:00
Vivien Nicolas
ac020e26f1 Add a direct translation to one of the way to format charstring number in flattenCharstring (28, x, y) 2011-06-17 06:53:18 +02:00
Vivien Nicolas
fb9fb5e3fa Get rid or IsNum/IsString/IsArray in flattenCharstring 2011-06-17 06:44:16 +02:00
Chris Jones
7358b97eab Merge pull request #14 from debloper/master
Test-page updated to allow the user open local PDFs
2011-06-16 21:12:33 -07:00
Vivien Nicolas
bf44657825 Remove some leftovers from the previous patch 2011-06-17 06:06:24 +02:00
Vivien Nicolas
40d44174cf Rework some code to enhance performance (CIIM6/CIIM9 are rejected by the sanitizer now) 2011-06-17 06:02:29 +02:00
Andreas Gal
3430842c4d add blogs and twitter link 2011-06-16 09:37:15 -07:00
Vivien Nicolas
f56a742056 Remove some debug leftovers and add some comments about future directions for the code 2011-06-16 09:34:43 +02:00
Soumya Deb
2941da3a33 Test-page updated to allow the user open local PDFs 2011-06-16 12:14:02 +05:30
Vivien Nicolas
3dbfde89a3 Resolve the char->glyphs mapping issue 2011-06-16 03:55:45 +02:00
Vivien Nicolas
2e87e8ca83 Merge from gal's master branch (got a regression on the mapping between char->glyph) 2011-06-16 03:05:55 +02:00
Vivien Nicolas
15aad009c9 Change the nominalWidth to not use the format 28,b0,b1 but b0-139 in order to pass the sanitizer and disable TrueType support until it fully works 2011-06-16 02:17:45 +02:00
Vivien Nicolas
3eb36429f3 Use spaces to compare font size to detect when the @font-face rule works, this seems to be more accurate 2011-06-16 01:30:47 +02:00
Vivien Nicolas
c0ef98a9da Remove some useless JS function calls 2011-06-16 01:09:17 +02:00
Vivien Nicolas
d565193cbd Get rid of the PostScript interpreter (part 1) 2011-06-15 23:02:30 +02:00
Chris Jones
8ab68cf17a implement setDash 2011-06-15 12:55:48 -07:00
Chris Jones
672741bc5c Merge branch 'master' of github.com:andreasgal/pdf.js 2011-06-15 12:42:48 -07:00
Chris Jones
58c08ca00f Merge pull request #6 from sbarman/master
type 2 shading
2011-06-15 12:41:40 -07:00
sbarman
7077ad5b67 Merge branch 'master' of github.com:andreasgal/pdf.js
Conflicts:
	pdf.js
2011-06-15 12:37:05 -07:00
Chris Jones
0c4e4d1651 implement some operators and add TODOs for remaining undefined ones 2011-06-15 14:24:44 -05:00
sbarman
a0375c0f0b cleaned up fetchIfRef, changed switch-case to array lookup, changed IsFunction to IsPDFFunction 2011-06-15 11:34:47 -07:00
Andreas Gal
815544ab81 fixes suggested by @brendaneich 2011-06-15 00:37:15 -07:00
Vivien Nicolas
0ad010ecbd Make Type1 glyphs use the default width they declare 2011-06-15 09:21:59 +02:00
Andreas Gal
595f00f82a measure load/compile/render times 2011-06-15 00:20:26 -07:00
Andreas Gal
02df7f8e58 clarify API a bit and hand in xref and resources to ease translation 2011-06-14 23:44:59 -07:00
Andreas Gal
cf4bca7813 completed async font loading framework 2011-06-14 23:41:26 -07:00