#!/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 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
