139 lines
4.6 KiB
HTML
139 lines
4.6 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
@license
|
|
Copyright (C) 2015 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-commit-info</title>
|
|
|
|
<script src="/bower_components/webcomponentsjs/custom-elements-es5-adapter.js"></script>
|
|
|
|
<script src="/bower_components/webcomponentsjs/webcomponents-lite.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="../../core/gr-router/gr-router.html">
|
|
<link rel="import" href="gr-commit-info.html">
|
|
|
|
<script>void(0);</script>
|
|
|
|
<test-fixture id="basic">
|
|
<template>
|
|
<gr-commit-info></gr-commit-info>
|
|
</template>
|
|
</test-fixture>
|
|
|
|
<script>
|
|
suite('gr-commit-info tests', () => {
|
|
let element;
|
|
let sandbox;
|
|
|
|
setup(() => {
|
|
sandbox = sinon.sandbox.create();
|
|
element = fixture('basic');
|
|
});
|
|
|
|
teardown(() => {
|
|
sandbox.restore();
|
|
});
|
|
|
|
test('weblinks use Gerrit.Nav interface', () => {
|
|
const weblinksStub = sandbox.stub(Gerrit.Nav, '_generateWeblinks')
|
|
.returns([{name: 'stubb', url: '#s'}]);
|
|
element.change = {};
|
|
element.commitInfo = {};
|
|
element.serverConfig = {};
|
|
assert.isTrue(weblinksStub.called);
|
|
});
|
|
|
|
test('no web link when unavailable', () => {
|
|
element.commitInfo = {};
|
|
element.serverConfig = {};
|
|
element.change = {labels: [], project: ''};
|
|
|
|
assert.isNotOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
});
|
|
|
|
test('use web link when available', () => {
|
|
const router = document.createElement('gr-router');
|
|
sandbox.stub(Gerrit.Nav, '_generateWeblinks',
|
|
router._generateWeblinks.bind(router));
|
|
|
|
element.change = {labels: [], project: ''};
|
|
element.commitInfo =
|
|
{commit: 'commitsha', web_links: [{name: 'gitweb', url: 'link-url'}]};
|
|
element.serverConfig = {};
|
|
|
|
assert.isOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
assert.equal(element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig), 'link-url');
|
|
});
|
|
|
|
test('does not relativize web links that begin with scheme', () => {
|
|
const router = document.createElement('gr-router');
|
|
sandbox.stub(Gerrit.Nav, '_generateWeblinks',
|
|
router._generateWeblinks.bind(router));
|
|
|
|
element.change = {labels: [], project: ''};
|
|
element.commitInfo = {
|
|
commit: 'commitsha',
|
|
web_links: [{name: 'gitweb', url: 'https://link-url'}],
|
|
};
|
|
element.serverConfig = {};
|
|
|
|
assert.isOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
assert.equal(element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig), 'https://link-url');
|
|
});
|
|
|
|
test('ignore web links that are neither gitweb nor gitiles', () => {
|
|
const router = document.createElement('gr-router');
|
|
sandbox.stub(Gerrit.Nav, '_generateWeblinks',
|
|
router._generateWeblinks.bind(router));
|
|
|
|
element.change = {project: 'project-name'};
|
|
element.commitInfo = {
|
|
commit: 'commit-sha',
|
|
web_links: [
|
|
{
|
|
name: 'ignore',
|
|
url: 'ignore',
|
|
},
|
|
{
|
|
name: 'gitiles',
|
|
url: 'https://link-url',
|
|
},
|
|
],
|
|
};
|
|
element.serverConfig = {};
|
|
|
|
assert.isOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
assert.equal(element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig), 'https://link-url');
|
|
|
|
// Remove gitiles link.
|
|
element.commitInfo.web_links.splice(1, 1);
|
|
assert.isNotOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
assert.isNotOk(element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig));
|
|
});
|
|
});
|
|
</script>
|