git cl: safe fallback for Gerrit RPCs even if gerrit project is unknown.

R=ehmaldonado

Bug: 876910
Change-Id: I258efa0a95f20b80819bc89cccfb5e0a29e09d5c
Reviewed-on: https://chromium-review.googlesource.com/1188989
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index ba3a643..3cd13d8 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -3450,7 +3450,7 @@
     self.assertEqual(cl.GetRemoteUrl(), url)
     self.assertEqual(cl.GetRemoteUrl(), url)  # Must be cached.
 
-  def test_gerrit_project_detection(self):
+  def test_gerrit_change_identifier_with_project(self):
     self.calls = [
       ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
       ((['git', 'config', 'branch.master.merge'],), 'master'),
@@ -3458,8 +3458,18 @@
       ((['git', 'config', 'remote.origin.url'],),
        'https://chromium.googlesource.com/a/my/repo.git/'),
     ]
-    cl = git_cl.Changelist(codereview='gerrit', issue=1)
-    self.assertEqual(cl._GetGerritProject(), 'my/repo')
+    cl = git_cl.Changelist(codereview='gerrit', issue=123456)
+    self.assertEqual(cl._GerritChangeIdentifier(), 'my%2Frepo~123456')
+
+  def test_gerrit_change_identifier_without_project(self):
+    self.calls = [
+      ((['git', 'symbolic-ref', 'HEAD'],), 'master'),
+      ((['git', 'config', 'branch.master.merge'],), 'master'),
+      ((['git', 'config', 'branch.master.remote'],), 'origin'),
+      ((['git', 'config', 'remote.origin.url'],), CERR1),
+    ]
+    cl = git_cl.Changelist(codereview='gerrit', issue=123456)
+    self.assertEqual(cl._GerritChangeIdentifier(), '123456')
 
 
 if __name__ == '__main__':