Use A+ spec compatible promises.
This commit is contained in:
parent
b996e1b781
commit
ae1f973204
7 changed files with 240 additions and 198 deletions
|
@ -8,26 +8,25 @@ describe('api', function() {
|
|||
// TODO run with worker enabled
|
||||
PDFJS.disableWorker = true;
|
||||
var basicApiUrl = combineUrl(window.location.href, '../pdfs/basicapi.pdf');
|
||||
function waitsForPromise(promise) {
|
||||
waitsFor(function() {
|
||||
return promise.isResolved || promise.isRejected;
|
||||
}, 10000);
|
||||
}
|
||||
function expectAfterPromise(promise, successCallback) {
|
||||
waitsForPromise(promise);
|
||||
runs(function() {
|
||||
promise.then(successCallback,
|
||||
function(error, e) {
|
||||
// Shouldn't get here.
|
||||
expect(false).toEqual(true);
|
||||
});
|
||||
function waitsForPromise(promise, successCallback) {
|
||||
var data;
|
||||
promise.then(function(val) {
|
||||
data = val;
|
||||
successCallback(data);
|
||||
},
|
||||
function(error) {
|
||||
// Shouldn't get here.
|
||||
expect(false).toEqual(true);
|
||||
});
|
||||
waitsFor(function() {
|
||||
return data !== undefined;
|
||||
}, 10000);
|
||||
}
|
||||
describe('PDFJS', function() {
|
||||
describe('getDocument', function() {
|
||||
it('creates pdf doc from URL', function() {
|
||||
var promise = PDFJS.getDocument(basicApiUrl);
|
||||
expectAfterPromise(promise, function(data) {
|
||||
waitsForPromise(promise, function(data) {
|
||||
expect(true).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
@ -40,10 +39,9 @@ describe('api', function() {
|
|||
});
|
||||
describe('PDFDocument', function() {
|
||||
var promise = PDFJS.getDocument(basicApiUrl);
|
||||
waitsForPromise(promise);
|
||||
var doc;
|
||||
runs(function() {
|
||||
promise.then(function(data) { doc = data; });
|
||||
waitsForPromise(promise, function(data) {
|
||||
doc = data;
|
||||
});
|
||||
it('gets number of pages', function() {
|
||||
expect(doc.numPages).toEqual(3);
|
||||
|
@ -53,19 +51,19 @@ describe('api', function() {
|
|||
});
|
||||
it('gets page', function() {
|
||||
var promise = doc.getPage(1);
|
||||
expectAfterPromise(promise, function(data) {
|
||||
waitsForPromise(promise, function(data) {
|
||||
expect(true).toEqual(true);
|
||||
});
|
||||
});
|
||||
it('gets destinations', function() {
|
||||
var promise = doc.getDestinations();
|
||||
expectAfterPromise(promise, function(data) {
|
||||
waitsForPromise(promise, function(data) {
|
||||
// TODO this seems to be broken for the test pdf
|
||||
});
|
||||
});
|
||||
it('gets outline', function() {
|
||||
var promise = doc.getOutline();
|
||||
expectAfterPromise(promise, function(outline) {
|
||||
waitsForPromise(promise, function(outline) {
|
||||
// Two top level entries.
|
||||
expect(outline.length).toEqual(2);
|
||||
// Make sure some basic attributes are set.
|
||||
|
@ -76,7 +74,7 @@ describe('api', function() {
|
|||
});
|
||||
it('gets metadata', function() {
|
||||
var promise = doc.getMetadata();
|
||||
expectAfterPromise(promise, function(metadata) {
|
||||
waitsForPromise(promise, function(metadata) {
|
||||
expect(metadata.info['Title']).toEqual('Basic API Test');
|
||||
expect(metadata.metadata.get('dc:title')).toEqual('Basic API Test');
|
||||
});
|
||||
|
@ -89,13 +87,11 @@ describe('api', function() {
|
|||
promise.resolve(data);
|
||||
});
|
||||
});
|
||||
waitsForPromise(promise);
|
||||
var page;
|
||||
runs(function() {
|
||||
promise.then(function(data) {
|
||||
page = data;
|
||||
});
|
||||
waitsForPromise(promise, function(data) {
|
||||
page = data;
|
||||
});
|
||||
|
||||
it('gets ref', function() {
|
||||
expect(page.ref).toEqual({num: 15, gen: 0});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue