summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html')
-rw-r--r--polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html121
1 files changed, 98 insertions, 23 deletions
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
index 243a8ab083..3637653d53 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<!--
+@license
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,8 +37,10 @@ limitations under the License.
<script>
suite('gr-change-list-item tests', () => {
let element;
+ let sandbox;
setup(() => {
+ sandbox = sinon.sandbox.create();
stub('gr-rest-api-interface', {
getConfig() { return Promise.resolve({}); },
getLoggedIn() { return Promise.resolve(false); },
@@ -45,6 +48,8 @@ limitations under the License.
element = fixture('basic');
});
+ teardown(() => { sandbox.restore(); });
+
test('computed fields', () => {
assert.equal(element._computeLabelClass({labels: {}}),
'cell label u-gray-background');
@@ -120,7 +125,7 @@ limitations under the License.
'Status',
'Owner',
'Assignee',
- 'Project',
+ 'Repo',
'Branch',
'Updated',
'Size',
@@ -130,17 +135,18 @@ limitations under the License.
for (const column of element.columnNames) {
const elementClass = '.' + column.toLowerCase();
+ assert.isOk(element.$$(elementClass),
+ `Expect ${elementClass} element to be found`);
assert.isFalse(element.$$(elementClass).hidden);
}
});
- test('no hidden columns', () => {
+ test('repo column hidden', () => {
element.visibleChangeTableColumns = [
'Subject',
'Status',
'Owner',
'Assignee',
- 'Project',
'Branch',
'Updated',
'Size',
@@ -150,26 +156,7 @@ limitations under the License.
for (const column of element.columnNames) {
const elementClass = '.' + column.toLowerCase();
- assert.isFalse(element.$$(elementClass).hidden);
- }
- });
-
- test('project column hidden', () => {
- element.visibleChangeTableColumns = [
- 'Subject',
- 'Status',
- 'Owner',
- 'Assignee',
- 'Branch',
- 'Updated',
- 'Size',
- ];
-
- flushAsynchronousOperations();
-
- for (const column of element.columnNames) {
- const elementClass = '.' + column.toLowerCase();
- if (column === 'Project') {
+ if (column === 'Repo') {
assert.isTrue(element.$$(elementClass).hidden);
} else {
assert.isFalse(element.$$(elementClass).hidden);
@@ -188,14 +175,102 @@ limitations under the License.
});
test('assignee only displayed if there is one', () => {
+ element.change = {};
+ flushAsynchronousOperations();
assert.isNotOk(element.$$('.assignee gr-account-link'));
+ assert.equal(element.$$('.assignee').textContent.trim(), '--');
element.change = {
assignee: {
name: 'test',
+ status: 'test',
},
};
flushAsynchronousOperations();
assert.isOk(element.$$('.assignee gr-account-link'));
+ assert.equal(Polymer.dom(element.root)
+ .querySelector('#assigneeAccountLink').additionalText, '(test)');
+ });
+
+ test('_computeAccountStatusString', () => {
+ assert.equal(element._computeAccountStatusString({}), '');
+ assert.equal(element._computeAccountStatusString({status: 'Working'}),
+ '(Working)');
+ });
+
+ test('TShirt sizing tooltip', () => {
+ assert.equal(element._computeSizeTooltip({
+ insertions: 'foo',
+ deletions: 'bar',
+ }), 'Size unknown');
+ assert.equal(element._computeSizeTooltip({
+ insertions: 0,
+ deletions: 0,
+ }), 'Size unknown');
+ assert.equal(element._computeSizeTooltip({
+ insertions: 1,
+ deletions: 2,
+ }), '+1, -2');
+ });
+
+ test('TShirt sizing', () => {
+ assert.equal(element._computeChangeSize({
+ insertions: 'foo',
+ deletions: 'bar',
+ }), null);
+ assert.equal(element._computeChangeSize({
+ insertions: 1,
+ deletions: 1,
+ }), 'XS');
+ assert.equal(element._computeChangeSize({
+ insertions: 9,
+ deletions: 1,
+ }), 'S');
+ assert.equal(element._computeChangeSize({
+ insertions: 10,
+ deletions: 200,
+ }), 'M');
+ assert.equal(element._computeChangeSize({
+ insertions: 99,
+ deletions: 900,
+ }), 'L');
+ assert.equal(element._computeChangeSize({
+ insertions: 99,
+ deletions: 999,
+ }), 'XL');
+ });
+
+ test('change params passed to gr-navigation', () => {
+ sandbox.stub(Gerrit.Nav);
+ const change = {
+ internalHost: 'test-host',
+ project: 'test-repo',
+ topic: 'test-topic',
+ branch: 'test-branch',
+ };
+ element.change = change;
+ flushAsynchronousOperations();
+
+ assert.deepEqual(Gerrit.Nav.getUrlForChange.lastCall.args, [change]);
+ assert.deepEqual(Gerrit.Nav.getUrlForProjectChanges.lastCall.args,
+ [change.project, true, change.internalHost]);
+ assert.deepEqual(Gerrit.Nav.getUrlForBranch.lastCall.args,
+ [change.branch, change.project, null, change.internalHost]);
+ assert.deepEqual(Gerrit.Nav.getUrlForTopic.lastCall.args,
+ [change.topic, change.internalHost]);
+ });
+
+ test('_computeRepoDisplay', () => {
+ const change = {
+ project: 'a/test/repo',
+ internalHost: 'host',
+ };
+ assert.equal(element._computeRepoDisplay(change), 'host/a/test/repo');
+ assert.equal(element._computeRepoDisplay(change, true),
+ 'host/…/test/repo');
+ delete change.internalHost;
+ assert.equal(element._computeRepoDisplay(change), 'a/test/repo');
+ assert.equal(element._computeRepoDisplay(change, true),
+ '…/test/repo');
});
});
</script>