| <!DOCTYPE html> |
| <!-- |
| Copyright (C) 2018 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"> |
| <title>gr-thread-list</title> |
| |
| <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script> |
| <script src="../../../bower_components/web-component-tester/browser.js"></script> |
| <link rel="import" href="../../../test/common-test-setup.html"/> |
| <link rel="import" href="gr-thread-list.html"> |
| |
| <script>void(0);</script> |
| |
| <test-fixture id="basic"> |
| <template> |
| <gr-thread-list></gr-thread-list> |
| </template> |
| </test-fixture> |
| |
| <script> |
| suite('gr-thread-list tests', () => { |
| let element; |
| let sandbox; |
| let threadsElements; |
| const computeVisibleNumber = threads => { |
| let count = 0; |
| for (const thread of threads) { |
| if (getComputedStyle(thread).display !== 'none') { |
| count++; |
| } |
| } |
| return count; |
| }; |
| |
| setup(() => { |
| sandbox = sinon.sandbox.create(); |
| element = fixture('basic'); |
| element.threads = [ |
| { |
| comments: [ |
| { |
| __path: '/COMMIT_MSG', |
| author: { |
| _account_id: 1000000, |
| name: 'user', |
| username: 'user', |
| }, |
| patch_set: 4, |
| id: 'ecf0b9fa_fe1a5f62', |
| line: 5, |
| updated: '2018-02-08 18:49:18.000000000', |
| message: 'test', |
| unresolved: true, |
| }, |
| { |
| id: '503008e2_0ab203ee', |
| path: '/COMMIT_MSG', |
| line: 5, |
| in_reply_to: 'ecf0b9fa_fe1a5f62', |
| updated: '2018-02-13 22:48:48.018000000', |
| message: 'draft', |
| unresolved: true, |
| __draft: true, |
| __draftID: '0.m683trwff68', |
| __editing: false, |
| patch_set: '2', |
| }, |
| ], |
| patchNum: 4, |
| path: '/COMMIT_MSG', |
| line: 5, |
| rootId: 'ecf0b9fa_fe1a5f62', |
| start_datetime: '2018-02-08 18:49:18.000000000', |
| }, |
| { |
| comments: [ |
| { |
| __path: 'test.txt', |
| author: { |
| _account_id: 1000000, |
| name: 'user', |
| username: 'user', |
| }, |
| patch_set: 3, |
| id: '09a9fb0a_1484e6cf', |
| side: 'PARENT', |
| updated: '2018-02-13 22:47:19.000000000', |
| message: 'Some comment on another patchset.', |
| unresolved: false, |
| }, |
| ], |
| patchNum: 3, |
| path: 'test.txt', |
| rootId: '09a9fb0a_1484e6cf', |
| start_datetime: '2018-02-13 22:47:19.000000000', |
| commentSide: 'PARENT', |
| }, |
| { |
| comments: [ |
| { |
| __path: '/COMMIT_MSG', |
| author: { |
| _account_id: 1000000, |
| name: 'user', |
| username: 'user', |
| }, |
| patch_set: 2, |
| id: '8caddf38_44770ec1', |
| line: 4, |
| updated: '2018-02-13 22:48:40.000000000', |
| message: 'Another unresolved comment', |
| unresolved: true, |
| }, |
| ], |
| patchNum: 2, |
| path: '/COMMIT_MSG', |
| line: 4, |
| rootId: '8caddf38_44770ec1', |
| start_datetime: '2018-02-13 22:48:40.000000000', |
| }, |
| ]; |
| flushAsynchronousOperations(); |
| threadsElements = Polymer.dom(element.root) |
| .querySelectorAll('gr-diff-comment-thread'); |
| }); |
| |
| teardown(() => { |
| sandbox.restore(); |
| }); |
| |
| test('there are three threads by default', () => { |
| assert.equal(computeVisibleNumber(threadsElements), 3); |
| }); |
| |
| test('toggle unresolved only shows unressolved comments', () => { |
| MockInteractions.tap(element.$.unresolvedToggle); |
| flushAsynchronousOperations(); |
| assert.equal(computeVisibleNumber(threadsElements), 2); |
| }); |
| |
| test('toggle drafts only shows threads with draft comments', () => { |
| MockInteractions.tap(element.$.draftToggle); |
| flushAsynchronousOperations(); |
| assert.equal(computeVisibleNumber(threadsElements), 1); |
| }); |
| |
| test('toggle drafts and unresolved only shows threads with drafts and ' + |
| 'unresolved', () => { |
| MockInteractions.tap(element.$.draftToggle); |
| MockInteractions.tap(element.$.unresolvedToggle); |
| flushAsynchronousOperations(); |
| assert.equal(computeVisibleNumber(threadsElements), 1); |
| }); |
| }); |
| </script> |