git cl patch: support short CL URLs.

Change-Id: I71ae8e94ec0cc5d880c002c7187351ac6ee2c2b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2152218
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index a91c07f..0ddc5a9 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -337,8 +337,8 @@
 
 
 class TestParseIssueURL(unittest.TestCase):
-  def _validate(self, parsed, issue=None, patchset=None, hostname=None,
-                fail=False):
+  def _test(self, arg, issue=None, patchset=None, hostname=None, fail=False):
+    parsed = git_cl.ParseIssueNumberArgument(arg)
     self.assertIsNotNone(parsed)
     if fail:
       self.assertFalse(parsed.valid)
@@ -348,39 +348,40 @@
     self.assertEqual(parsed.patchset, patchset)
     self.assertEqual(parsed.hostname, hostname)
 
-  def test_ParseIssueNumberArgument(self):
-    def test(arg, *args, **kwargs):
-      self._validate(git_cl.ParseIssueNumberArgument(arg), *args, **kwargs)
+  def test_basic(self):
+    self._test('123', 123)
+    self._test('', fail=True)
+    self._test('abc', fail=True)
+    self._test('123/1', fail=True)
+    self._test('123a', fail=True)
+    self._test('ssh://chrome-review.source.com/#/c/123/4/', fail=True)
+    self._test('ssh://chrome-review.source.com/c/123/1/', fail=True)
 
-    test('123', 123)
-    test('', fail=True)
-    test('abc', fail=True)
-    test('123/1', fail=True)
-    test('123a', fail=True)
-    test('ssh://chrome-review.source.com/#/c/123/4/', fail=True)
+  def test_gerrit_url(self):
+    self._test('https://codereview.source.com/123', 123, None,
+               'codereview.source.com')
+    self._test('http://chrome-review.source.com/c/123', 123, None,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/c/123/', 123, None,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/c/123/4', 123, 4,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/#/c/123/4', 123, 4,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/c/123/4', 123, 4,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/123', 123, None,
+               'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/123/4', 123, 4,
+               'chrome-review.source.com')
 
-    test('https://codereview.source.com/123',
-         123, None, 'codereview.source.com')
-    test('http://chrome-review.source.com/c/123',
-         123, None, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/c/123/',
-         123, None, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/c/123/4',
-         123, 4, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/#/c/123/4',
-         123, 4, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/c/123/4',
-         123, 4, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/123',
-         123, None, 'chrome-review.source.com')
-    test('https://chrome-review.source.com/123/4',
-         123, 4, 'chrome-review.source.com')
+    self._test('https://chrome-review.source.com/bad/123/4', fail=True)
+    self._test('https://chrome-review.source.com/c/123/1/whatisthis', fail=True)
+    self._test('https://chrome-review.source.com/c/abc/', fail=True)
 
-    test('https://chrome-review.source.com/bad/123/4', fail=True)
-    test('https://chrome-review.source.com/c/123/1/whatisthis', fail=True)
-    test('https://chrome-review.source.com/c/abc/', fail=True)
-    test('ssh://chrome-review.source.com/c/123/1/', fail=True)
-
+  def test_short_urls(self):
+    self._test('https://crrev.com/c/2151934', 2151934, None,
+               'chromium-review.googlesource.com')
 
 
 class GitCookiesCheckerTest(unittest.TestCase):