
Potentially related: https://github.com/Polymer/web-component-tester/issues/505 Bug: Issue 5792 Change-Id: I9ab6e8e40d9811dd52906335426764c052907609
148 lines
4.8 KiB
HTML
148 lines
4.8 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
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/webcomponents-lite.min.js"></script>
|
|
<script src="../../../bower_components/web-component-tester/browser.js"></script>
|
|
|
|
<link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.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', function() {
|
|
var element;
|
|
|
|
setup(function() {
|
|
element = fixture('basic');
|
|
});
|
|
|
|
test('no web link when unavailable', function() {
|
|
element.commitInfo = {};
|
|
element.serverConfig = {};
|
|
element.change = {labels: []};
|
|
|
|
assert.isNotOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
});
|
|
|
|
test('use web link when available', function() {
|
|
element.commitInfo = {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', function() {
|
|
element.commitInfo = {
|
|
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('use gitweb when available', function() {
|
|
element.commitInfo = {commit: 'commit-sha'};
|
|
element.serverConfig = {gitweb: {
|
|
url: 'url-base/',
|
|
type: {revision: 'xx ${project} xx ${commit} xx'},
|
|
}};
|
|
element.change = {
|
|
project: 'project-name',
|
|
labels: [],
|
|
current_revision: element.commitInfo.commit
|
|
};
|
|
|
|
assert.isOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
|
|
assert.equal(element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig), 'url-base/xx project-name xx commit-sha xx');
|
|
});
|
|
|
|
test('prefer gitweb when both are available', function() {
|
|
element.commitInfo = {
|
|
commit: 'commit-sha',
|
|
web_links: [{url: 'link-url'}]
|
|
};
|
|
element.serverConfig = {gitweb: {
|
|
url: 'url-base/',
|
|
type: {revision: 'xx ${project} xx ${commit} xx'},
|
|
}};
|
|
element.change = {
|
|
project: 'project-name',
|
|
labels: [],
|
|
current_revision: element.commitInfo.commit
|
|
};
|
|
|
|
assert.isOk(element._computeShowWebLink(element.change,
|
|
element.commitInfo, element.serverConfig));
|
|
|
|
var link = element._computeWebLink(element.change, element.commitInfo,
|
|
element.serverConfig);
|
|
|
|
assert.equal(link, 'url-base/xx project-name xx commit-sha xx');
|
|
assert.notEqual(link, '../../link-url');
|
|
});
|
|
|
|
test('ignore web links that are neither gitweb nor gitiles', function() {
|
|
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>
|