2015-11-14 15:40:47 -05:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<!--
|
|
|
|
Copyright (C) 2015 The Android Open Source Project
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
|
2015-11-18 16:31:18 -05:00
|
|
|
<title>gr-diff-view</title>
|
2015-11-14 15:40:47 -05:00
|
|
|
|
2016-03-04 17:48:22 -05:00
|
|
|
<script src="../../../bower_components/webcomponentsjs/webcomponents.min.js"></script>
|
|
|
|
<script src="../../../bower_components/web-component-tester/browser.js"></script>
|
|
|
|
<script src="../../../bower_components/page/page.js"></script>
|
2016-03-10 19:15:01 -05:00
|
|
|
<script src="../../../test/fake-app.js"></script>
|
2016-03-04 17:48:22 -05:00
|
|
|
<script src="../../../scripts/util.js"></script>
|
2015-11-25 19:08:45 -05:00
|
|
|
|
2016-03-04 17:48:22 -05:00
|
|
|
<link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
|
|
|
|
<link rel="import" href="gr-diff-view.html">
|
2015-11-14 15:40:47 -05:00
|
|
|
|
|
|
|
<test-fixture id="basic">
|
2015-12-02 13:17:35 -05:00
|
|
|
<template>
|
|
|
|
<gr-diff-view></gr-diff-view>
|
|
|
|
</template>
|
|
|
|
</test-fixture>
|
|
|
|
|
2015-11-14 15:40:47 -05:00
|
|
|
<script>
|
2015-12-11 12:02:57 -05:00
|
|
|
suite('gr-diff-view tests', function() {
|
2015-11-14 15:40:47 -05:00
|
|
|
var element;
|
2016-02-10 21:59:20 +01:00
|
|
|
var server;
|
2015-12-02 13:17:35 -05:00
|
|
|
|
2015-11-14 15:40:47 -05:00
|
|
|
setup(function() {
|
|
|
|
element = fixture('basic');
|
2015-12-11 12:02:57 -05:00
|
|
|
element.$.changeDetailXHR.auto = false;
|
|
|
|
element.$.filesXHR.auto = false;
|
2016-01-21 22:45:13 -05:00
|
|
|
element.$.configXHR.auto = false;
|
2015-12-11 12:02:57 -05:00
|
|
|
element.$.diff.auto = false;
|
2016-02-10 21:59:20 +01:00
|
|
|
|
|
|
|
server = sinon.fakeServer.create();
|
|
|
|
server.respondWith(
|
|
|
|
'PUT',
|
|
|
|
'/changes/42/revisions/2/files/%2FCOMMIT_MSG/reviewed',
|
|
|
|
[
|
|
|
|
201,
|
|
|
|
{'Content-Type': 'application/json'},
|
|
|
|
')]}\'\n' +
|
|
|
|
'""',
|
|
|
|
]
|
|
|
|
);
|
|
|
|
server.respondWith(
|
|
|
|
'DELETE',
|
|
|
|
'/changes/42/revisions/2/files/%2FCOMMIT_MSG/reviewed',
|
|
|
|
[
|
|
|
|
204,
|
|
|
|
{'Content-Type': 'application/json'},
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
teardown(function() {
|
|
|
|
server.restore();
|
2015-12-02 13:17:35 -05:00
|
|
|
});
|
2015-11-14 15:40:47 -05:00
|
|
|
|
2015-12-01 01:02:00 -05:00
|
|
|
test('keyboard shortcuts', function() {
|
|
|
|
element._changeNum = '42';
|
2015-12-11 12:02:57 -05:00
|
|
|
element._patchRange = {
|
|
|
|
patchNum: '10',
|
|
|
|
};
|
2016-02-25 11:51:15 -05:00
|
|
|
element._change = {
|
|
|
|
revisions: {
|
|
|
|
a: { _number: 10, },
|
|
|
|
},
|
|
|
|
};
|
2015-12-01 01:02:00 -05:00
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
2016-02-03 20:40:36 -08:00
|
|
|
element.changeViewState.selectedFileIndex = 1;
|
2015-12-01 01:02:00 -05:00
|
|
|
|
|
|
|
var showStub = sinon.stub(page, 'show');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 85); // 'u'
|
2016-02-25 11:51:15 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/'),
|
|
|
|
'Should navigate to /c/42/');
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 221); // ']'
|
2015-12-01 01:02:00 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/10/wheatley.md'),
|
|
|
|
'Should navigate to /c/42/10/wheatley.md');
|
|
|
|
element._path = 'wheatley.md';
|
2016-02-03 20:40:36 -08:00
|
|
|
assert.equal(element.changeViewState.selectedFileIndex, 2);
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2015-12-01 01:02:00 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/10/glados.txt'),
|
|
|
|
'Should navigate to /c/42/10/glados.txt');
|
|
|
|
element._path = 'glados.txt';
|
2016-02-03 20:40:36 -08:00
|
|
|
assert.equal(element.changeViewState.selectedFileIndex, 1);
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2015-12-01 01:02:00 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/10/chell.go'),
|
|
|
|
'Should navigate to /c/42/10/chell.go');
|
|
|
|
element._path = 'chell.go';
|
2016-02-03 20:40:36 -08:00
|
|
|
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2016-02-25 11:51:15 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/'),
|
|
|
|
'Should navigate to /c/42/');
|
2016-02-03 20:40:36 -08:00
|
|
|
assert.equal(element.changeViewState.selectedFileIndex, 0);
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-26 16:30:02 -05:00
|
|
|
var showPrefsStub = sinon.stub(element.$.diff, 'showDiffPreferences');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 188); // ','
|
|
|
|
assert(showPrefsStub.calledOnce);
|
|
|
|
|
2016-02-25 18:19:51 -05:00
|
|
|
var scrollStub = sinon.stub(element.$.diff, 'scrollToNextDiffChunk');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 78); // 'n'
|
|
|
|
assert(scrollStub.calledOnce);
|
|
|
|
scrollStub.restore();
|
|
|
|
|
|
|
|
scrollStub = sinon.stub(element.$.diff, 'scrollToPreviousDiffChunk');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 80); // 'p'
|
|
|
|
assert(scrollStub.calledOnce);
|
|
|
|
scrollStub.restore();
|
|
|
|
|
|
|
|
scrollStub = sinon.stub(element.$.diff, 'scrollToNextCommentThread');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 78, ['shift']); // 'N'
|
|
|
|
assert(scrollStub.calledOnce);
|
|
|
|
scrollStub.restore();
|
|
|
|
|
|
|
|
scrollStub = sinon.stub(element.$.diff, 'scrollToPreviousCommentThread');
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 80, ['shift']); // 'P'
|
|
|
|
assert(scrollStub.calledOnce);
|
|
|
|
scrollStub.restore();
|
|
|
|
|
2016-01-26 16:30:02 -05:00
|
|
|
showPrefsStub.restore();
|
2015-12-01 01:02:00 -05:00
|
|
|
showStub.restore();
|
2016-01-08 10:13:54 -05:00
|
|
|
});
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-08 10:13:54 -05:00
|
|
|
test('keyboard shortcuts with patch range', function() {
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
basePatchNum: '5',
|
|
|
|
patchNum: '10',
|
|
|
|
};
|
2016-02-25 11:51:15 -05:00
|
|
|
element._change = {
|
|
|
|
revisions: {
|
|
|
|
a: { _number: 10, },
|
|
|
|
},
|
|
|
|
};
|
2016-01-08 10:13:54 -05:00
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-08 10:13:54 -05:00
|
|
|
var showStub = sinon.stub(page, 'show');
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-28 14:58:04 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
|
|
|
assert.isTrue(showStub.notCalled, 'The `a` keyboard shortcut should ' +
|
|
|
|
'only work when the user is logged in.');
|
|
|
|
assert.isNull(window.sessionStorage.getItem(
|
2016-02-22 18:12:27 -05:00
|
|
|
'changeView.showReplyDialog'));
|
2016-01-28 14:58:04 -05:00
|
|
|
|
|
|
|
element._loggedIn = true;
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
2016-02-22 18:12:27 -05:00
|
|
|
assert.isTrue(element.changeViewState.showReplyDialog);
|
2016-02-03 20:40:36 -08:00
|
|
|
|
2016-02-25 11:51:15 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/'),
|
|
|
|
'Should navigate to /c/42/');
|
2016-01-28 14:58:04 -05:00
|
|
|
|
2016-01-08 10:13:54 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 85); // 'u'
|
2016-02-25 11:51:15 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/'),
|
|
|
|
'Should navigate to /c/42/');
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 221); // ']'
|
2016-01-08 10:13:54 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/5..10/wheatley.md'),
|
|
|
|
'Should navigate to /c/42/5..10/wheatley.md');
|
|
|
|
element._path = 'wheatley.md';
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2016-01-08 10:13:54 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/5..10/glados.txt'),
|
|
|
|
'Should navigate to /c/42/5..10/glados.txt');
|
|
|
|
element._path = 'glados.txt';
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2016-01-08 10:13:54 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/5..10/chell.go'),
|
|
|
|
'Should navigate to /c/42/5..10/chell.go');
|
|
|
|
element._path = 'chell.go';
|
2015-12-01 01:02:00 -05:00
|
|
|
|
2016-01-11 17:20:53 -05:00
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
2016-02-25 11:51:15 -05:00
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/'),
|
|
|
|
'Should navigate to /c/42/');
|
|
|
|
|
|
|
|
showStub.restore();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('keyboard shortcuts with old patch number', function() {
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
patchNum: '1',
|
|
|
|
};
|
|
|
|
element._change = {
|
|
|
|
revisions: {
|
|
|
|
a: { _number: 1, },
|
|
|
|
b: { _number: 2, },
|
|
|
|
},
|
|
|
|
};
|
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
|
|
|
|
var showStub = sinon.stub(page, 'show');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
|
|
|
assert.isTrue(showStub.notCalled, 'The `a` keyboard shortcut should ' +
|
|
|
|
'only work when the user is logged in.');
|
|
|
|
assert.isNull(window.sessionStorage.getItem(
|
|
|
|
'changeView.showReplyDialog'));
|
|
|
|
|
|
|
|
element._loggedIn = true;
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
|
|
|
assert.isTrue(element.changeViewState.showReplyDialog);
|
|
|
|
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 85); // 'u'
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 221); // ']'
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/wheatley.md'),
|
|
|
|
'Should navigate to /c/42/1/wheatley.md');
|
|
|
|
element._path = 'wheatley.md';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/glados.txt'),
|
|
|
|
'Should navigate to /c/42/1/glados.txt');
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/chell.go'),
|
|
|
|
'Should navigate to /c/42/1/chell.go');
|
|
|
|
element._path = 'chell.go';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
showStub.restore();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('go up to change via kb without change loaded', function() {
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
patchNum: '1',
|
|
|
|
};
|
|
|
|
|
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
|
|
|
|
var showStub = sinon.stub(page, 'show');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
|
|
|
assert.isTrue(showStub.notCalled, 'The `a` keyboard shortcut should ' +
|
|
|
|
'only work when the user is logged in.');
|
|
|
|
assert.isNull(window.sessionStorage.getItem(
|
|
|
|
'changeView.showReplyDialog'));
|
|
|
|
|
|
|
|
element._loggedIn = true;
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 65); // 'a'
|
|
|
|
assert.isTrue(element.changeViewState.showReplyDialog);
|
|
|
|
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 85); // 'u'
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 221); // ']'
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/wheatley.md'),
|
|
|
|
'Should navigate to /c/42/1/wheatley.md');
|
|
|
|
element._path = 'wheatley.md';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/glados.txt'),
|
|
|
|
'Should navigate to /c/42/1/glados.txt');
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1/chell.go'),
|
|
|
|
'Should navigate to /c/42/1/chell.go');
|
|
|
|
element._path = 'chell.go';
|
|
|
|
|
|
|
|
MockInteractions.pressAndReleaseKeyOn(element, 219); // '['
|
|
|
|
assert(showStub.lastCall.calledWithExactly('/c/42/1'),
|
|
|
|
'Should navigate to /c/42/1');
|
|
|
|
|
|
|
|
showStub.restore();
|
2015-12-01 01:02:00 -05:00
|
|
|
});
|
2015-12-11 12:02:57 -05:00
|
|
|
|
2015-12-28 12:40:03 -05:00
|
|
|
test('jump to file dropdown', function() {
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
patchNum: '10',
|
|
|
|
};
|
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
flushAsynchronousOperations();
|
|
|
|
var linkEls =
|
|
|
|
Polymer.dom(element.root).querySelectorAll('.dropdown-content > a');
|
|
|
|
assert.equal(linkEls.length, 3);
|
|
|
|
assert.isFalse(linkEls[0].hasAttribute('selected'));
|
|
|
|
assert.isTrue(linkEls[1].hasAttribute('selected'));
|
|
|
|
assert.isFalse(linkEls[2].hasAttribute('selected'));
|
|
|
|
assert.equal(linkEls[0].getAttribute('data-key-nav'), '[');
|
|
|
|
assert.equal(linkEls[1].getAttribute('data-key-nav'), '');
|
|
|
|
assert.equal(linkEls[2].getAttribute('data-key-nav'), ']');
|
2016-01-08 10:13:54 -05:00
|
|
|
assert.equal(linkEls[0].getAttribute('href'), '/c/42/10/chell.go');
|
|
|
|
assert.equal(linkEls[1].getAttribute('href'), '/c/42/10/glados.txt');
|
|
|
|
assert.equal(linkEls[2].getAttribute('href'), '/c/42/10/wheatley.md');
|
2016-03-02 18:00:09 -05:00
|
|
|
|
|
|
|
assert.equal(element._computeFileDisplayName('/foo/bar/baz'),
|
|
|
|
'/foo/bar/baz');
|
|
|
|
assert.equal(element._computeFileDisplayName('/COMMIT_MSG'),
|
|
|
|
'Commit message');
|
2015-12-28 12:40:03 -05:00
|
|
|
});
|
|
|
|
|
2016-01-08 10:13:54 -05:00
|
|
|
test('jump to file dropdown with patch range', function() {
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
basePatchNum: '5',
|
|
|
|
patchNum: '10',
|
|
|
|
};
|
|
|
|
element._fileList = ['chell.go', 'glados.txt', 'wheatley.md'];
|
|
|
|
element._path = 'glados.txt';
|
|
|
|
flushAsynchronousOperations();
|
|
|
|
var linkEls =
|
|
|
|
Polymer.dom(element.root).querySelectorAll('.dropdown-content > a');
|
|
|
|
assert.equal(linkEls.length, 3);
|
|
|
|
assert.isFalse(linkEls[0].hasAttribute('selected'));
|
|
|
|
assert.isTrue(linkEls[1].hasAttribute('selected'));
|
|
|
|
assert.isFalse(linkEls[2].hasAttribute('selected'));
|
|
|
|
assert.equal(linkEls[0].getAttribute('data-key-nav'), '[');
|
|
|
|
assert.equal(linkEls[1].getAttribute('data-key-nav'), '');
|
|
|
|
assert.equal(linkEls[2].getAttribute('data-key-nav'), ']');
|
|
|
|
assert.equal(linkEls[0].getAttribute('href'), '/c/42/5..10/chell.go');
|
|
|
|
assert.equal(linkEls[1].getAttribute('href'), '/c/42/5..10/glados.txt');
|
|
|
|
assert.equal(linkEls[2].getAttribute('href'), '/c/42/5..10/wheatley.md');
|
|
|
|
});
|
2016-02-10 21:59:20 +01:00
|
|
|
|
|
|
|
test('file review status', function(done) {
|
|
|
|
element._loggedIn = true;
|
|
|
|
element._changeNum = '42';
|
|
|
|
element._patchRange = {
|
|
|
|
basePatchNum: '1',
|
|
|
|
patchNum: '2',
|
|
|
|
};
|
|
|
|
element._fileList = ['/COMMIT_MSG'];
|
|
|
|
element._path = '/COMMIT_MSG';
|
|
|
|
|
|
|
|
server.respond();
|
|
|
|
|
2016-03-06 14:57:02 +01:00
|
|
|
flush(function() {
|
2016-02-10 21:59:20 +01:00
|
|
|
var commitMsg = Polymer.dom(element.root).querySelector(
|
|
|
|
'input[type="checkbox"]');
|
|
|
|
|
|
|
|
assert.isTrue(commitMsg.checked);
|
|
|
|
|
|
|
|
MockInteractions.tap(commitMsg);
|
|
|
|
server.respond();
|
|
|
|
element._xhrPromise.then(function(req) {
|
|
|
|
assert.isFalse(commitMsg.checked);
|
|
|
|
assert.equal(req.status, 204);
|
|
|
|
assert.equal(req.url,
|
|
|
|
'/changes/42/revisions/2/files/%2FCOMMIT_MSG/reviewed');
|
|
|
|
|
|
|
|
MockInteractions.tap(commitMsg);
|
|
|
|
server.respond();
|
|
|
|
}).then(function() {
|
|
|
|
element._xhrPromise.then(function(req) {
|
|
|
|
assert.isTrue(commitMsg.checked);
|
|
|
|
assert.equal(req.status, 201);
|
|
|
|
assert.equal(req.url,
|
|
|
|
'/changes/42/revisions/2/files/%2FCOMMIT_MSG/reviewed');
|
|
|
|
|
|
|
|
done();
|
|
|
|
});
|
|
|
|
});
|
2016-03-06 14:57:02 +01:00
|
|
|
});
|
2016-02-10 21:59:20 +01:00
|
|
|
});
|
2015-11-14 15:40:47 -05:00
|
|
|
});
|
|
|
|
</script>
|