Reland gerrit_util: Support OAuth2 bearer tokens in CookieAuthenticator

Bug: skia:8394
Change-Id: I928eaec8459a5905360ce760c6361e4554852b44
Reviewed-on: https://chromium-review.googlesource.com/c/1261796
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Eric Boren <borenet@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 1672b00..60fc3c8 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -24,6 +24,7 @@
 # We have to disable monitoring before importing git_cl.
 metrics.DISABLE_METRICS_COLLECTION = True
 
+import gerrit_util
 import git_cl
 import git_common
 import git_footers
@@ -2071,6 +2072,18 @@
         auth={}, skip_auth_check=True)
     self.assertIsNone(cl.EnsureAuthenticated(force=False))
 
+  def test_gerrit_ensure_authenticated_bearer_token(self):
+    cl = self._test_gerrit_ensure_authenticated_common(auth={
+      'chromium.googlesource.com':
+          ('', None, 'secret'),
+      'chromium-review.googlesource.com':
+          ('', None, 'secret'),
+    })
+    self.assertIsNone(cl.EnsureAuthenticated(force=False))
+    header = gerrit_util.CookiesAuthenticator().get_auth_header(
+        'chromium.googlesource.com')
+    self.assertTrue('Bearer' in header)
+
   def test_cmd_set_commit_rietveld(self):
     self.mock(git_cl._RietveldChangelistImpl, 'SetFlags',
               lambda _, v: self._mocked_call(['SetFlags', v]))