#!/bin/bash
#
# Copyright 2015 Google Inc. All Rights Reserved.
#

. ./wvtest/wvtest.sh

HTTP_BOUNCER=./http_bouncer.py
PORT="1337"
URL="http://example.com"

# command substition strips off trailing newlines, so we add a one-character
# sentinel to the command's output
SENTINEL="X"

function run_http_bouncer() {
  $HTTP_BOUNCER -u $URL -p $PORT &
  pid=$!
  trap 'kill $pid' EXIT
}

function wait_for_socket() {
  i=0
  retries=100
  while ! nc -z localhost $PORT && [ $i -lt $retries ] ; do sleep 0.1; i=$(expr $i + 1); done
}

WVSTART "http_bouncer test"

# fail with no arguments
WVFAIL $HTTP_BOUNCER
# fail with extra arguments
WVFAIL $HTTP_BOUNCER -u $URL -p $PORT --EXTRA_ARGUMENT
# fail with invalid port
WVFAIL $HTTP_BOUNCER -p $URL -u $PORT

run_http_bouncer
wait_for_socket

redirect0=$(printf "< HTTP/1.0 302 Found\r\n< Location: $URL\r")
redirect1=$(printf "< HTTP/1.1 302 Found\r\n< Location: $URL\r")

WVPASSEQ "$(curl -0vH 'Host: google.com' "localhost:$PORT" 2>&1 |\
  egrep '< HTTP|< Location')" "$redirect0"

WVPASSEQ "$(curl -vH 'Host: google.com' "localhost:$PORT/path?arg" 2>&1 |\
  egrep '< HTTP|< Location')" "$redirect1"

WVPASSEQ "$(curl -0vH '' "localhost:$PORT" 2>&1 |\
  egrep '< HTTP|< Location')" "$redirect0"

# Make sure we can download a CRL even through the bouncer.
# Some Internet Explorer versions will refuse to connect if we can't.
WVPASS curl -H 'Host: pki.google.com' 'http://localhost:1337/GIAG2.crl' |\
  openssl crl -inform DER
