Merge "Add a separator between blame and the edit icon"

This commit is contained in:
Tao Zhou
2020-02-28 11:57:58 +00:00
committed by Gerrit Code Review
3 changed files with 56 additions and 14 deletions

View File

@@ -313,13 +313,15 @@ limitations under the License.
on-click="_toggleBlame">[[_computeBlameToggleLabel(_isBlameLoaded, _isBlameLoading)]]</gr-button>
</span>
<template is="dom-if" if="[[_computeIsLoggedIn(_loggedIn)]]">
<span class="separator"></span>
<span class="editButton">
<a href$="[[_computeEditURL(_change, _patchRange, _path)]]">
<iron-icon icon="gr-icons:edit"></iron-icon>
</a>
<span class="separator"></span>
<gr-button
link
title="Edit current file"
on-click="_goToEditFile">edit</gr-button>
</span>
</template>
<span class="separator"></span>
<div class$="diffModeSelector [[_computeModeSelectHideClass(_isImageDiff)]]">
<span>Diff view:</span>
<gr-diff-mode-selector

View File

@@ -604,12 +604,11 @@
return this._getDiffUrl(this._change, this._patchRange, newPath.path);
}
_computeEditURL(change, patchRange, path) {
if ([change, patchRange, path].some(arg => arg === undefined)) {
return '';
}
return Gerrit.Nav.getEditUrlForDiff(
change, path, patchRange.patchNum);
_goToEditFile() {
// TODO(taoalpha): add a shortcut for editing
const editUrl = Gerrit.Nav.getEditUrlForDiff(
this._change, this._path, this._patchRange.patchNum);
return Gerrit.Nav.navigateToRelativeUrl(editUrl);
}
/**

View File

@@ -376,10 +376,51 @@ limitations under the License.
PARENT), 'Should navigate to /c/42/1');
});
test('_computeEditURL uses Gerrit.Nav', () => {
const getUrlStub = sandbox.stub(Gerrit.Nav, 'getEditUrlForDiff');
element._computeEditURL(123, {patchNum: undefined}, 'abc/def');
assert.isTrue(getUrlStub.called);
test('edit should redirect to edit page', done => {
element._loggedIn = true;
element._path = 't.txt';
element._patchRange = {
basePatchNum: PARENT,
patchNum: '1',
};
element._change = {
_number: 42,
revisions: {
a: {_number: 1, commit: {parents: []}},
b: {_number: 2, commit: {parents: []}},
},
};
const redirectStub = sandbox.stub(Gerrit.Nav, 'navigateToRelativeUrl');
flush(() => {
const editBtn = element.shadowRoot
.querySelector('.editButton gr-button');
assert.isTrue(!!editBtn);
MockInteractions.tap(editBtn);
assert.isTrue(redirectStub.called);
done();
});
});
test('edit hidden when not logged in', done => {
element._loggedIn = false;
element._path = 't.txt';
element._patchRange = {
basePatchNum: PARENT,
patchNum: '1',
};
element._change = {
_number: 42,
revisions: {
a: {_number: 1, commit: {parents: []}},
b: {_number: 2, commit: {parents: []}},
},
};
flush(() => {
const editBtn = element.shadowRoot
.querySelector('.editButton gr-button');
assert.isFalse(!!editBtn);
done();
});
});
suite('diff prefs hidden', () => {