Fix nested translators that rely on child translator tags
This commit is contained in:
parent
e34c9e04e8
commit
7608e127f1
3 changed files with 60 additions and 11 deletions
|
@ -551,6 +551,49 @@ describe("Zotero.Translate", function() {
|
|||
assert.equal(pdf.attachmentLinkMode, Zotero.Attachments.LINK_MODE_IMPORTED_URL);
|
||||
checkTestTags(pdf, true);
|
||||
});
|
||||
|
||||
it('should not convert tags to canonical form in child translators', function* () {
|
||||
var childTranslator = buildDummyTranslator(1,
|
||||
`function detectWeb() {}
|
||||
function doImport() {
|
||||
var item = new Zotero.Item;
|
||||
item.itemType = "book";
|
||||
item.title = "The Definitive Guide of Owls";
|
||||
item.tags = ['owl', 'tag'];
|
||||
item.complete();
|
||||
}`, 'child-dummy-translator'
|
||||
);
|
||||
sinon.stub(Zotero.Translators, 'get').withArgs('child-dummy-translator').returns(childTranslator);
|
||||
|
||||
var parentTranslator = buildDummyTranslator(1,
|
||||
`function detectWeb() {}
|
||||
function doImport() {
|
||||
var translator = Zotero.loadTranslator("import");
|
||||
translator.setTranslator('child-dummy-translator');
|
||||
translator.setHandler('itemDone', Zotero.childItemDone);
|
||||
translator.translate();
|
||||
}`
|
||||
);
|
||||
|
||||
function childItemDone(obj, item) {
|
||||
// Non-canonical tags after child translator is done
|
||||
assert.deepEqual(['owl', 'tag'], item.tags);
|
||||
item.complete();
|
||||
}
|
||||
|
||||
var translate = new Zotero.Translate.Import();
|
||||
translate.setTranslator(parentTranslator);
|
||||
translate.setString("");
|
||||
yield translate._loadTranslator(parentTranslator);
|
||||
translate._sandboxManager.importObject({childItemDone});
|
||||
|
||||
var items = yield translate.translate();
|
||||
|
||||
// Canonicalized tags after parent translator
|
||||
assert.deepEqual([{tag: 'owl'}, {tag: 'tag'}], items[0].getTags());
|
||||
|
||||
Zotero.Translators.get.restore();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue