Merge "Fix null view mode for expanding diffs"

This commit is contained in:
Wyatt Allen
2017-09-12 23:27:47 +00:00
committed by Gerrit Code Review
2 changed files with 27 additions and 14 deletions

View File

@@ -260,8 +260,12 @@
} }
}, },
_setDiffViewMode() { /**
if (!this.viewState.diffViewMode) { * @param {boolean=} opt_reset
*/
_setDiffViewMode(opt_reset) {
if (!opt_reset && this.viewState.diffViewMode) { return; }
return this.$.restAPI.getPreferences().then( prefs => { return this.$.restAPI.getPreferences().then( prefs => {
if (!this.viewState.diffMode) { if (!this.viewState.diffMode) {
this.set('viewState.diffMode', prefs.default_diff_view); this.set('viewState.diffMode', prefs.default_diff_view);
@@ -271,7 +275,6 @@
this.set('viewState.diffMode', 'SIDE_BY_SIDE'); this.set('viewState.diffMode', 'SIDE_BY_SIDE');
} }
}); });
}
}, },
_updateSortedRevisions(revisionsRecord) { _updateSortedRevisions(revisionsRecord) {
@@ -619,7 +622,7 @@
this.viewState.changeNum !== this._changeNum) { this.viewState.changeNum !== this._changeNum) {
// Reset the diff mode to null when navigating from one change to // Reset the diff mode to null when navigating from one change to
// another, so that the user's preference is restored. // another, so that the user's preference is restored.
this.set('viewState.diffMode', null); this._setDiffViewMode(true);
this.set('_numFilesShown', DEFAULT_NUM_FILES_SHOWN); this.set('_numFilesShown', DEFAULT_NUM_FILES_SHOWN);
} }
this.set('viewState.changeNum', this._changeNum); this.set('viewState.changeNum', this._changeNum);

View File

@@ -440,12 +440,22 @@ limitations under the License.
element.params = {changeNum: '2'}; element.params = {changeNum: '2'};
element._change.newProp = '2'; element._change.newProp = '2';
flushAsynchronousOperations(); flushAsynchronousOperations();
assert.isNull(element.viewState.diffMode); assert.equal(element.viewState.diffMode, 'UNIFIED');
assert.equal(element.viewState.changeNum, '2'); assert.equal(element.viewState.changeNum, '2');
assert.equal(element.viewState.numFilesShown, 200); assert.equal(element.viewState.numFilesShown, 200);
assert.equal(element._numFilesShown, 200); assert.equal(element._numFilesShown, 200);
}); });
test('_setDiffViewMode is called with reset when new change is loaded',
() => {
sandbox.stub(element, '_setDiffViewMode');
element.viewState = {changeNum: 1};
element._changeNum = 2;
element._resetFileListViewState();
assert.isTrue(
element._setDiffViewMode.lastCall.calledWithExactly(true));
});
test('diffMode defaults to side by side without preferences', done => { test('diffMode defaults to side by side without preferences', done => {
sandbox.stub(element.$.restAPI, 'getPreferences').returns( sandbox.stub(element.$.restAPI, 'getPreferences').returns(
Promise.resolve({})); Promise.resolve({}));