| # Copyright 2018 The LUCI Authors. All rights reserved. |
| # Use of this source code is governed under the Apache License, Version 2.0 |
| # that can be found in the LICENSE file. |
| |
| DEPS = [ |
| 'gitiles', |
| 'recipe_engine/properties', |
| 'recipe_engine/step', |
| ] |
| |
| |
| def RunSteps(api): |
| valid_urls = [ |
| 'https://host/path/to/project', |
| 'http://host/path/to/project', |
| 'https://host/a/path/to/project', |
| 'https://host/path/to/project.git', |
| 'http://host/a/path/to/project', |
| 'host/a/path/to/project', |
| ] |
| for repo_url in valid_urls: |
| host, project = api.gitiles.parse_repo_url(repo_url) |
| assert host == 'host', host |
| assert project == 'path/to/project', project |
| |
| invalid_urls = [ |
| 'https://host/a/path/to/project?a=b', |
| 'https://host/path/to/project/+/master', |
| ] |
| for repo_url in invalid_urls: |
| host, project = api.gitiles.parse_repo_url(repo_url) |
| assert host is None |
| assert project is None |
| |
| actual = api.gitiles.unparse_repo_url('host', 'path/to/project') |
| expected = 'https://host/path/to/project' |
| assert actual == expected |
| |
| actual = api.gitiles.canonicalize_repo_url('http://host/path/to/project') |
| expected = 'https://host/path/to/project' |
| assert actual == expected |
| |
| actual = api.gitiles.canonicalize_repo_url('http://unrecognized') |
| expected = 'http://unrecognized' |
| assert actual == expected |
| |
| |
| def GenTests(api): |
| yield api.test('basic') |