ES6ify /gr-file-list/*
Bug: Issue 6179
Change-Id: I3e205a480e0b5fc148fa14d3e87bb5c05868e0c7
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 4647d81..74181b8 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
@@ -15,12 +15,12 @@
'use strict';
// Maximum length for patch set descriptions.
- var PATCH_DESC_MAX_LENGTH = 500;
- var WARN_SHOW_ALL_THRESHOLD = 1000;
- var COMMIT_MESSAGE_PATH = '/COMMIT_MSG';
- var MERGE_LIST_PATH = '/MERGE_LIST';
+ const PATCH_DESC_MAX_LENGTH = 500;
+ const WARN_SHOW_ALL_THRESHOLD = 1000;
+ const COMMIT_MESSAGE_PATH = '/COMMIT_MSG';
+ const MERGE_LIST_PATH = '/MERGE_LIST';
- var FileStatus = {
+ const FileStatus = {
A: 'Added',
C: 'Copied',
D: 'Deleted',
@@ -48,7 +48,7 @@
},
keyEventTarget: {
type: Object,
- value: function() { return document.body; },
+ value() { return document.body; },
},
change: Object,
diffViewMode: {
@@ -59,7 +59,7 @@
_files: {
type: Array,
observer: '_filesChanged',
- value: function() { return []; },
+ value() { return []; },
},
_loggedIn: {
type: Boolean,
@@ -67,7 +67,7 @@
},
_reviewed: {
type: Array,
- value: function() { return []; },
+ value() { return []; },
},
_diffAgainst: String,
diffPrefs: {
@@ -108,7 +108,7 @@
},
_expandedFilePaths: {
type: Array,
- value: function() { return []; },
+ value() { return []; },
},
},
@@ -140,60 +140,59 @@
'shift+a': '_handleCapitalAKey',
},
- reload: function() {
+ reload() {
if (!this.changeNum || !this.patchRange.patchNum) {
return Promise.resolve();
}
this._collapseAllDiffs();
- var promises = [];
- var _this = this;
+ const promises = [];
- promises.push(this._getFiles().then(function(files) {
- _this._files = files;
+ promises.push(this._getFiles().then(files => {
+ this._files = files;
}));
- promises.push(this._getLoggedIn().then(function(loggedIn) {
- return _this._loggedIn = loggedIn;
- }).then(function(loggedIn) {
+ promises.push(this._getLoggedIn().then(loggedIn => {
+ return this._loggedIn = loggedIn;
+ }).then(loggedIn => {
if (!loggedIn) { return; }
- return _this._getReviewedFiles().then(function(reviewed) {
- _this._reviewed = reviewed;
+ return this._getReviewedFiles().then(reviewed => {
+ this._reviewed = reviewed;
});
}));
this._localPrefs = this.$.storage.getPreferences();
- promises.push(this._getDiffPreferences().then(function(prefs) {
+ promises.push(this._getDiffPreferences().then(prefs => {
this.diffPrefs = prefs;
- }.bind(this)));
+ }));
- promises.push(this._getPreferences().then(function(prefs) {
+ promises.push(this._getPreferences().then(prefs => {
this._userPrefs = prefs;
if (!this.diffViewMode) {
this.set('diffViewMode', prefs.default_diff_view);
}
- }.bind(this)));
+ }));
},
get diffs() {
return Polymer.dom(this.root).querySelectorAll('gr-diff');
},
- openDiffPrefs: function() {
+ openDiffPrefs() {
this.$.diffPreferences.open();
},
- _calculatePatchChange: function(files) {
- var filesNoCommitMsg = files.filter(function(files) {
+ _calculatePatchChange(files) {
+ const filesNoCommitMsg = files.filter(files => {
return files.__path !== '/COMMIT_MSG';
});
- return filesNoCommitMsg.reduce(function(acc, obj) {
- var inserted = obj.lines_inserted ? obj.lines_inserted : 0;
- var deleted = obj.lines_deleted ? obj.lines_deleted : 0;
- var total_size = (obj.size && obj.binary) ? obj.size : 0;
- var size_delta_inserted =
+ return filesNoCommitMsg.reduce((acc, obj) => {
+ const inserted = obj.lines_inserted ? obj.lines_inserted : 0;
+ const deleted = obj.lines_deleted ? obj.lines_deleted : 0;
+ const total_size = (obj.size && obj.binary) ? obj.size : 0;
+ const size_delta_inserted =
obj.binary && obj.size_delta > 0 ? obj.size_delta : 0;
- var size_delta_deleted =
+ const size_delta_deleted =
obj.binary && obj.size_delta < 0 ? obj.size_delta : 0;
return {
@@ -207,22 +206,22 @@
size_delta_deleted: 0, total_size: 0});
},
- _getDiffPreferences: function() {
+ _getDiffPreferences() {
return this.$.restAPI.getDiffPreferences();
},
- _getPreferences: function() {
+ _getPreferences() {
return this.$.restAPI.getPreferences();
},
- _computePatchSetDisabled: function(patchNum, currentPatchNum) {
+ _computePatchSetDisabled(patchNum, currentPatchNum) {
return parseInt(patchNum, 10) >= parseInt(currentPatchNum, 10);
},
- _togglePathExpanded: function(path) {
+ _togglePathExpanded(path) {
// Is the path in the list of expanded diffs? IF so remove it, otherwise
// add it to the list.
- var pathIndex = this._expandedFilePaths.indexOf(path);
+ const pathIndex = this._expandedFilePaths.indexOf(path);
if (pathIndex === -1) {
this.push('_expandedFilePaths', path);
} else {
@@ -230,92 +229,92 @@
}
},
- _togglePathExpandedByIndex: function(index) {
+ _togglePathExpandedByIndex(index) {
this._togglePathExpanded(this._files[index].__path);
},
- _handlePatchChange: function(e) {
- var patchRange = Object.assign({}, this.patchRange);
+ _handlePatchChange(e) {
+ const patchRange = Object.assign({}, this.patchRange);
patchRange.basePatchNum = Polymer.dom(e).rootTarget.value;
page.show(this.encodeURL('/c/' + this.changeNum + '/' +
this._patchRangeStr(patchRange), true));
},
- _updateDiffPreferences: function() {
+ _updateDiffPreferences() {
if (!this.diffs.length) { return; }
// Re-render all expanded diffs sequentially.
- var timerName = 'Update ' + this._expandedFilePaths.length +
+ const timerName = 'Update ' + this._expandedFilePaths.length +
' diffs with new prefs';
this._renderInOrder(this._expandedFilePaths, this.diffs,
this._expandedFilePaths.length)
- .then(function() {
+ .then(() => {
this.$.reporting.timeEnd(timerName);
this.$.diffCursor.handleDiffUpdate();
- }.bind(this));
+ });
},
- _forEachDiff: function(fn) {
- var diffs = this.diffs;
- for (var i = 0; i < diffs.length; i++) {
+ _forEachDiff(fn) {
+ const diffs = this.diffs;
+ for (let i = 0; i < diffs.length; i++) {
fn(diffs[i]);
}
},
- _expandAllDiffs: function(e) {
+ _expandAllDiffs(e) {
this._showInlineDiffs = true;
// Find the list of paths that are in the file list, but not in the
// expanded list.
- var newPaths = [];
- var path;
- for (var i = 0; i < this._shownFiles.length; i++) {
+ const newPaths = [];
+ let path;
+ for (let i = 0; i < this._shownFiles.length; i++) {
path = this._shownFiles[i].__path;
- if (this._expandedFilePaths.indexOf(path) === -1) {
+ if (!this._expandedFilePaths.includes(path)) {
newPaths.push(path);
}
}
- this.splice.apply(this, ['_expandedFilePaths', 0, 0].concat(newPaths));
+ this.splice(...['_expandedFilePaths', 0, 0].concat(newPaths));
},
- _collapseAllDiffs: function(e) {
+ _collapseAllDiffs(e) {
this._showInlineDiffs = false;
this._expandedFilePaths = [];
this.$.diffCursor.handleDiffUpdate();
},
- _computeCommentsString: function(comments, patchNum, path) {
+ _computeCommentsString(comments, patchNum, path) {
return this._computeCountString(comments, patchNum, path, 'comment');
},
- _computeDraftsString: function(drafts, patchNum, path) {
+ _computeDraftsString(drafts, patchNum, path) {
return this._computeCountString(drafts, patchNum, path, 'draft');
},
- _computeDraftsStringMobile: function(drafts, patchNum, path) {
- var draftCount = this._computeCountString(drafts, patchNum, path);
+ _computeDraftsStringMobile(drafts, patchNum, path) {
+ const draftCount = this._computeCountString(drafts, patchNum, path);
return draftCount ? draftCount + 'd' : '';
},
- _computeCommentsStringMobile: function(comments, patchNum, path) {
- var commentCount = this._computeCountString(comments, patchNum, path);
+ _computeCommentsStringMobile(comments, patchNum, path) {
+ const commentCount = this._computeCountString(comments, patchNum, path);
return commentCount ? commentCount + 'c' : '';
},
- getCommentsForPath: function(comments, patchNum, path) {
- return (comments[path] || []).filter(function(c) {
+ getCommentsForPath(comments, patchNum, path) {
+ return (comments[path] || []).filter(c => {
return parseInt(c.patch_set, 10) === parseInt(patchNum, 10);
});
},
- _computeCountString: function(comments, patchNum, path, opt_noun) {
+ _computeCountString(comments, patchNum, path, opt_noun) {
if (!comments) { return ''; }
- var patchComments = this.getCommentsForPath(comments, patchNum, path);
- var num = patchComments.length;
+ const patchComments = this.getCommentsForPath(comments, patchNum, path);
+ const num = patchComments.length;
if (num === 0) { return ''; }
if (!opt_noun) { return num; }
- var output = num + ' ' + opt_noun + (num > 1 ? 's' : '');
+ const output = num + ' ' + opt_noun + (num > 1 ? 's' : '');
return output;
},
@@ -329,13 +328,13 @@
* @param {string} path
* @return {string}
*/
- _computeUnresolvedString: function(comments, drafts, patchNum, path) {
- var unresolvedNum = this.computeUnresolvedNum(
+ _computeUnresolvedString(comments, drafts, patchNum, path) {
+ const unresolvedNum = this.computeUnresolvedNum(
comments, drafts, patchNum, path);
return unresolvedNum === 0 ? '' : '(' + unresolvedNum + ' unresolved)';
},
- computeUnresolvedNum: function(comments, drafts, patchNum, path) {
+ computeUnresolvedNum(comments, drafts, patchNum, path) {
comments = this.getCommentsForPath(comments, patchNum, path);
drafts = this.getCommentsForPath(drafts, patchNum, path);
comments = comments.concat(drafts);
@@ -343,7 +342,7 @@
// Create an object where every comment ID is the key of an unresolved
// comment.
- var idMap = comments.reduce(function(acc, comment) {
+ const idMap = comments.reduce((acc, comment) => {
if (comment.unresolved) {
acc[comment.id] = true;
}
@@ -351,25 +350,25 @@
}, {});
// Set false for the comments that are marked as parents.
- comments.forEach(function(comment) {
+ for (const comment of comments) {
idMap[comment.in_reply_to] = false;
- });
+ }
// The unresolved comments are the comments that still have true.
- var unresolvedLeaves = Object.keys(idMap).filter(function(key) {
+ const unresolvedLeaves = Object.keys(idMap).filter(key => {
return idMap[key];
});
return unresolvedLeaves.length;
},
- _computeReviewed: function(file, _reviewed) {
- return _reviewed.indexOf(file.__path) !== -1;
+ _computeReviewed(file, _reviewed) {
+ return _reviewed.includes(file.__path);
},
- _reviewFile: function(path) {
- var index = this._reviewed.indexOf(path);
- var reviewed = index !== -1;
+ _reviewFile(path) {
+ const index = this._reviewed.indexOf(path);
+ const reviewed = index !== -1;
if (reviewed) {
this.splice('_reviewed', index, 1);
} else {
@@ -379,25 +378,25 @@
this._saveReviewedState(path, !reviewed);
},
- _saveReviewedState: function(path, reviewed) {
+ _saveReviewedState(path, reviewed) {
return this.$.restAPI.saveFileReviewed(this.changeNum,
this.patchRange.patchNum, path, reviewed);
},
- _getLoggedIn: function() {
+ _getLoggedIn() {
return this.$.restAPI.getLoggedIn();
},
- _getReviewedFiles: function() {
+ _getReviewedFiles() {
return this.$.restAPI.getReviewedFiles(this.changeNum,
this.patchRange.patchNum);
},
- _getFiles: function() {
+ _getFiles() {
return this.$.restAPI.getChangeFilesAsSpeciallySortedArray(
- this.changeNum, this.patchRange).then(function(files) {
+ this.changeNum, this.patchRange).then(files => {
// Append UI-specific properties.
- return files.map(function(file) {
+ return files.map(file => {
return file;
});
});
@@ -407,13 +406,13 @@
* Handle all events from the file list dom-repeat so event handleers don't
* have to get registered for potentially very long lists.
*/
- _handleFileListTap: function(e) {
+ _handleFileListTap(e) {
// Traverse upwards to find the row element if the target is not the row.
- var row = e.target;
+ let row = e.target;
while (!row.classList.contains('row') && row.parentElement) {
row = row.parentElement;
}
- var path = row.dataset.path;
+ const path = row.dataset.path;
// Handle checkbox mark as reviewed.
if (e.target.classList.contains('reviewed')) {
@@ -438,12 +437,12 @@
// anchor.
if (e.target.classList.contains('path') ||
e.target.classList.contains('oldPath')) {
- var a = row.querySelector('a');
+ const a = row.querySelector('a');
if (a) { a.click(); }
}
},
- _handleShiftLeftKey: function(e) {
+ _handleShiftLeftKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
if (!this._showInlineDiffs) { return; }
@@ -451,7 +450,7 @@
this.$.diffCursor.moveLeft();
},
- _handleShiftRightKey: function(e) {
+ _handleShiftRightKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
if (!this._showInlineDiffs) { return; }
@@ -459,7 +458,7 @@
this.$.diffCursor.moveRight();
},
- _handleIKey: function(e) {
+ _handleIKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e) ||
this.$.fileCursor.index === -1) { return; }
@@ -468,14 +467,14 @@
this._togglePathExpandedByIndex(this.$.fileCursor.index);
},
- _handleCapitalIKey: function(e) {
+ _handleCapitalIKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
e.preventDefault();
this._toggleInlineDiffs();
},
- _handleDownKey: function(e) {
+ _handleDownKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) || this.modifierPressed(e)) {
return;
}
@@ -489,7 +488,7 @@
}
},
- _handleUpKey: function(e) {
+ _handleUpKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) || this.modifierPressed(e)) {
return;
}
@@ -503,11 +502,11 @@
}
},
- _handleCKey: function(e) {
+ _handleCKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e)) { return; }
- var isRangeSelected = this.diffs.some(function(diff) {
+ const isRangeSelected = this.diffs.some(diff => {
return diff.isRangeSelected();
}, this);
if (this._showInlineDiffs && !isRangeSelected) {
@@ -516,21 +515,21 @@
}
},
- _handleLeftBracketKey: function(e) {
+ _handleLeftBracketKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
e.preventDefault();
this._openSelectedFile(this._files.length - 1);
},
- _handleRightBracketKey: function(e) {
+ _handleRightBracketKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
e.preventDefault();
this._openSelectedFile(0);
},
- _handleEnterKey: function(e) {
+ _handleEnterKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e)) { return; }
@@ -549,7 +548,7 @@
}
},
- _handleNKey: function(e) {
+ _handleNKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e) && !this.isModifierPressed(e, 'shiftKey')) {
return;
@@ -564,7 +563,7 @@
}
},
- _handlePKey: function(e) {
+ _handlePKey(e) {
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e) && !this.isModifierPressed(e, 'shiftKey')) {
return;
@@ -579,16 +578,16 @@
}
},
- _handleCapitalAKey: function(e) {
+ _handleCapitalAKey(e) {
if (this.shouldSuppressKeyboardShortcut(e)) { return; }
e.preventDefault();
- this._forEachDiff(function(diff) {
+ this._forEachDiff(diff => {
diff.toggleLeftDiff();
});
},
- _toggleInlineDiffs: function() {
+ _toggleInlineDiffs() {
if (this._showInlineDiffs) {
this._collapseAllDiffs();
} else {
@@ -596,13 +595,13 @@
}
},
- _openCursorFile: function() {
- var diff = this.$.diffCursor.getTargetDiffElement();
+ _openCursorFile() {
+ const diff = this.$.diffCursor.getTargetDiffElement();
page.show(this._computeDiffURL(diff.changeNum, diff.patchRange,
diff.path));
},
- _openSelectedFile: function(opt_index) {
+ _openSelectedFile(opt_index) {
if (opt_index != null) {
this.$.fileCursor.setCursorAtIndex(opt_index);
}
@@ -611,39 +610,39 @@
this._files[this.$.fileCursor.index].__path));
},
- _addDraftAtTarget: function() {
- var diff = this.$.diffCursor.getTargetDiffElement();
- var target = this.$.diffCursor.getTargetLineElement();
+ _addDraftAtTarget() {
+ const diff = this.$.diffCursor.getTargetDiffElement();
+ const target = this.$.diffCursor.getTargetLineElement();
if (diff && target) {
diff.addDraftAtLine(target);
}
},
- _shouldHideChangeTotals: function(_patchChange) {
+ _shouldHideChangeTotals(_patchChange) {
return _patchChange.inserted === 0 && _patchChange.deleted === 0;
},
- _shouldHideBinaryChangeTotals: function(_patchChange) {
+ _shouldHideBinaryChangeTotals(_patchChange) {
return _patchChange.size_delta_inserted === 0 &&
_patchChange.size_delta_deleted === 0;
},
- _computeFileStatus: function(status) {
+ _computeFileStatus(status) {
return status || 'M';
},
- _computeDiffURL: function(changeNum, patchRange, path) {
+ _computeDiffURL(changeNum, patchRange, path) {
return this.encodeURL(this.getBaseUrl() + '/c/' + changeNum + '/' +
this._patchRangeStr(patchRange) + '/' + path, true);
},
- _patchRangeStr: function(patchRange) {
+ _patchRangeStr(patchRange) {
return patchRange.basePatchNum !== 'PARENT' ?
patchRange.basePatchNum + '..' + patchRange.patchNum :
patchRange.patchNum + '';
},
- _computeFileDisplayName: function(path) {
+ _computeFileDisplayName(path) {
if (path === COMMIT_MESSAGE_PATH) {
return 'Commit message';
} else if (path === MERGE_LIST_PATH) {
@@ -652,65 +651,66 @@
return path;
},
- _computeTruncatedFileDisplayName: function(path) {
+ _computeTruncatedFileDisplayName(path) {
return util.truncatePath(this._computeFileDisplayName(path));
},
- _formatBytes: function(bytes) {
+ _formatBytes(bytes) {
if (bytes == 0) return '+/-0 B';
- var bits = 1024;
- var decimals = 1;
- var sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
- var exponent = Math.floor(Math.log(Math.abs(bytes)) / Math.log(bits));
- var prepend = bytes > 0 ? '+' : '';
+ const bits = 1024;
+ const decimals = 1;
+ const sizes =
+ ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
+ const exponent = Math.floor(Math.log(Math.abs(bytes)) / Math.log(bits));
+ const prepend = bytes > 0 ? '+' : '';
return prepend + parseFloat((bytes / Math.pow(bits, exponent))
.toFixed(decimals)) + ' ' + sizes[exponent];
},
- _formatPercentage: function(size, delta) {
- var oldSize = size - delta;
+ _formatPercentage(size, delta) {
+ const oldSize = size - delta;
if (oldSize === 0) { return ''; }
- var percentage = Math.round(Math.abs(delta * 100 / oldSize));
+ const percentage = Math.round(Math.abs(delta * 100 / oldSize));
return '(' + (delta > 0 ? '+' : '-') + percentage + '%)';
},
- _computeBinaryClass: function(delta) {
+ _computeBinaryClass(delta) {
if (delta === 0) { return; }
return delta >= 0 ? 'added' : 'removed';
},
- _computeClass: function(baseClass, path) {
- var classes = [baseClass];
+ _computeClass(baseClass, path) {
+ const classes = [baseClass];
if (path === COMMIT_MESSAGE_PATH || path === MERGE_LIST_PATH) {
classes.push('invisible');
}
return classes.join(' ');
},
- _computeExpandInlineClass: function(userPrefs) {
+ _computeExpandInlineClass(userPrefs) {
return userPrefs.expand_inline_diffs ? 'expandInline' : '';
},
- _computePathClass: function(path, expandedFilesRecord) {
+ _computePathClass(path, expandedFilesRecord) {
return this._isFileExpanded(path, expandedFilesRecord) ? 'path expanded' :
'path';
},
- _computeShowHideText: function(path, expandedFilesRecord) {
+ _computeShowHideText(path, expandedFilesRecord) {
return this._isFileExpanded(path, expandedFilesRecord) ? '▼' : '◀';
},
- _computeFilesShown: function(numFilesShown, files) {
+ _computeFilesShown(numFilesShown, files) {
return files.base.slice(0, numFilesShown);
},
- _setReviewedFiles: function(shownFiles, files, reviewedRecord, loggedIn) {
+ _setReviewedFiles(shownFiles, files, reviewedRecord, loggedIn) {
if (!loggedIn) { return; }
- var reviewed = reviewedRecord.base;
- var fileReviewed;
- for (var i = 0; i < files.length; i++) {
+ const reviewed = reviewedRecord.base;
+ let fileReviewed;
+ for (let i = 0; i < files.length; i++) {
fileReviewed = this._computeReviewed(files[i], reviewed);
this._files[i].isReviewed = fileReviewed;
if (i < shownFiles.length) {
@@ -719,56 +719,56 @@
}
},
- _updateDiffCursor: function() {
- var diffElements = Polymer.dom(this.root).querySelectorAll('gr-diff');
+ _updateDiffCursor() {
+ const diffElements = Polymer.dom(this.root).querySelectorAll('gr-diff');
// Overwrite the cursor's list of diffs:
- this.$.diffCursor.splice.apply(this.$.diffCursor,
- ['diffs', 0, this.$.diffCursor.diffs.length].concat(diffElements));
+ this.$.diffCursor.splice(
+ ...['diffs', 0, this.$.diffCursor.diffs.length].concat(diffElements));
},
- _filesChanged: function() {
+ _filesChanged() {
Polymer.dom.flush();
- var files = Polymer.dom(this.root).querySelectorAll('.file-row');
+ const files = Polymer.dom(this.root).querySelectorAll('.file-row');
this.$.fileCursor.stops = files;
this.$.fileCursor.setCursorAtIndex(this.selectedIndex, true);
},
- _incrementNumFilesShown: function() {
+ _incrementNumFilesShown() {
this.numFilesShown += this.fileListIncrement;
},
- _computeFileListButtonHidden: function(numFilesShown, files) {
+ _computeFileListButtonHidden(numFilesShown, files) {
return numFilesShown >= files.length;
},
- _computeIncrementText: function(numFilesShown, files) {
+ _computeIncrementText(numFilesShown, files) {
if (!files) { return ''; }
- var text =
+ const text =
Math.min(this.fileListIncrement, files.length - numFilesShown);
return 'Show ' + text + ' more';
},
- _computeShowAllText: function(files) {
+ _computeShowAllText(files) {
if (!files) { return ''; }
return 'Show all ' + files.length + ' files';
},
- _computeWarnShowAll: function(files) {
+ _computeWarnShowAll(files) {
return files.length > WARN_SHOW_ALL_THRESHOLD;
},
- _computeShowAllWarning: function(files) {
+ _computeShowAllWarning(files) {
if (!this._computeWarnShowAll(files)) { return ''; }
return 'Warning: showing all ' + files.length +
' files may take several seconds.';
},
- _showAllFiles: function() {
+ _showAllFiles() {
this.numFilesShown = this._files.length;
},
- _updateSelected: function(patchRange) {
+ _updateSelected(patchRange) {
this._diffAgainst = patchRange.basePatchNum;
},
@@ -783,7 +783,7 @@
*
* @return {String}
*/
- _getDiffViewMode: function(diffViewMode, userPrefs) {
+ _getDiffViewMode(diffViewMode, userPrefs) {
if (diffViewMode) {
return diffViewMode;
} else if (userPrefs) {
@@ -792,28 +792,28 @@
return 'SIDE_BY_SIDE';
},
- _fileListActionsVisible: function(shownFilesRecord,
+ _fileListActionsVisible(shownFilesRecord,
maxFilesForBulkActions) {
return shownFilesRecord.base.length <= maxFilesForBulkActions;
},
- _computePatchSetDescription: function(revisions, patchNum) {
- var rev = this.getRevisionByPatchNum(revisions, patchNum);
+ _computePatchSetDescription(revisions, patchNum) {
+ const rev = this.getRevisionByPatchNum(revisions, patchNum);
return (rev && rev.description) ?
rev.description.substring(0, PATCH_DESC_MAX_LENGTH) : '';
},
- _computeFileStatusLabel: function(status) {
- var statusCode = this._computeFileStatus(status);
+ _computeFileStatusLabel(status) {
+ const statusCode = this._computeFileStatus(status);
return FileStatus.hasOwnProperty(statusCode) ?
FileStatus[statusCode] : 'Status Unknown';
},
- _isFileExpanded: function(path, expandedFilesRecord) {
- return expandedFilesRecord.base.indexOf(path) !== -1;
+ _isFileExpanded(path, expandedFilesRecord) {
+ return expandedFilesRecord.base.includes(path);
},
- _onLineSelected: function(e, detail) {
+ _onLineSelected(e, detail) {
this.$.diffCursor.moveToLineNumber(detail.number, detail.side,
detail.path);
},
@@ -825,28 +825,28 @@
* one.
* @param {splice} record The splice record in the expanded paths list.
*/
- _expandedPathsChanged: function(record) {
+ _expandedPathsChanged(record) {
if (!record) { return; }
// Find the paths introduced by the new index splices:
- var newPaths = record.indexSplices
- .map(function(splice) {
+ const newPaths = record.indexSplices
+ .map(splice => {
return splice.object.slice(splice.index,
splice.index + splice.addedCount);
})
- .reduce(function(acc, paths) { return acc.concat(paths); }, []);
+ .reduce((acc, paths) => { return acc.concat(paths); }, []);
- var timerName = 'Expand ' + newPaths.length + ' diffs';
+ const timerName = 'Expand ' + newPaths.length + ' diffs';
this.$.reporting.time(timerName);
// Required so that the newly created diff view is included in this.diffs.
Polymer.dom.flush();
this._renderInOrder(newPaths, this.diffs, newPaths.length)
- .then(function() {
+ .then(() => {
this.$.reporting.timeEnd(timerName);
this.$.diffCursor.handleDiffUpdate();
- }.bind(this));
+ });
this._updateDiffCursor();
this.$.diffCursor.handleDiffUpdate();
},
@@ -861,21 +861,21 @@
* is used to generate log messages.
* @return {!Promise}
*/
- _renderInOrder: function(paths, diffElements, initialCount) {
+ _renderInOrder(paths, diffElements, initialCount) {
if (!paths.length) {
console.log('Finished expanding', initialCount, 'diff(s)');
return Promise.resolve();
}
console.log('Expanding diff', 1 + initialCount - paths.length, 'of',
initialCount, ':', paths[0]);
- var diffElem = this._findDiffByPath(paths[0], diffElements);
- var promises = [diffElem.reload()];
+ const diffElem = this._findDiffByPath(paths[0], diffElements);
+ const promises = [diffElem.reload()];
if (this._isLoggedIn) {
promises.push(this._reviewFile(paths[0]));
}
- return Promise.all(promises).then(function() {
+ return Promise.all(promises).then(() => {
return this._renderInOrder(paths.slice(1), diffElements, initialCount);
- }.bind(this));
+ });
},
/**
@@ -884,8 +884,8 @@
* @param {!NodeList<!GrDiffElement>} diffElements
* @return {!GrDiffElement}
*/
- _findDiffByPath: function(path, diffElements) {
- for (var i = 0; i < diffElements.length; i++) {
+ _findDiffByPath(path, diffElements) {
+ for (let i = 0; i < diffElements.length; i++) {
if (diffElements[i].path === path) {
return diffElements[i];
}
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 0fbd367..e022a74 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
@@ -42,46 +42,47 @@
</test-fixture>
<script>
- suite('gr-file-list tests', function() {
- var element;
- var sandbox;
- var saveStub;
+ suite('gr-file-list tests', () => {
+ let element;
+ let sandbox;
+ let saveStub;
- setup(function() {
+ setup(() => {
sandbox = sinon.sandbox.create();
stub('gr-rest-api-interface', {
- getLoggedIn: function() { return Promise.resolve(true); },
- getPreferences: function() { return Promise.resolve({}); },
- fetchJSON: function() { return Promise.resolve({}); },
+ getLoggedIn() { return Promise.resolve(true); },
+ getPreferences() { return Promise.resolve({}); },
+ fetchJSON() { return Promise.resolve({}); },
});
stub('gr-date-formatter', {
- _loadTimeFormat: function() { return Promise.resolve(''); },
+ _loadTimeFormat() { return Promise.resolve(''); },
});
stub('gr-diff', {
- reload: function() { return Promise.resolve(); },
+ reload() { return Promise.resolve(); },
});
element = fixture('basic');
element.numFilesShown = 200;
saveStub = sandbox.stub(element, '_saveReviewedState',
- function() { return Promise.resolve(); });
+ () => { return Promise.resolve(); });
});
- teardown(function() {
+ teardown(() => {
sandbox.restore();
});
- test('correct number of files are shown', function() {
- element._files = _.times(500, function(i) {
- return {__path: '/file' + i, lines_inserted: 9}; });
+ test('correct number of files are shown', () => {
+ element._files = _.times(500, i => {
+ return {__path: '/file' + i, lines_inserted: 9};
+ });
flushAsynchronousOperations();
assert.equal(
Polymer.dom(element.root).querySelectorAll('.file-row').length,
element.numFilesShown);
});
- test('get file list', function(done) {
- var getChangeFilesStub = sandbox.stub(element.$.restAPI, 'getChangeFiles',
- function() {
+ test('get file list', done => {
+ const getChangeFilesStub = sandbox.stub(element.$.restAPI, 'getChangeFiles',
+ () => {
return Promise.resolve({
'/COMMIT_MSG': {lines_inserted: 9},
'tags.html': {lines_deleted: 123},
@@ -89,8 +90,8 @@
});
});
- element._getFiles().then(function(files) {
- var filenames = files.map(function(f) { return f.__path; });
+ element._getFiles().then(files => {
+ const filenames = files.map(f => { return f.__path; });
assert.deepEqual(filenames, ['/COMMIT_MSG', 'about.txt', 'tags.html']);
assert.deepEqual(files[0], {
lines_inserted: 9,
@@ -113,7 +114,7 @@
});
});
- test('calculate totals for patch number', function() {
+ test('calculate totals for patch number', () => {
element._files = [
{__path: '/COMMIT_MSG', lines_inserted: 9},
{
@@ -188,7 +189,7 @@
assert.isFalse(element._hideChangeTotals);
});
- test('binary only files', function() {
+ test('binary only files', () => {
element._files = [
{__path: '/COMMIT_MSG', lines_inserted: 9},
{__path: 'file_binary', binary: true, size_delta: 10, size: 100},
@@ -205,7 +206,7 @@
assert.isTrue(element._hideChangeTotals);
});
- test('binary and regular files', function() {
+ test('binary and regular files', () => {
element._files = [
{__path: '/COMMIT_MSG', lines_inserted: 9},
{__path: 'file_binary', binary: true, size_delta: 10, size: 100},
@@ -224,64 +225,64 @@
assert.isFalse(element._hideChangeTotals);
});
- test('_formatBytes function', function() {
- var table = {
- 64: '+64 B',
- 1023: '+1023 B',
- 1024: '+1 KiB',
- 4096: '+4 KiB',
- 1073741824: '+1 GiB',
+ test('_formatBytes function', () => {
+ const table = {
+ '64': '+64 B',
+ '1023': '+1023 B',
+ '1024': '+1 KiB',
+ '4096': '+4 KiB',
+ '1073741824': '+1 GiB',
'-64': '-64 B',
'-1023': '-1023 B',
'-1024': '-1 KiB',
'-4096': '-4 KiB',
'-1073741824': '-1 GiB',
- 0: '+/-0 B',
+ '0': '+/-0 B',
};
- for (var bytes in table) {
+ for (const bytes in table) {
if (table.hasOwnProperty(bytes)) {
assert.equal(element._formatBytes(bytes), table[bytes]);
}
}
});
- test('_formatPercentage function', function() {
- var table = [
- { size: 100,
+ test('_formatPercentage function', () => {
+ const table = [
+ {size: 100,
delta: 100,
display: '',
},
- { size: 195060,
+ {size: 195060,
delta: 64,
display: '(+0%)',
},
- { size: 195060,
+ {size: 195060,
delta: -64,
display: '(-0%)',
},
- { size: 394892,
+ {size: 394892,
delta: -7128,
display: '(-2%)',
},
- { size: 90,
+ {size: 90,
delta: -10,
display: '(-10%)',
},
- { size: 110,
+ {size: 110,
delta: 10,
display: '(+10%)',
},
];
- table.forEach(function(item) {
+ for (const item of table) {
assert.equal(element._formatPercentage(
item.size, item.delta), item.display);
- });
+ }
});
- suite('keyboard shortcuts', function() {
- setup(function() {
+ suite('keyboard shortcuts', () => {
+ setup(() => {
element._files = [
{__path: '/COMMIT_MSG'},
{__path: 'file_added_in_rev2.txt'},
@@ -295,12 +296,12 @@
element.$.fileCursor.setCursorAtIndex(0);
});
- test('toggle left diff via shortcut', function() {
- var toggleLeftDiffStub = sandbox.stub();
+ test('toggle left diff via shortcut', () => {
+ const toggleLeftDiffStub = sandbox.stub();
// Property getter cannot be stubbed w/ sandbox due to a bug in Sinon.
// https://github.com/sinonjs/sinon/issues/781
- var diffsStub = sinon.stub(element, 'diffs', {
- get: function() {
+ const diffsStub = sinon.stub(element, 'diffs', {
+ get() {
return [{toggleLeftDiff: toggleLeftDiffStub}];
},
});
@@ -309,10 +310,10 @@
diffsStub.restore();
});
- test('keyboard shortcuts', function() {
+ test('keyboard shortcuts', () => {
flushAsynchronousOperations();
- var items = Polymer.dom(element.root).querySelectorAll('.file-row');
+ const items = Polymer.dom(element.root).querySelectorAll('.file-row');
element.$.fileCursor.stops = items;
element.$.fileCursor.setCursorAtIndex(0);
assert.equal(items.length, 3);
@@ -327,7 +328,7 @@
assert.equal(element.selectedIndex, 1);
MockInteractions.pressAndReleaseKeyOn(element, 74, null, 'j');
- var showStub = sandbox.stub(page, 'show');
+ const showStub = sandbox.stub(page, 'show');
assert.equal(element.$.fileCursor.index, 2);
assert.equal(element.selectedIndex, 2);
MockInteractions.pressAndReleaseKeyOn(element, 13, null, 'enter');
@@ -351,10 +352,10 @@
assert.equal(element.selectedIndex, 0);
});
- test('i key shows/hides selected inline diff', function() {
+ test('i key shows/hides selected inline diff', () => {
sandbox.stub(element, '_expandedPathsChanged');
flushAsynchronousOperations();
- var files = Polymer.dom(element.root).querySelectorAll('.file-row');
+ const files = Polymer.dom(element.root).querySelectorAll('.file-row');
element.$.fileCursor.stops = files;
element.$.fileCursor.setCursorAtIndex(0);
MockInteractions.pressAndReleaseKeyOn(element, 73, null, 'i');
@@ -370,38 +371,40 @@
MockInteractions.pressAndReleaseKeyOn(element, 73, 'shift', 'i');
flushAsynchronousOperations();
- for (var index in element.diffs) {
+ for (const index in element.diffs) {
+ if (!element.diffs.hasOwnProperty(index)) { continue; }
assert.include(element._expandedFilePaths, element.diffs[index].path);
}
MockInteractions.pressAndReleaseKeyOn(element, 73, 'shift', 'i');
flushAsynchronousOperations();
- for (var index in element.diffs) {
+ for (const index in element.diffs) {
+ if (!element.diffs.hasOwnProperty(index)) { continue; }
assert.notInclude(element._expandedFilePaths,
element.diffs[index].path);
}
});
- suite('_handleEnterKey', function() {
- var interact;
+ suite('_handleEnterKey', () => {
+ let interact;
- setup(function() {
+ setup(() => {
sandbox.stub(element, 'shouldSuppressKeyboardShortcut')
- .returns(false);
+ .returns(false);
sandbox.stub(element, 'modifierPressed').returns(false);
- var openCursorStub = sandbox.stub(element, '_openCursorFile');
- var openSelectedStub = sandbox.stub(element, '_openSelectedFile');
- var expandStub = sandbox.stub(element, '_togglePathExpanded');
+ const openCursorStub = sandbox.stub(element, '_openCursorFile');
+ const openSelectedStub = sandbox.stub(element, '_openSelectedFile');
+ const expandStub = sandbox.stub(element, '_togglePathExpanded');
interact = function(opt_payload) {
openCursorStub.reset();
openSelectedStub.reset();
expandStub.reset();
- var e = new CustomEvent('fake-keyboard-event', opt_payload);
+ const e = new CustomEvent('fake-keyboard-event', opt_payload);
sinon.stub(e, 'preventDefault');
element._handleEnterKey(e);
assert.isTrue(e.preventDefault.called);
- var result = {};
+ const result = {};
if (openCursorStub.called) {
result.opened_cursor = true;
}
@@ -415,12 +418,12 @@
};
});
- test('open from selected file', function() {
+ test('open from selected file', () => {
element._showInlineDiffs = false;
assert.deepEqual(interact(), {opened_selected: true});
});
- test('open from diff cursor', function() {
+ test('open from diff cursor', () => {
element._showInlineDiffs = true;
assert.deepEqual(interact(), {opened_cursor: true});
@@ -429,7 +432,7 @@
assert.deepEqual(interact(), {opened_cursor: true});
});
- test('expand when user prefers', function() {
+ test('expand when user prefers', () => {
element._showInlineDiffs = false;
assert.deepEqual(interact(), {opened_selected: true});
element._userPrefs = {};
@@ -438,8 +441,8 @@
assert.deepEqual(interact(), {expanded: true});
});
- test('noop when anchor focused', function() {
- var e = new CustomEvent('fake-keyboard-event',
+ test('noop when anchor focused', () => {
+ const e = new CustomEvent('fake-keyboard-event',
{detail: {keyboardEvent: {target: document.createElement('a')}}});
sinon.stub(e, 'preventDefault');
element._handleEnterKey(e);
@@ -448,8 +451,8 @@
});
});
- test('comment filtering', function() {
- var comments = {
+ test('comment filtering', () => {
+ const comments = {
'/COMMIT_MSG': [
{patch_set: 1, message: 'Done', updated: '2017-02-08 16:40:49'},
{patch_set: 1, message: 'oh hay', updated: '2017-02-09 16:40:49'},
@@ -485,7 +488,7 @@
},
],
};
- var drafts = {
+ const drafts = {
'unresolved.file': [
{
patch_set: 2,
@@ -517,13 +520,13 @@
'1d');
assert.equal(
element._computeCountString(comments, '1',
- 'file_added_in_rev2.txt', 'comment'), '');
+ 'file_added_in_rev2.txt', 'comment'), '');
assert.equal(
element._computeCommentsStringMobile(comments, '1',
- 'file_added_in_rev2.txt'), '');
+ 'file_added_in_rev2.txt'), '');
assert.equal(
element._computeDraftsStringMobile(comments, '1',
- 'file_added_in_rev2.txt'), '');
+ 'file_added_in_rev2.txt'), '');
assert.equal(
element._computeCountString(comments, '2', '/COMMIT_MSG', 'comment'),
'1 comment');
@@ -544,7 +547,7 @@
'2d');
assert.equal(
element._computeCountString(comments, '2',
- 'file_added_in_rev2.txt', 'comment'), '');
+ 'file_added_in_rev2.txt', 'comment'), '');
assert.equal(element._computeCountString(comments, '2',
'unresolved.file', 'comment'), '3 comments');
assert.equal(
@@ -558,10 +561,10 @@
element.computeUnresolvedNum(comments, [], 2, 'unresolved.file'), 1);
assert.equal(
element._computeUnresolvedString(comments, drafts, 2,
- 'unresolved.file'), '');
+ 'unresolved.file'), '');
});
- test('computed properties', function() {
+ test('computed properties', () => {
assert.equal(element._computeFileStatus('A'), 'A');
assert.equal(element._computeFileStatus(undefined), 'M');
assert.equal(element._computeFileStatus(null), 'M');
@@ -580,7 +583,7 @@
{expand_inline_diffs: false}), '');
});
- test('file review status', function() {
+ test('file review status', () => {
element._files = [
{__path: '/COMMIT_MSG'},
{__path: 'file_added_in_rev2.txt'},
@@ -596,13 +599,13 @@
element.$.fileCursor.setCursorAtIndex(0);
flushAsynchronousOperations();
- var fileRows =
+ const fileRows =
Polymer.dom(element.root).querySelectorAll('.row:not(.header)');
- var commitMsg = fileRows[0].querySelector(
+ const commitMsg = fileRows[0].querySelector(
'input.reviewed[type="checkbox"]');
- var fileAdded = fileRows[1].querySelector(
+ const fileAdded = fileRows[1].querySelector(
'input.reviewed[type="checkbox"]');
- var myFile = fileRows[2].querySelector(
+ const myFile = fileRows[2].querySelector(
'input.reviewed[type="checkbox"]');
assert.isTrue(commitMsg.checked);
@@ -615,14 +618,14 @@
assert.isTrue(saveStub.lastCall.calledWithExactly('/COMMIT_MSG', true));
});
- test('patch set from revisions', function() {
- var expected = [
+ test('patch set from revisions', () => {
+ const expected = [
{num: 1, desc: 'test'},
{num: 2, desc: 'test'},
{num: 3, desc: 'test'},
{num: 4, desc: 'test'},
];
- var patchNums = element.computeAllPatchSets({
+ const patchNums = element.computeAllPatchSets({
revisions: {
rev3: {_number: 3, description: 'test'},
rev1: {_number: 1, description: 'test'},
@@ -631,12 +634,12 @@
},
});
assert.equal(patchNums.length, expected.length);
- for (var i = 0; i < expected.length; i++) {
+ for (let i = 0; i < expected.length; i++) {
assert.deepEqual(patchNums[i], expected[i]);
}
});
- test('patch range string', function() {
+ test('patch range string', () => {
assert.equal(
element._patchRangeStr({basePatchNum: 'PARENT', patchNum: '1'}),
'1');
@@ -645,8 +648,8 @@
'1..3');
});
- test('diff against dropdown', function(done) {
- var showStub = sandbox.stub(page, 'show');
+ test('diff against dropdown', done => {
+ const showStub = sandbox.stub(page, 'show');
element.changeNum = '42';
element.patchRange = {
basePatchNum: 'PARENT',
@@ -659,11 +662,11 @@
rev3: {_number: 3},
},
};
- flush(function() {
- var selectEl = element.$.patchChange;
+ flush(() => {
+ const selectEl = element.$.patchChange;
assert.equal(selectEl.value, 'PARENT');
assert.isTrue(element.$$('option[value="3"]').hasAttribute('disabled'));
- selectEl.addEventListener('change', function() {
+ selectEl.addEventListener('change', () => {
assert.equal(selectEl.value, '2');
assert(showStub.lastCall.calledWithExactly('/c/42/2..3'),
'Should navigate to /c/42/2..3');
@@ -675,7 +678,7 @@
});
});
- test('checkbox shows/hides diff inline', function() {
+ test('checkbox shows/hides diff inline', () => {
element._files = [
{__path: 'myfile.txt'},
];
@@ -687,12 +690,12 @@
element.$.fileCursor.setCursorAtIndex(0);
sandbox.stub(element, '_expandedPathsChanged');
flushAsynchronousOperations();
- var fileRows =
+ const fileRows =
Polymer.dom(element.root).querySelectorAll('.row:not(.header)');
// Because the label surrounds the input, the tap event is triggered
// there first.
- var showHideLabel = fileRows[0].querySelector('label.show-hide');
- var showHideCheck = fileRows[0].querySelector(
+ const showHideLabel = fileRows[0].querySelector('label.show-hide');
+ const showHideCheck = fileRows[0].querySelector(
'input.show-hide[type="checkbox"]');
assert.isNotOk(showHideCheck.checked);
MockInteractions.tap(showHideLabel);
@@ -700,7 +703,7 @@
assert.notEqual(element._expandedFilePaths.indexOf('myfile.txt'), -1);
});
- test('path should be properly escaped', function() {
+ test('path should be properly escaped', () => {
element._files = [
{__path: 'foo bar/my+file.txt%'},
];
@@ -718,7 +721,7 @@
'/c/42/2/foo+bar/my%252Bfile.txt%2525');
});
- test('diff mode correctly toggles the diffs', function() {
+ test('diff mode correctly toggles the diffs', () => {
element._files = [
{__path: 'myfile.txt'},
];
@@ -732,12 +735,12 @@
flushAsynchronousOperations();
// Tap on a file to generate the diff.
- var row = Polymer.dom(element.root)
+ const row = Polymer.dom(element.root)
.querySelectorAll('.row:not(.header) label.show-hide')[0];
MockInteractions.tap(row);
flushAsynchronousOperations();
- var diffDisplay = element.diffs[0];
+ const diffDisplay = element.diffs[0];
element._userPrefs = {default_diff_view: 'SIDE_BY_SIDE'};
assert.equal(element.diffViewMode, 'SIDE_BY_SIDE');
assert.equal(diffDisplay.viewMode, 'SIDE_BY_SIDE');
@@ -746,16 +749,16 @@
assert.isTrue(element._updateDiffPreferences.called);
});
- test('diff mode selector initializes from preferences', function() {
- var resolvePrefs;
- var prefsPromise = new Promise(function(resolve) {
+ test('diff mode selector initializes from preferences', () => {
+ let resolvePrefs;
+ const prefsPromise = new Promise(resolve => {
resolvePrefs = resolve;
});
sandbox.stub(element, '_getPreferences').returns(prefsPromise);
// Attach a new gr-file-list so we can intercept the preferences fetch.
- var view = document.createElement('gr-file-list');
- var select = view.$.modeSelect;
+ const view = document.createElement('gr-file-list');
+ const select = view.$.modeSelect;
fixture('blank').appendChild(view);
flushAsynchronousOperations();
@@ -769,8 +772,8 @@
document.getElementById('blank').restore();
});
- test('show/hide diffs disabled for large amounts of files', function(done) {
- var computeSpy = sandbox.spy(element, '_fileListActionsVisible');
+ test('show/hide diffs disabled for large amounts of files', done => {
+ const computeSpy = sandbox.spy(element, '_fileListActionsVisible');
element._files = [];
element.changeNum = '42';
element.patchRange = {
@@ -778,10 +781,10 @@
patchNum: '2',
};
element.$.fileCursor.setCursorAtIndex(0);
- flush(function() {
+ flush(() => {
assert.isTrue(computeSpy.lastCall.returnValue);
- var arr = [];
- _.times(element._maxFilesForBulkActions + 1, function() {
+ const arr = [];
+ _.times(element._maxFilesForBulkActions + 1, () => {
arr.push({__path: 'myfile.txt'});
});
element._files = arr;
@@ -791,14 +794,14 @@
});
});
- test('expanded attribute not set on path when not expanded', function() {
+ test('expanded attribute not set on path when not expanded', () => {
element._files = [
{__path: '/COMMIT_MSG'},
];
assert.isNotOk(element.$$('.expanded'));
});
- test('_getDiffViewMode', function() {
+ test('_getDiffViewMode', () => {
// No user prefs or diff view mode set.
assert.equal(element._getDiffViewMode(), 'SIDE_BY_SIDE');
// User prefs but no diff view mode set.
@@ -811,7 +814,7 @@
assert.equal(element._getDiffViewMode(
element.diffViewMode, element._userPrefs), 'SIDE_BY_SIDE');
});
- test('expand_inline_diffs user preference', function() {
+ test('expand_inline_diffs user preference', () => {
element._files = [
{__path: '/COMMIT_MSG'},
];
@@ -822,12 +825,12 @@
};
sandbox.stub(element, '_expandedPathsChanged');
flushAsynchronousOperations();
- var commitMsgFile = Polymer.dom(element.root)
+ const commitMsgFile = Polymer.dom(element.root)
.querySelectorAll('.row:not(.header) a')[0];
// Remove href attribute so the app doesn't route to a diff view
commitMsgFile.removeAttribute('href');
- var togglePathSpy = sandbox.spy(element, '_togglePathExpanded');
+ const togglePathSpy = sandbox.spy(element, '_togglePathExpanded');
MockInteractions.tap(commitMsgFile);
flushAsynchronousOperations();
@@ -842,10 +845,10 @@
assert.isOk(element.$$('.expanded'));
});
- test('_togglePathExpanded', function() {
- var path = 'path/to/my/file.txt';
+ test('_togglePathExpanded', () => {
+ const path = 'path/to/my/file.txt';
element.files = [{__path: path}];
- var renderStub = sandbox.stub(element, '_renderInOrder')
+ const renderStub = sandbox.stub(element, '_renderInOrder')
.returns(Promise.resolve());
assert.equal(element._expandedFilePaths.length, 0);
@@ -861,24 +864,24 @@
assert.notInclude(element._expandedFilePaths, path);
});
- test('_expandedPathsChanged', function(done) {
+ test('_expandedPathsChanged', done => {
sandbox.stub(element, '_reviewFile');
- var path = 'path/to/my/file.txt';
- var diffs = [{
- path: path,
- reload: function() {
+ const path = 'path/to/my/file.txt';
+ const diffs = [{
+ path,
+ reload() {
done();
},
}];
- var diffsStub = sinon.stub(element, 'diffs', {
- get: function() { return diffs; },
+ sinon.stub(element, 'diffs', {
+ get() { return diffs; },
});
element.push('_expandedFilePaths', path);
});
- suite('_handleFileListTap', function() {
+ suite('_handleFileListTap', () => {
function testForModifier(modifier) {
- var e = {preventDefault: function() {}};
+ const e = {preventDefault() {}};
e.detail = {sourceEvent: {}};
e.target = {
dataset: {path: '/test'},
@@ -887,8 +890,8 @@
e.detail.sourceEvent[modifier] = true;
- var togglePathStub = sandbox.stub(element, '_togglePathExpanded');
- element._userPrefs = { expand_inline_diffs: true };
+ const togglePathStub = sandbox.stub(element, '_togglePathExpanded');
+ element._userPrefs = {expand_inline_diffs: true};
element._handleFileListTap(e);
assert.isFalse(togglePathStub.called);
@@ -897,89 +900,89 @@
element._handleFileListTap(e);
assert.equal(togglePathStub.callCount, 1);
- element._userPrefs = { expand_inline_diffs: false };
+ element._userPrefs = {expand_inline_diffs: false};
element._handleFileListTap(e);
assert.equal(togglePathStub.callCount, 1);
}
- test('_handleFileListTap meta', function() {
+ test('_handleFileListTap meta', () => {
testForModifier('metaKey');
});
- test('_handleFileListTap ctrl', function() {
+ test('_handleFileListTap ctrl', () => {
testForModifier('ctrlKey');
});
});
- test('_renderInOrder', function(done) {
- var reviewStub = sandbox.stub(element, '_reviewFile');
- var callCount = 0;
- var diffs = [{
+ test('_renderInOrder', done => {
+ const reviewStub = sandbox.stub(element, '_reviewFile');
+ let callCount = 0;
+ const diffs = [{
path: 'p0',
- reload: function() {
+ reload() {
assert.equal(callCount++, 2);
return Promise.resolve();
},
}, {
path: 'p1',
- reload: function() {
+ reload() {
assert.equal(callCount++, 1);
return Promise.resolve();
},
}, {
path: 'p2',
- reload: function() {
+ reload() {
assert.equal(callCount++, 0);
return Promise.resolve();
},
}];
element._renderInOrder(['p2', 'p1', 'p0'], diffs, 3)
- .then(function() {
- assert.isFalse(reviewStub.called);
- done();
- });
+ .then(() => {
+ assert.isFalse(reviewStub.called);
+ done();
+ });
});
- test('_renderInOrder logged in', function(done) {
+ test('_renderInOrder logged in', done => {
element._isLoggedIn = true;
- var reviewStub = sandbox.stub(element, '_reviewFile');
- var callCount = 0;
- var diffs = [{
+ const reviewStub = sandbox.stub(element, '_reviewFile');
+ let callCount = 0;
+ const diffs = [{
path: 'p0',
- reload: function() {
+ reload() {
assert.equal(reviewStub.callCount, 2);
assert.equal(callCount++, 2);
return Promise.resolve();
},
}, {
path: 'p1',
- reload: function() {
+ reload() {
assert.equal(reviewStub.callCount, 1);
assert.equal(callCount++, 1);
return Promise.resolve();
},
}, {
path: 'p2',
- reload: function() {
+ reload() {
assert.equal(reviewStub.callCount, 0);
assert.equal(callCount++, 0);
return Promise.resolve();
},
}];
element._renderInOrder(['p2', 'p1', 'p0'], diffs, 3)
- .then(function() {
- assert.equal(reviewStub.callCount, 3);
- done();
- });
+ .then(() => {
+ assert.equal(reviewStub.callCount, 3);
+ done();
+ });
});
});
- suite('gr-file-list inline diff tests', function() {
- var element;
- var sandbox;
+ suite('gr-file-list inline diff tests', () => {
+ let element;
+ let sandbox;
- var setupDiff = function(diff) {
- var mock = document.createElement('mock-diff-response');
+ const setupDiff = function(diff) {
+ const mock = document.createElement('mock-diff-response');
diff._diff = mock.diffResponse;
diff._comments = {
left: [],
@@ -1004,11 +1007,11 @@
diff._renderDiffTable();
};
- var renderAndGetNewDiffs = function(index) {
- var diffs =
+ const renderAndGetNewDiffs = function(index) {
+ const diffs =
Polymer.dom(element.root).querySelectorAll('gr-diff');
- for (var i = index; i < diffs.length; i++) {
+ for (let i = index; i < diffs.length; i++) {
setupDiff(diffs[i]);
}
@@ -1017,17 +1020,17 @@
return diffs;
};
- setup(function() {
+ setup(() => {
sandbox = sinon.sandbox.create();
stub('gr-rest-api-interface', {
- getLoggedIn: function() { return Promise.resolve(true); },
- getPreferences: function() { return Promise.resolve({}); },
+ getLoggedIn() { return Promise.resolve(true); },
+ getPreferences() { return Promise.resolve({}); },
});
stub('gr-date-formatter', {
- _loadTimeFormat: function() { return Promise.resolve(''); },
+ _loadTimeFormat() { return Promise.resolve(''); },
});
stub('gr-diff', {
- reload: function() { return Promise.resolve(); },
+ reload() { return Promise.resolve(); },
});
element = fixture('basic');
element.numFilesShown = 75;
@@ -1056,21 +1059,21 @@
basePatchNum: 'PARENT',
patchNum: '2',
};
- sandbox.stub(window, 'fetch', function() {
+ sandbox.stub(window, 'fetch', () => {
return Promise.resolve();
});
flushAsynchronousOperations();
});
- teardown(function() {
+ teardown(() => {
sandbox.restore();
});
- test('cursor with individually opened files', function() {
+ test('cursor with individually opened files', () => {
MockInteractions.pressAndReleaseKeyOn(element, 73, null, 'i');
flushAsynchronousOperations();
- var diffs = renderAndGetNewDiffs(0);
- var diffStops = diffs[0].getCursorStops();
+ let diffs = renderAndGetNewDiffs(0);
+ const diffStops = diffs[0].getCursorStops();
// 1 diff should be rendered.
assert.equal(diffs.length, 1);
@@ -1099,20 +1102,20 @@
diffs = renderAndGetNewDiffs(1);
// Two diffs should be rendered.
assert.equal(diffs.length, 2);
- var diffStopsFirst = diffs[0].getCursorStops();
- var diffStopsSecond = diffs[1].getCursorStops();
+ const diffStopsFirst = diffs[0].getCursorStops();
+ const diffStopsSecond = diffs[1].getCursorStops();
// The line on the first diff is stil selected
assert.isTrue(diffStopsFirst[10].classList.contains('target-row'));
assert.isFalse(diffStopsSecond[10].classList.contains('target-row'));
});
- test('cursor with toggle all files', function() {
+ test('cursor with toggle all files', () => {
MockInteractions.pressAndReleaseKeyOn(element, 73, 'shift', 'i');
flushAsynchronousOperations();
- var diffs = renderAndGetNewDiffs(0);
- var diffStops = diffs[0].getCursorStops();
+ const diffs = renderAndGetNewDiffs(0);
+ const diffStops = diffs[0].getCursorStops();
// 1 diff should be rendered.
assert.equal(diffs.length, 3);
@@ -1137,12 +1140,12 @@
assert.equal(element.$.fileCursor.index, 0);
});
- suite('n key presses', function() {
- var nKeySpy;
- var nextCommentStub;
- var nextChunkStub;
- var fileRows;
- setup(function() {
+ suite('n key presses', () => {
+ let nKeySpy;
+ let nextCommentStub;
+ let nextChunkStub;
+ let fileRows;
+ setup(() => {
nKeySpy = sandbox.spy(element, '_handleNKey');
nextCommentStub = sandbox.stub(element.$.diffCursor,
'moveToNextCommentThread');
@@ -1151,7 +1154,7 @@
fileRows =
Polymer.dom(element.root).querySelectorAll('.row:not(.header)');
});
- test('n key with all files expanded and no shift key', function() {
+ test('n key with all files expanded and no shift key', () => {
MockInteractions.pressAndReleaseKeyOn(fileRows[0], 73, null, 'i');
flushAsynchronousOperations();
@@ -1165,7 +1168,7 @@
assert.isFalse(!!element._showInlineDiffs);
});
- test('n key with all files expanded and shift key', function() {
+ test('n key with all files expanded and shift key', () => {
MockInteractions.pressAndReleaseKeyOn(fileRows[0], 73, null, 'i');
flushAsynchronousOperations();
@@ -1178,7 +1181,7 @@
assert.isFalse(!!element._showInlineDiffs);
});
- test('n key without all files expanded and shift key', function() {
+ test('n key without all files expanded and shift key', () => {
MockInteractions.pressAndReleaseKeyOn(fileRows[0], 73, 'shift', 'i');
flushAsynchronousOperations();
@@ -1191,7 +1194,7 @@
assert.isTrue(element._showInlineDiffs);
});
- test('n key without all files expanded and no shift key', function() {
+ test('n key without all files expanded and no shift key', () => {
MockInteractions.pressAndReleaseKeyOn(fileRows[0], 73, 'shift', 'i');
flushAsynchronousOperations();