summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view_test.html
diff options
context:
space:
mode:
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.html189
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>