#!/bin/sh
set -e

cat <<EOF > "/etc/nginx/sites-enabled/default"
server {
  listen 80 default_server;

  location /t {
    content_by_lua_block {
      local utils = require "resty.core.utils"

      local strings = {
        "Header_Name",
        "_Header_Name_",
        "Header__Name",
        "Header-Name",
        "Hello world",
      }

      for i = 1, #strings do
        ngx.say(utils.str_replace_char(strings[i], "_", "-"))
      end
    }
  }
}
EOF

exp="Header-Name
-Header-Name-
Header--Name
Header-Name
Hello world
response_code: 200"

cleanup() {
  ex=$?
  if [ "${ex}" -eq 0 ]; then
    exit 0
  fi
  if [ x"`uname -m`" = xppcle ] || [ x"`uname -m`" = xppc64le ]; then
    # When the test fails on on ppc64el architecture,
    # skip the result, luajit2 library is broken on ppc64el.
    exit 77
  fi
  exit "${ex}"
}
trap "cleanup" EXIT TERM INT

nginx -t || :
invoke-rc.d nginx restart
out=`curl --fail -w "response_code: %{http_code}\n" http://127.0.0.1/t`

if [ x"${out}" != x"${exp}" ]; then
  echo "output:"
  echo "====================="
  echo "${out}"
  echo "====================="
  echo "expected output:"
  echo "====================="
  echo "${exp}"
  echo "====================="
  exit 1
fi
exit 0
