Index: chrome/browser/policy/test/policy_testserver.py |
diff --git a/chrome/browser/policy/test/policy_testserver.py b/chrome/browser/policy/test/policy_testserver.py |
index c7f933dd082ab81562dce20ec1e5048011174601..18f2246f263878ade3b408eb88b1a3a92198823c 100644 |
--- a/chrome/browser/policy/test/policy_testserver.py |
+++ b/chrome/browser/policy/test/policy_testserver.py |
@@ -279,8 +279,9 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): |
length = int(self.headers.getheader('content-length')) |
rmsg.ParseFromString(self.rfile.read(length)) |
- logging.debug('gaia auth token -> ' + |
- self.headers.getheader('Authorization', '')) |
+ gaia_header = self.headers.getheader('Authorization', '') |
+ |
+ logging.debug('gaia auth token -> ' + gaia_header) |
logging.debug('oauth token -> ' + str(self.GetUniqueParam('oauth_token'))) |
logging.debug('deviceid -> ' + str(self.GetUniqueParam('deviceid'))) |
self.DumpMessage('Request', rmsg) |
@@ -290,7 +291,8 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): |
# device_management_backend.proto. |
if (self.GetUniqueParam('devicetype') != '2' or |
self.GetUniqueParam('apptype') != 'Chrome' or |
- len(self.GetUniqueParam('deviceid')) >= 64): |
+ (self.GetUniqueParam('deviceid') is not None and |
+ len(self.GetUniqueParam('deviceid')) >= 64)): |
return (400, 'Invalid request parameter') |
if request_type == 'register': |
response = self.ProcessRegister(rmsg.register_request) |
@@ -308,6 +310,11 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): |
elif request_type == 'status_upload': |
response = self.ProcessStatusUploadRequest( |
rmsg.device_status_report_request, rmsg.session_status_report_request) |
+ elif request_type == 'check_android_management_request': |
+ gaia_token = gaia_header[len('GoogleLogin auth='):] |
+ response = self.ProcessCheckAndroidManagementRequest( |
+ rmsg.check_android_management_request, |
+ gaia_token) |
else: |
return (400, 'Invalid request parameter') |
@@ -586,6 +593,24 @@ class PolicyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): |
return (200, response) |
+ def ProcessCheckAndroidManagementRequest(self, msg, gaia_token): |
+ """Handles a check android management request. |
+ |
+ Returns: |
+ A tuple of HTTP status code and response data to send to the client. |
+ """ |
+ check_android_management_response = dm.CheckAndroidManagementResponse() |
+ |
+ response = dm.DeviceManagementResponse() |
+ response.check_android_management_response.CopyFrom( |
+ check_android_management_response) |
+ if gaia_token == 'managed-auth-token': |
+ return (409, response) |
+ elif gaia_token == 'unmanaged-auth-token': |
+ return (200, response) |
+ else: |
+ return (400, response) |
+ |
def SetProtobufMessageField(self, group_message, field, field_value): |
"""Sets a field in a protobuf message. |