#!/bin/sh

#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#    
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.

echo "Testing..."
here=`echo "import os; print os.path.realpath('$0')" | python`; here=`dirname $here`
curl_prefix=`cat $here/../../modules/http/curl.prefix`

# Setup
./start
sleep 2

# Test HTTP GET
$curl_prefix/bin/curl http://localhost:8090/ 2>/dev/null >tmp/index.html
diff tmp/index.html htdocs/index.html
rc=$?

# Test Catalog
if [ "$rc" = "0" ]; then
    $curl_prefix/bin/curl http://localhost:8090/references/Store/catalog -X POST -H "Content-type: application/json-rpc" --data @../store-cpp/htdocs/test/items-request.txt >tmp/items-result.txt 2>/dev/null
    diff tmp/items-result.txt ../store-cpp/htdocs/test/items-result.txt
    rc=$?
fi

# Test Shopping Cart
if [ "$rc" = "0" ]; then
    $curl_prefix/bin/curl http://localhost:8090/references/Store/shoppingCart -X POST -H "Content-type: application/atom+xml" --data @../store-cpp/htdocs/test/shopping-cart-entry.xml 2>/dev/null
    rc=$?
fi
if [ "$rc" = "0" ]; then
    $curl_prefix/bin/curl http://localhost:8090/references/Store/shoppingCart >tmp/shopping-cart-feed.xml 2>/dev/null
    grep "3.55" tmp/shopping-cart-feed.xml >/dev/null
    rc=$?
fi

# Cleanup
./stop
sleep 2

if [ "$rc" = "0" ]; then
    echo "OK"
fi
exit $rc
