GitWebConfig was removed from ServerInfo in change: I8508dcaf3 - "Replace gitweb glue with WebLink extensions" The PG code that attempts to create the gitweb weblink from ServerInfo is redundant. Keep ServerConfig in gr-commit-info.js since it will be necessary to fix [1], which this change is groundwork for. [1] https://bugs.chromium.org/p/gerrit/issues/detail?id=10355 Bug: Issue 10360 Change-Id: I6130f4387b5b507c7fbf7c055fb0fb421cb1cd20
		
			
				
	
	
		
			137 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			4.5 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/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="../../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',
 | 
						|
          },
 | 
						|
        ],
 | 
						|
      };
 | 
						|
 | 
						|
      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>
 |