|  | <!DOCTYPE html> | 
|  | <!-- | 
|  | @license | 
|  | Copyright (C) 2017 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-identities</title> | 
|  |  | 
|  | <script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script> | 
|  |  | 
|  | <script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-lite.js"></script> | 
|  | <script src="/components/wct-browser-legacy/browser.js"></script> | 
|  | <script type="module" src="../../../test/test-pre-setup.js"></script> | 
|  | <script type="module" src="../../../test/common-test-setup.js"></script> | 
|  | <script type="module" src="./gr-identities.js"></script> | 
|  |  | 
|  | <script type="module"> | 
|  | import '../../../test/test-pre-setup.js'; | 
|  | import '../../../test/common-test-setup.js'; | 
|  | import './gr-identities.js'; | 
|  | void(0); | 
|  | </script> | 
|  |  | 
|  | <test-fixture id="basic"> | 
|  | <template> | 
|  | <gr-identities></gr-identities> | 
|  | </template> | 
|  | </test-fixture> | 
|  |  | 
|  | <script type="module"> | 
|  | import '../../../test/test-pre-setup.js'; | 
|  | import '../../../test/common-test-setup.js'; | 
|  | import './gr-identities.js'; | 
|  | import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js'; | 
|  | suite('gr-identities tests', () => { | 
|  | let element; | 
|  | let sandbox; | 
|  | const ids = [ | 
|  | { | 
|  | identity: 'username:john', | 
|  | email_address: 'john.doe@example.com', | 
|  | trusted: true, | 
|  | }, { | 
|  | identity: 'gerrit:gerrit', | 
|  | email_address: 'gerrit@example.com', | 
|  | }, { | 
|  | identity: 'mailto:gerrit2@example.com', | 
|  | email_address: 'gerrit2@example.com', | 
|  | trusted: true, | 
|  | can_delete: true, | 
|  | }, | 
|  | ]; | 
|  |  | 
|  | setup(done => { | 
|  | sandbox = sinon.sandbox.create(); | 
|  |  | 
|  | stub('gr-rest-api-interface', { | 
|  | getExternalIds() { return Promise.resolve(ids); }, | 
|  | }); | 
|  |  | 
|  | element = fixture('basic'); | 
|  |  | 
|  | element.loadData().then(() => { flush(done); }); | 
|  | }); | 
|  |  | 
|  | teardown(() => { | 
|  | sandbox.restore(); | 
|  | }); | 
|  |  | 
|  | test('renders', () => { | 
|  | const rows = Array.from( | 
|  | dom(element.root).querySelectorAll('tbody tr')); | 
|  |  | 
|  | assert.equal(rows.length, 2); | 
|  |  | 
|  | const nameCells = rows.map(row => | 
|  | row.querySelectorAll('td')[2].textContent | 
|  | ); | 
|  |  | 
|  | assert.equal(nameCells[0], 'gerrit:gerrit'); | 
|  | assert.equal(nameCells[1], ''); | 
|  | }); | 
|  |  | 
|  | test('renders email', () => { | 
|  | const rows = Array.from( | 
|  | dom(element.root).querySelectorAll('tbody tr')); | 
|  |  | 
|  | assert.equal(rows.length, 2); | 
|  |  | 
|  | const nameCells = rows.map(row => | 
|  | row.querySelectorAll('td')[1].textContent | 
|  | ); | 
|  |  | 
|  | assert.equal(nameCells[0], 'gerrit@example.com'); | 
|  | assert.equal(nameCells[1], 'gerrit2@example.com'); | 
|  | }); | 
|  |  | 
|  | test('_computeIdentity', () => { | 
|  | assert.equal( | 
|  | element._computeIdentity(ids[0].identity), 'username:john'); | 
|  | assert.equal(element._computeIdentity(ids[2].identity), ''); | 
|  | }); | 
|  |  | 
|  | test('filterIdentities', () => { | 
|  | assert.isFalse(element.filterIdentities(ids[0])); | 
|  |  | 
|  | assert.isTrue(element.filterIdentities(ids[1])); | 
|  | }); | 
|  |  | 
|  | test('delete id', done => { | 
|  | element._idName = 'mailto:gerrit2@example.com'; | 
|  | const loadDataStub = sandbox.stub(element, 'loadData'); | 
|  | element._handleDeleteItemConfirm().then(() => { | 
|  | assert.isTrue(loadDataStub.called); | 
|  | done(); | 
|  | }); | 
|  | }); | 
|  |  | 
|  | test('_handleDeleteItem opens modal', () => { | 
|  | const deleteBtn = | 
|  | dom(element.root).querySelector('.deleteButton'); | 
|  | const deleteItem = sandbox.stub(element, '_handleDeleteItem'); | 
|  | MockInteractions.tap(deleteBtn); | 
|  | assert.isTrue(deleteItem.called); | 
|  | }); | 
|  |  | 
|  | test('_computeShowLinkAnotherIdentity', () => { | 
|  | let serverConfig; | 
|  |  | 
|  | serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'OAUTH', | 
|  | }, | 
|  | }; | 
|  | assert.isTrue(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  |  | 
|  | serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'OpenID', | 
|  | }, | 
|  | }; | 
|  | assert.isTrue(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  |  | 
|  | serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'HTTP_LDAP', | 
|  | }, | 
|  | }; | 
|  | assert.isFalse(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  |  | 
|  | serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'LDAP', | 
|  | }, | 
|  | }; | 
|  | assert.isFalse(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  |  | 
|  | serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'HTTP', | 
|  | }, | 
|  | }; | 
|  | assert.isFalse(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  |  | 
|  | serverConfig = {}; | 
|  | assert.isFalse(element._computeShowLinkAnotherIdentity(serverConfig)); | 
|  | }); | 
|  |  | 
|  | test('_showLinkAnotherIdentity', () => { | 
|  | element.serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'OAUTH', | 
|  | }, | 
|  | }; | 
|  |  | 
|  | assert.isTrue(element._showLinkAnotherIdentity); | 
|  |  | 
|  | element.serverConfig = { | 
|  | auth: { | 
|  | git_basic_auth_policy: 'LDAP', | 
|  | }, | 
|  | }; | 
|  |  | 
|  | assert.isFalse(element._showLinkAnotherIdentity); | 
|  | }); | 
|  | }); | 
|  | </script> |