www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 51b3951fb0eae751142e33aee5c1c62a92fb8aa2
parent 86b50427814e7a3e8180dfc2a516a363df1d017e
Author: Dan Stillman <dstillman@zotero.org>
Date:   Sat,  2 Jul 2016 01:26:44 -0400

Maintain open state of groups on collectionTreeView refresh()

Diffstat:
Mchrome/content/zotero/xpcom/collectionTreeView.js | 1+
Mtest/tests/collectionTreeViewTest.js | 29+++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/chrome/content/zotero/xpcom/collectionTreeView.js b/chrome/content/zotero/xpcom/collectionTreeView.js @@ -262,6 +262,7 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function* new Zotero.CollectionTreeRow('group', group), added++ ); + added += yield this._expandRow(newRows, added - 1); } } diff --git a/test/tests/collectionTreeViewTest.js b/test/tests/collectionTreeViewTest.js @@ -37,6 +37,35 @@ describe("Zotero.CollectionTreeView", function() { assert.strictEqual(Zotero.Prefs.get('duplicateLibraries'), ""); assert.strictEqual(Zotero.Prefs.get('unfiledLibraries'), ""); }); + + it("should maintain open state of group", function* () { + var group1 = yield createGroup(); + var group2 = yield createGroup(); + var group1Row = cv.getRowIndexByID(group1.treeViewID); + var group2Row = cv.getRowIndexByID(group2.treeViewID); + + // Open group 1 and close group 2 + if (!cv.isContainerOpen(group1Row)) { + yield cv.toggleOpenState(group1Row); + } + if (cv.isContainerOpen(group2Row)) { + yield cv.toggleOpenState(group2Row); + } + // Don't wait for delayed save + cv._saveOpenStates(); + + group1Row = cv.getRowIndexByID(group1.treeViewID); + group2Row = cv.getRowIndexByID(group2.treeViewID); + + yield cv.refresh(); + + // Group rows shouldn't have changed + assert.equal(cv.getRowIndexByID(group1.treeViewID), group1Row); + assert.equal(cv.getRowIndexByID(group2.treeViewID), group2Row); + // Group open states shouldn't have changed + assert.isTrue(cv.isContainerOpen(group1Row)); + assert.isFalse(cv.isContainerOpen(group2Row)); + }); }); describe("collapse/expand", function () {