diff options
Diffstat (limited to 'polygerrit-ui/app/elements/change/gr-message/gr-message_test.html')
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-message/gr-message_test.html | 135 |
1 files changed, 85 insertions, 50 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html index 89c7173fe9..aa18c4e7b6 100644 --- a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html +++ b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html @@ -20,8 +20,7 @@ limitations under the License. <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script> <script src="../../../bower_components/web-component-tester/browser.js"></script> - -<link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html"> +<link rel="import" href="../../../test/common-test-setup.html"/> <link rel="import" href="gr-message.html"> <script>void(0);</script> @@ -33,30 +32,32 @@ limitations under the License. </test-fixture> <script> - suite('gr-message tests', function() { - var element; + suite('gr-message tests', () => { + let element; - setup(function() { + setup(done => { stub('gr-rest-api-interface', { - getLoggedIn: function() { return Promise.resolve(false); }, + getLoggedIn() { return Promise.resolve(false); }, + getConfig() { return Promise.resolve({}); }, }); element = fixture('basic'); + flush(done); }); - test('reply event', function(done) { + test('reply event', done => { element.message = { - 'id': '47c43261_55aa2c41', - 'author': { - '_account_id': 1115495, - 'name': 'Andrew Bonventre', - 'email': 'andybons@chromium.org', + id: '47c43261_55aa2c41', + author: { + _account_id: 1115495, + name: 'Andrew Bonventre', + email: 'andybons@chromium.org', }, - 'date': '2016-01-12 20:24:49.448000000', - 'message': 'Uploaded patch set 1.', - '_revision_number': 1 + date: '2016-01-12 20:24:49.448000000', + message: 'Uploaded patch set 1.', + _revision_number: 1, }; - element.addEventListener('reply', function(e) { + element.addEventListener('reply', e => { assert.deepEqual(e.detail.message, element.message); done(); }); @@ -64,41 +65,25 @@ limitations under the License. MockInteractions.tap(element.$$('.replyContainer gr-button')); }); - test('reviewer update', function() { - var author = { - _account_id: 1115495, - name: 'Andrew Bonventre', - email: 'andybons@chromium.org', - }; - var reviewer = { - _account_id: 123456, - name: 'Foo Bar', - email: 'barbar@chromium.org', - }; + test('autogenerated prefix hiding', () => { element.message = { - id: 0xDEADBEEF, - author: author, - reviewer: reviewer, - date: '2016-01-12 20:24:49.448000000', - type: 'REVIEWER_UPDATE', - updates: [ - { - message: 'Added to CC:', - reviewers: [reviewer], - } - ], + tag: 'autogenerated:gerrit:test', + updated: '2016-01-12 20:24:49.448000000', }; - flushAsynchronousOperations(); - var content = element.$$('.contentContainer'); - assert.isOk(content); - assert.strictEqual(element.$$('gr-account-chip').account, reviewer); - assert.equal(author.name, element.$$('.name').textContent); + + assert.isTrue(element.isAutomated); + assert.isFalse(element.hidden); + + element.hideAutomated = true; + + assert.isTrue(element.hidden); }); - test('autogenerated prefix hiding', function() { + test('reviewer message treated as autogenerated', () => { element.message = { tag: 'autogenerated:gerrit:test', updated: '2016-01-12 20:24:49.448000000', + reviewer: {}, }; assert.isTrue(element.isAutomated); @@ -109,9 +94,9 @@ limitations under the License. assert.isTrue(element.hidden); }); - test('reviewer message treated as autogenerated', function() { + test('batch reviewer message treated as autogenerated', () => { element.message = { - tag: 'autogenerated:gerrit:test', + type: 'REVIEWER_UPDATE', updated: '2016-01-12 20:24:49.448000000', reviewer: {}, }; @@ -124,7 +109,7 @@ limitations under the License. assert.isTrue(element.hidden); }); - test('tag that is not autogenerated prefix does not hide', function() { + test('tag that is not autogenerated prefix does not hide', () => { element.message = { tag: 'something', updated: '2016-01-12 20:24:49.448000000', @@ -138,12 +123,62 @@ limitations under the License. assert.isFalse(element.hidden); }); - test('reply button hidden unless logged in', function() { - var message = { - 'message': 'Uploaded patch set 1.', + test('reply button hidden unless logged in', () => { + const message = { + message: 'Uploaded patch set 1.', }; assert.isFalse(element._computeShowReplyButton(message, false)); assert.isTrue(element._computeShowReplyButton(message, true)); }); + + test('_computeShowOnBehalfOf', () => { + const message = { + message: '...', + }; + assert.isNotOk(element._computeShowOnBehalfOf(message)); + message.author = {_account_id: 1115495}; + assert.isNotOk(element._computeShowOnBehalfOf(message)); + message.real_author = {_account_id: 1115495}; + assert.isNotOk(element._computeShowOnBehalfOf(message)); + message.real_author._account_id = 123456; + assert.isOk(element._computeShowOnBehalfOf(message)); + message.updated_by = message.author; + delete message.author; + assert.isOk(element._computeShowOnBehalfOf(message)); + delete message.updated_by; + assert.isNotOk(element._computeShowOnBehalfOf(message)); + }); + + ['Trybot-Ready', 'Tryjob-Request', 'Commit-Queue'].forEach(label => { + test(`${label} ignored for color voting`, () => { + element.message = { + author: {}, + expanded: false, + message: `Patch Set 1: ${label}+1`, + }; + assert.isNotOk( + Polymer.dom(element.root).querySelector('.negativeVote')); + assert.isNotOk( + Polymer.dom(element.root).querySelector('.positiveVote')); + }); + }); + + test('negative vote', () => { + element.message = { + author: {}, + expanded: false, + message: 'Patch Set 1: Verified+1 Code-Review-2 Trybot-Ready+1', + }; + assert.isOk(Polymer.dom(element.root).querySelector('.negativeVote')); + }); + + test('positive vote', () => { + element.message = { + author: {}, + expanded: false, + message: 'Patch Set 1: Verified-1 Code-Review+2 Trybot-Ready-1', + }; + assert.isOk(Polymer.dom(element.root).querySelector('.positiveVote')); + }); }); </script> |