# coding=utf-8
from flask import request, make_response
from app import app


@app.route("/default-headers")
def default_headers():
    assert (
        "hurl" in request.headers["User-Agent"]
        or "curl" in request.headers["User-Agent"]
    )
    assert request.headers["Host"] == "localhost:8000"
    assert "Content-Length" not in request.headers
    return ""


@app.route("/custom-headers")
def custom_headers():
    # TODO: what is expected when request header has multiple values ?
    assert request.headers["Fruit"] == "Raspberry,Apple,Banana,Grape"
    assert request.headers["Color"] == "Green"
    return ""


@app.route("/custom-headers-utf8")
def custom_headers_utf8():
    assert len(request.headers["Beverage"]) == 5
    assert request.headers["Beverage"] == "\x63\x61\x66\xc3\xa9"
    return ""


@app.route("/custom-headers-value")
def custom_headers_value():
    assert request.headers["Id"] == "#123"
    return ""


@app.route("/custom-headers-quote")
def custom_headers_quotes():
    assert request.headers["Header1"] == "'"
    return ""


@app.route("/response-headers")
def response_headers():
    resp = make_response()
    # resp.headers['Beverage'] = '\x63\x61\x66\xc3\xa9'
    resp.headers["Beverage"] = "cafe"
    return resp