commit db33163a990774baf8d97b8159ac80d96027e2c0
parent d826e6b0e886596f6c54e575e6231bdd38b71035
Author: Dan Stillman <dstillman@zotero.org>
Date: Wed, 23 Mar 2016 20:43:13 -0400
Fix Advanced Search window
Diffstat:
2 files changed, 45 insertions(+), 4 deletions(-)
diff --git 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
@@ -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);
+ });
+});