| import os |
| import glob |
| |
| |
| def main(request, response): |
| host_piece = request.url_parts.hostname.split(".")[0] |
| |
| # Default return code for manifests if found. |
| return_code = 200 |
| |
| # Reserve 'op99' for tests that should use return code 404. |
| if host_piece == "op99": |
| return_code = 404 |
| |
| # Default mime type for returned data. |
| content_type = "application/originpolicy+json" |
| |
| # op100 tests an invalid MIME type. |
| if host_piece == "op100": |
| content_type = "text/plain" |
| |
| # op98 tests that charset is ignored and the result is always processed as UTF-8. |
| if host_piece == "op98": |
| content_type = "application/originpolicy+json;charset=utf-16" |
| |
| # op97 tests that adding charset=utf-8 (and a BOM) does not break anything. |
| if host_piece == "op97": |
| content_type = "application/originpolicy+json;charset=utf-8" |
| |
| filepath_pattern = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath( |
| __file__)), "../origin-policy/policies/", "{} *.json".format(host_piece))) |
| |
| matches = glob.glob(filepath_pattern) |
| |
| if len(matches) != 1: |
| return 404, [], '{} origin policies found at a path matching "{}"'.format(len(matches), filepath_pattern) |
| |
| with open(matches[0], 'rb') as f: |
| data = f.read() |
| return return_code, [('Content-Type', content_type)], data |