diff --git a/chrome/content/zotero/advancedSearch.js b/chrome/content/zotero/advancedSearch.js index 24b293b51..62d9a3878 100644 --- a/chrome/content/zotero/advancedSearch.js +++ b/chrome/content/zotero/advancedSearch.js @@ -70,6 +70,7 @@ var ZoteroAdvancedSearch = new function() { isLibrary: function () { return false; }, isCollection: function () { return false; }, isSearch: function () { return true; }, + isFeed: () => false, isShare: function () { return false; }, isTrash: function () { return false; } } @@ -93,10 +94,8 @@ var ZoteroAdvancedSearch = new function() { // Don't clear the selected library s.libraryID = _searchBox.search.libraryID; s.addCondition('title', 'contains', '') - .then(function () { - _searchBox.search = s; - _searchBox.active = false; - }); + _searchBox.search = s; + _searchBox.active = false; } diff --git a/test/tests/advancedSearchTest.js b/test/tests/advancedSearchTest.js new file mode 100644 index 000000000..93ad2d009 --- /dev/null +++ b/test/tests/advancedSearchTest.js @@ -0,0 +1,42 @@ +"use strict"; + +describe("Advanced Search", function () { + var win, zp; + + before(function* () { + win = yield loadZoteroPane(); + zp = win.ZoteroPane; + }); + + after(function () { + win.close(); + }); + + it("should perform a search", function* () { + var item = yield createDataObject('item', { setTitle: true }); + + var promise = waitForWindow('chrome://zotero/content/advancedSearch.xul'); + zp.openAdvancedSearchWindow(); + var searchWin = yield promise; + + // Add condition + var searchBox = searchWin.document.getElementById('zotero-search-box'); + + var s = new Zotero.Search(); + s.addCondition('title', 'is', item.getField('title')) + searchBox.search = s; + + // Run search and wait for results + var o = searchWin.ZoteroAdvancedSearch; + var deferred = Zotero.Promise.defer(); + o.search(); + var iv = o.itemsView; + iv.addEventListener('load', () => deferred.resolve()); + yield deferred.promise; + + // Check results + assert.equal(iv.rowCount, 1); + var index = iv.getRowIndexByID(item.id); + assert.isNumber(index); + }); +});