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 7011651093)
This commit is contained in:
Kasper Nilsson
2017-03-23 11:55:16 -07:00
committed by David Pursehouse
parent 14d009e036
commit 071dbb48e7
2 changed files with 6 additions and 4 deletions

View File

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

View File

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