From 071dbb48e7e301c90a44b19e0acbf58525da01d8 Mon Sep 17 00:00:00 2001 From: Kasper Nilsson Date: Thu, 23 Mar 2017 11:55:16 -0700 Subject: [PATCH] Fix error in file-list setReviewedFiles logic The shownFiles array was referenced in _setReviewedFiles instead of the files array, causing an undefined error due to accessing an array with an out of bounds index. This change fixes that, and removes the stub call that would have caught this issue. Bug: Issue 5853 Change-Id: I17175796d8d67ca4d53f6ce2f82a59ff2ebc4010 (cherry picked from commit 7011651093b046b3289ad60418eb0d5f4fdd5dfe) --- .../app/elements/change/gr-file-list/gr-file-list.js | 7 ++++--- .../elements/change/gr-file-list/gr-file-list_test.html | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js index 3fc9440747..a0189f240e 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js +++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js @@ -118,7 +118,7 @@ observers: [ '_expandedPathsChanged(_expandedFilePaths.splices)', - '_setReviewedFiles(_shownFiles, _files, _reviewed.*)', + '_setReviewedFiles(_shownFiles, _files, _reviewed.*, _loggedIn)', ], keyBindings: { @@ -658,11 +658,12 @@ return files.base.slice(0, numFilesShown); }, - _setReviewedFiles: function(shownFiles, files, reviewedRecord) { + _setReviewedFiles: function(shownFiles, files, reviewedRecord, loggedIn) { + if (!loggedIn) { return; } var reviewed = reviewedRecord.base; var fileReviewed; for (var i = 0; i < files.length; i++) { - fileReviewed = this._computeReviewed(shownFiles[i], reviewed); + fileReviewed = this._computeReviewed(files[i], reviewed); this._files[i].isReviewed = fileReviewed; if (i < shownFiles.length) { this.set(['_shownFiles', i, 'isReviewed'], fileReviewed); diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html index 18796f6df5..66ad66ca31 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html +++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html @@ -535,6 +535,7 @@ limitations under the License. {__path: 'myfile.txt'}, ]; element._reviewed = ['/COMMIT_MSG', 'myfile.txt']; + element._loggedIn = true; element.changeNum = '42'; element.patchRange = { basePatchNum: 'PARENT', @@ -704,7 +705,6 @@ limitations under the License. test('show/hide diffs disabled for large amounts of files', function(done) { var computeSpy = sandbox.spy(element, '_fileListActionsVisible'); - sandbox.stub(element, '_setReviewedFiles'); element._files = []; element.changeNum = '42'; element.patchRange = { @@ -868,6 +868,7 @@ limitations under the License. done(); }); }); + test('_renderInOrder logged in', function(done) { element._isLoggedIn = true; var reviewStub = sandbox.stub(element, '_reviewFile');