diff options
Diffstat (limited to 'polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html')
-rw-r--r-- | polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html b/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html new file mode 100644 index 0000000000..2304d15205 --- /dev/null +++ b/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html @@ -0,0 +1,189 @@ +<!DOCTYPE html> +<!-- +@license +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-cla-view</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-cla-view.html"> + +<script>void(0);</script> + +<test-fixture id="basic"> + <template> + <gr-cla-view></gr-cla-view> + </template> +</test-fixture> + +<script> + suite('gr-cla-view tests', () => { + let element; + const signedAgreements = [{ + name: 'CLA', + description: 'Contributor License Agreement', + url: 'static/cla.html', + }]; + const auth = { + name: 'Individual', + description: 'test-description', + url: 'static/cla_individual.html', + auto_verify_group: { + url: '#/admin/groups/uuid-e9aaddc47f305be7661ad4db9b66f9b707bd19a0', + options: { + visible_to_all: true, + }, + group_id: 20, + owner: 'CLA Accepted - Individual', + owner_id: 'e9aaddc47f305be7661ad4db9b66f9b707bd19a0', + created_on: '2017-07-31 15:11:04.000000000', + id: 'e9aaddc47f305be7661ad4db9b66f9b707bd19a0', + name: 'CLA Accepted - Individual', + }, + }; + + const auth2 = { + name: 'Individual2', + description: 'test-description2', + url: 'static/cla_individual2.html', + auto_verify_group: { + url: '#/admin/groups/uuid-bc53f2738ef8ad0b3a4f53846ff59b05822caecb', + options: {}, + group_id: 21, + owner: 'CLA Accepted - Individual2', + owner_id: 'bc53f2738ef8ad0b3a4f53846ff59b05822caecb', + created_on: '2017-07-31 15:25:42.000000000', + id: 'bc53f2738ef8ad0b3a4f53846ff59b05822caecb', + name: 'CLA Accepted - Individual2', + }, + }; + + const auth3 = { + name: 'CLA', + description: 'Contributor License Agreement', + url: 'static/cla_individual.html', + }; + + const config = { + auth: { + use_contributor_agreements: true, + contributor_agreements: [ + { + name: 'Individual', + description: 'test-description', + url: 'static/cla_individual.html', + }, + { + name: 'CLA', + description: 'Contributor License Agreement', + url: 'static/cla.html', + }], + }, + }; + const config2 = { + auth: { + use_contributor_agreements: true, + contributor_agreements: [ + { + name: 'Individual2', + description: 'test-description2', + url: 'static/cla_individual2.html', + }, + ], + }, + }; + const groups = [{ + options: {visible_to_all: true}, + id: 'e9aaddc47f305be7661ad4db9b66f9b707bd19a0', + group_id: 3, + name: 'CLA Accepted - Individual', + }, + ]; + + setup(done => { + stub('gr-rest-api-interface', { + getConfig() { return Promise.resolve(config); }, + getAccountGroups() { return Promise.resolve(groups); }, + getAccountAgreements() { return Promise.resolve(signedAgreements); }, + }); + element = fixture('basic'); + element.loadData().then(() => { flush(done); }); + }); + + test('renders as expected with signed agreement', () => { + const agreementSections = Polymer.dom(element.root) + .querySelectorAll('.contributorAgreementButton'); + const agreementSubmittedTexts = Polymer.dom(element.root) + .querySelectorAll('.alreadySubmittedText'); + assert.equal(agreementSections.length, 2); + assert.isFalse(agreementSections[0].querySelector('input').disabled); + assert.equal(getComputedStyle(agreementSubmittedTexts[0]).display, + 'none'); + assert.isTrue(agreementSections[1].querySelector('input').disabled); + assert.notEqual(getComputedStyle(agreementSubmittedTexts[1]).display, + 'none'); + }); + + test('_disableAggreements', () => { + // In the auto verify group and have not yet signed agreement + assert.isTrue( + element._disableAggreements(auth, groups, signedAgreements)); + // Not in the auto verify group and have not yet signed agreement + assert.isFalse( + element._disableAggreements(auth2, groups, signedAgreements)); + // Not in the auto verify group, have signed agreement + assert.isTrue( + element._disableAggreements(auth3, groups, signedAgreements)); + }); + + test('_hideAggreements', () => { + // Not in the auto verify group and have not yet signed agreement + assert.equal( + element._hideAggreements(auth, groups, signedAgreements), ''); + // In the auto verify group + assert.equal( + element._hideAggreements(auth2, groups, signedAgreements), 'hide'); + // Not in the auto verify group, have signed agreement + assert.equal( + element._hideAggreements(auth3, groups, signedAgreements), ''); + }); + + test('_disableAgreementsText', () => { + assert.isFalse(element._disableAgreementsText('I AGREE')); + assert.isTrue(element._disableAgreementsText('I DO NOT AGREE')); + }); + + test('_computeHideAgreementClass', () => { + assert.equal( + element._computeHideAgreementClass( + auth.name, config.auth.contributor_agreements), + 'hideAgreementsTextBox'); + assert.isUndefined( + element._computeHideAgreementClass( + auth.name, config2.auth.contributor_agreements)); + }); + + test('_getAgreementsUrl', () => { + assert.equal(element._getAgreementsUrl( + 'http://test.org/test.html'), 'http://test.org/test.html'); + assert.equal(element._getAgreementsUrl( + 'test_cla.html'), '/test_cla.html'); + }); + }); +</script> |