servo/tests/wpt/web-platform-tests/cookies/http-state/resources/cookie-setter.py

54 lines
2 KiB
Python

from os import path;
SETUP_FILE_TEMPLATE = "{}-test"
EXPECTATION_FILE_TEMPLATE = "{}-expected"
EXPECTATION_HTML_SCAFFOLD = "iframe-expectation-doc.html.py-str"
DEBUGGING_HTML_SCAFFOLD = "debugging-single-test.html.py-str"
DEFAULT_RESOURCE_DIR = path.join("cookies", "http-state", "resources")
DEFAULT_TEST_DIR = "test-files"
def dump_file(directory, filename):
return open(path.join(directory, filename), "r").read()
class CookieTestResponse(object):
def __init__(self, file, root):
super(CookieTestResponse, self).__init__()
self.__test_file = SETUP_FILE_TEMPLATE.format(file)
self.__expectation_file = EXPECTATION_FILE_TEMPLATE.format(file)
self.__resources_dir = path.join(root, DEFAULT_RESOURCE_DIR)
self.__test_files_dir = path.join(self.__resources_dir, DEFAULT_TEST_DIR)
def cookie_setting_header(self):
return dump_file(self.__test_files_dir, self.__test_file)
def body_with_expectation(self):
html_frame = dump_file(self.__resources_dir, EXPECTATION_HTML_SCAFFOLD)
expected_data = dump_file(self.__test_files_dir, self.__expectation_file);
return html_frame.format(**{'data' : expected_data})
def main(request, response):
if "debug" in request.GET:
response.writer.write_status(200)
response.writer.end_headers()
html_frame = dump_file(path.join(request.doc_root, DEFAULT_RESOURCE_DIR),
DEBUGGING_HTML_SCAFFOLD)
test_file = html_frame % (request.GET['debug'])
response.writer.write_content(test_file)
return;
if not "file" in request.GET:
response.writer.write_status(404)
response.writer.end_headers()
response.writer.write_content("The 'file' parameter is missing!")
return;
cookie_response = CookieTestResponse(request.GET['file'], request.doc_root)
response.writer.write_status(200)
response.writer.write(cookie_response.cookie_setting_header())
response.writer.end_headers()
response.writer.write_content(cookie_response.body_with_expectation())