Fix Advanced Search window

This commit is contained in:
Dan Stillman 2016-03-23 20:43:13 -04:00
parent d826e6b0e8
commit db33163a99
2 changed files with 45 additions and 4 deletions

View file

@ -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;
}

View file

@ -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);
});
});