 d2fca29792
			
		
	
	d2fca29792
	
	
	
		
			
			Same as obervers, in polymer 2 a computed property will run when at least one dependencies is defined. To match the behavior in v1, return undefined if not all dependencies are defined. Bug: Issue 10723 Change-Id: Iaa294d5bc392c6f3970cdbb59213a9d2913e6f64
		
			
				
	
	
		
			126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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-upload-help-dialog</title>
 | |
| <script src="/test/common-test-setup.js"></script>
 | |
| <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="gr-upload-help-dialog.html">
 | |
| 
 | |
| <script>void(0);</script>
 | |
| 
 | |
| <test-fixture id="basic">
 | |
|   <template>
 | |
|     <gr-upload-help-dialog></gr-upload-help-dialog>
 | |
|   </template>
 | |
| </test-fixture>
 | |
| 
 | |
| <script>
 | |
|   suite('gr-upload-help-dialog tests', () => {
 | |
|     let element;
 | |
| 
 | |
|     setup(() => {
 | |
|       element = fixture('basic');
 | |
|     });
 | |
| 
 | |
|     test('constructs push command from branch', () => {
 | |
|       element.targetBranch = 'foo';
 | |
|       assert.equal(element._pushCommand, 'git push origin HEAD:refs/for/foo');
 | |
| 
 | |
|       element.targetBranch = 'master';
 | |
|       assert.equal(element._pushCommand,
 | |
|           'git push origin HEAD:refs/for/master');
 | |
|     });
 | |
| 
 | |
|     suite('fetch command', () => {
 | |
|       const testRev = {
 | |
|         fetch: {
 | |
|           http: {
 | |
|             commands: {
 | |
|               Checkout: 'http checkout',
 | |
|               Pull: 'http pull',
 | |
|             },
 | |
|           },
 | |
|           ssh: {
 | |
|             commands: {
 | |
|               Pull: 'ssh pull',
 | |
|             },
 | |
|           },
 | |
|         },
 | |
|       };
 | |
| 
 | |
|       test('null cases', () => {
 | |
|         assert.isUndefined(element._computeFetchCommand());
 | |
|         assert.isUndefined(element._computeFetchCommand({}));
 | |
|         assert.isUndefined(element._computeFetchCommand({fetch: null}));
 | |
|         assert.isUndefined(element._computeFetchCommand({fetch: {}}));
 | |
|       });
 | |
| 
 | |
|       test('not all defined', () => {
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(testRev, undefined, ''));
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(testRev, '', undefined));
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(undefined, '', ''));
 | |
|       });
 | |
| 
 | |
|       test('insufficiently defined scheme', () => {
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(testRev, '', 'badscheme'));
 | |
| 
 | |
|         const rev = Object.assign({}, testRev);
 | |
|         rev.fetch = Object.assign({}, testRev.fetch, {nocmds: {commands: {}}});
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(rev, '', 'nocmds'));
 | |
| 
 | |
|         rev.fetch.nocmds.commands.unsupported = 'unsupported';
 | |
|         assert.isUndefined(
 | |
|             element._computeFetchCommand(rev, '', 'nocmds'));
 | |
|       });
 | |
| 
 | |
|       test('default scheme and command', () => {
 | |
|         const cmd = element._computeFetchCommand(testRev, '', '');
 | |
|         assert.isTrue(cmd === 'http checkout' || cmd === 'ssh pull');
 | |
|       });
 | |
| 
 | |
|       test('default command', () => {
 | |
|         assert.strictEqual(
 | |
|             element._computeFetchCommand(testRev, '', 'http'),
 | |
|             'http checkout');
 | |
|         assert.strictEqual(
 | |
|             element._computeFetchCommand(testRev, '', 'ssh'),
 | |
|             'ssh pull');
 | |
|       });
 | |
| 
 | |
|       test('user preferred scheme and command', () => {
 | |
|         assert.strictEqual(
 | |
|             element._computeFetchCommand(testRev, 'PULL', 'http'),
 | |
|             'http pull');
 | |
|         assert.strictEqual(
 | |
|             element._computeFetchCommand(testRev, 'badcmd', 'http'),
 | |
|             'http checkout');
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| </script>
 |