diff options
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.html | 121 |
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> |