Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(788)

Unified Diff: sync/tools/testserver/sync_testserver.py

Issue 58093002: [sync] Serve fake OAuth2 tokens from python sync server (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address feedback Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/tools/testserver/chromiumsync.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/tools/testserver/sync_testserver.py
diff --git a/sync/tools/testserver/sync_testserver.py b/sync/tools/testserver/sync_testserver.py
index 53532cb5b7d57a6534958ca3c1b20cbcf9cc738a..7a90a2582cb7fea1ede9905e0998a61b8a92d8d7 100755
--- a/sync/tools/testserver/sync_testserver.py
+++ b/sync/tools/testserver/sync_testserver.py
@@ -151,10 +151,14 @@ class SyncPageHandler(testserver_base.BasePageHandler):
self.ChromiumSyncEnableKeystoreEncryptionOpHandler,
self.ChromiumSyncRotateKeystoreKeysOpHandler,
self.ChromiumSyncEnableManagedUserAcknowledgementHandler,
- self.ChromiumSyncEnablePreCommitGetUpdateAvoidanceHandler]
+ self.ChromiumSyncEnablePreCommitGetUpdateAvoidanceHandler,
+ self.GaiaOAuth2TokenHandler,
+ self.GaiaSetOAuth2TokenResponseHandler]
post_handlers = [self.ChromiumSyncCommandHandler,
- self.ChromiumSyncTimeHandler]
+ self.ChromiumSyncTimeHandler,
+ self.GaiaOAuth2TokenHandler,
+ self.GaiaSetOAuth2TokenResponseHandler]
testserver_base.BasePageHandler.__init__(self, request, client_address,
sync_http_server, [], get_handlers,
[], post_handlers, [])
@@ -441,6 +445,60 @@ class SyncPageHandler(testserver_base.BasePageHandler):
self.wfile.write(raw_reply)
return True
+ def GaiaOAuth2TokenHandler(self):
+ test_name = "/o/oauth2/token"
+ if not self._ShouldHandleRequest(test_name):
+ return False
+ if self.headers.getheader('content-length'):
+ length = int(self.headers.getheader('content-length'))
+ _raw_request = self.rfile.read(length)
+ result, raw_reply = (
+ self.server._sync_handler.HandleGetOauth2Token())
+ self.send_response(result)
+ self.send_header('Content-Type', 'application/json')
+ self.send_header('Content-Length', len(raw_reply))
+ self.end_headers()
+ self.wfile.write(raw_reply)
+ return True
+
+ def GaiaSetOAuth2TokenResponseHandler(self):
+ test_name = "/setfakeoauth2token"
+ if not self._ShouldHandleRequest(test_name):
+ return False
+
+ # The index of 'query' is 4.
+ # See http://docs.python.org/2/library/urlparse.html
+ query = urlparse.urlparse(self.path)[4]
+ query_params = urlparse.parse_qs(query)
+
+ response_code = 0
+ request_token = ''
+ access_token = ''
+ expires_in = 0
+ token_type = ''
+
+ if 'response_code' in query_params:
+ response_code = query_params['response_code'][0]
+ if 'request_token' in query_params:
+ request_token = query_params['request_token'][0]
+ if 'access_token' in query_params:
+ access_token = query_params['access_token'][0]
+ if 'expires_in' in query_params:
+ expires_in = query_params['expires_in'][0]
+ if 'token_type' in query_params:
+ token_type = query_params['token_type'][0]
+
+ result, raw_reply = (
+ self.server._sync_handler.HandleSetOauth2Token(
+ response_code, request_token, access_token, expires_in, token_type))
+ self.send_response(result)
+ self.send_header('Content-Type', 'text/html')
+ self.send_header('Content-Length', len(raw_reply))
+ self.end_headers()
+ self.wfile.write(raw_reply)
+ return True
+
+
class SyncServerRunner(testserver_base.TestServerRunner):
"""TestServerRunner for the net test servers."""
@@ -452,8 +510,12 @@ class SyncServerRunner(testserver_base.TestServerRunner):
host = self.options.host
xmpp_port = self.options.xmpp_port
server = SyncHTTPServer((host, port), xmpp_port, SyncPageHandler)
- print 'Sync HTTP server started on port %d...' % server.server_port
- print 'Sync XMPP server started on port %d...' % server.xmpp_port
+ print ('Sync HTTP server started at %s:%d/chromiumsync...' %
+ (host, server.server_port))
+ print ('Fake OAuth2 Token server started at %s:%d/o/oauth2/token...' %
+ (host, server.server_port))
+ print ('Sync XMPP server started at %s:%d...' %
+ (host, server.xmpp_port))
server_data['port'] = server.server_port
server_data['xmpp_port'] = server.xmpp_port
return server
« no previous file with comments | « sync/tools/testserver/chromiumsync.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698