old_contents: describe("PDF Recognition", function() {
  	var win;
  	
  	before(function* () {
  		if (Zotero.automatedTest) this.skip(); // TODO: Mock services
  		
  		this.timeout(60000);
  		// Load Zotero pane and install PDF tools
  		yield Zotero.Promise.all([
  			loadZoteroPane().then(w => win = w),
  			installPDFTools(),
  		]);
  	});
  	
  	beforeEach(function* () {
  		yield selectLibrary(win);
  	});
  	
  	afterEach(function() {
  		for(let win of getWindows("chrome://zotero/content/pdfProgress.xul")) {
  			win.close();
  		}
  	});
  	
  	after(function() {
  		win.close();
  	});
  
  	it("should recognize a PDF with a DOI within a collection", function* () {
  		this.timeout(30000);
  		// Import the PDF
  		var testdir = getTestDataDirectory();
  		testdir.append("recognizePDF_test_DOI.pdf");
  		
  		var col = yield createDataObject('collection');
  		yield waitForItemsLoad(win);
  		
  		var attachment = yield Zotero.Attachments.importFromFile({
  			file: testdir,
  			collections: [col.id]
  		});
  
  		// Recognize the PDF
  		win.Zotero_RecognizePDF.recognizeSelected();
  
  		var ids = yield waitForItemEvent("add");
  		yield waitForNotifierEvent('add', 'collection-item')
  		
  		var item = Zotero.Items.get(ids[0]);
  		assert.equal(item.getField("title"), "Shaping the Research Agenda");
  		assert.equal(item.getField("libraryCatalog"), "CrossRef");
  		assert.equal(attachment.parentID, item.id);
  		assert.isTrue(col.hasItem(item.id));
  	});
  
  	it("should recognize a PDF without a DOI", function* () {
  		this.timeout(30000);
  		// Import the PDF
  		var testdir = getTestDataDirectory();
  		testdir.append("recognizePDF_test_GS.pdf");
  		var item = yield Zotero.Attachments.importFromFile({
  			file: testdir
  		});
  		
  		// Recognize the PDF
  		win.Zotero_RecognizePDF.recognizeSelected();
  
  		var addedIDs = yield waitForItemEvent("add");
  		var modifiedIDs = yield waitForItemEvent("modify");
  		assert.lengthOf(addedIDs, 1);
  		var item = Zotero.Items.get(addedIDs[0]);
  		assert.equal(item.getField("title"), "Scaling study of an improved fermion action on quenched lattices");
  		assert.equal(item.getField("libraryCatalog"), "Google Scholar");
  		assert.lengthOf(modifiedIDs, 2);
  		
  		yield Zotero.Promise.delay(0);
  		
  		var progressWindow = getWindows("chrome://zotero/content/pdfProgress.xul")[0];
  		assert.equal(
  			progressWindow.document.getElementById("label").value,
  			Zotero.getString("recognizePDF.complete.label")
  		);
  	});
  });
new_contents: describe("PDF Recognition", function() {
  	var win;
  	
  	before(function* () {
  		if (Zotero.automatedTest) this.skip(); // TODO: Mock services
  		
  		this.timeout(60000);
  		// Load Zotero pane and install PDF tools
  		yield Zotero.Promise.all([
  			loadZoteroPane().then(w => win = w),
  			installPDFTools(),
  		]);
  	});
  	
  	beforeEach(function* () {
  		yield selectLibrary(win);
  	});
  	
  	afterEach(function() {
  		for(let win of getWindows("chrome://zotero/content/pdfProgress.xul")) {
  			win.close();
  		}
  	});
  	
  	after(function() {
  		if (win) {
  			win.close();
  		}
  	});
  
  	it("should recognize a PDF with a DOI within a collection", function* () {
  		this.timeout(30000);
  		// Import the PDF
  		var testdir = getTestDataDirectory();
  		testdir.append("recognizePDF_test_DOI.pdf");
  		
  		var col = yield createDataObject('collection');
  		yield waitForItemsLoad(win);
  		
  		var attachment = yield Zotero.Attachments.importFromFile({
  			file: testdir,
  			collections: [col.id]
  		});
  
  		// Recognize the PDF
  		win.Zotero_RecognizePDF.recognizeSelected();
  
  		var ids = yield waitForItemEvent("add");
  		yield waitForNotifierEvent('add', 'collection-item')
  		
  		var item = Zotero.Items.get(ids[0]);
  		assert.equal(item.getField("title"), "Shaping the Research Agenda");
  		assert.equal(item.getField("libraryCatalog"), "CrossRef");
  		assert.equal(attachment.parentID, item.id);
  		assert.isTrue(col.hasItem(item.id));
  	});
  
  	it("should recognize a PDF without a DOI", function* () {
  		this.timeout(30000);
  		// Import the PDF
  		var testdir = getTestDataDirectory();
  		testdir.append("recognizePDF_test_GS.pdf");
  		var item = yield Zotero.Attachments.importFromFile({
  			file: testdir
  		});
  		
  		// Recognize the PDF
  		win.Zotero_RecognizePDF.recognizeSelected();
  
  		var addedIDs = yield waitForItemEvent("add");
  		var modifiedIDs = yield waitForItemEvent("modify");
  		assert.lengthOf(addedIDs, 1);
  		var item = Zotero.Items.get(addedIDs[0]);
  		assert.equal(item.getField("title"), "Scaling study of an improved fermion action on quenched lattices");
  		assert.equal(item.getField("libraryCatalog"), "Google Scholar");
  		assert.lengthOf(modifiedIDs, 2);
  		
  		yield Zotero.Promise.delay(0);
  		
  		var progressWindow = getWindows("chrome://zotero/content/pdfProgress.xul")[0];
  		assert.equal(
  			progressWindow.document.getElementById("label").value,
  			Zotero.getString("recognizePDF.complete.label")
  		);
  	});
  });
subject: Fix Travis failure after skipped test