#!/bin/bash
#
# Copyright (C) 2013 Intel Corporation
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of works must retain the original copyright notice, this list
#   of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the original copyright notice,
#   this list of conditions and the following disclaimer in the documentation
#   and/or other materials provided with the distribution.
# * Neither the name of Intel Corporation nor the names of its contributors
#   may be used to endorse or promote products derived from this work without
#   specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Authors:
#        Yue, jianhui <jianhuix.a.yue@intel.com>

path=$(dirname $(dirname $0))
source $path/scripts/xwalk_common.sh

function func_install()
{
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%%.wgt}
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    pkgcmd -i -t wgt -q -p $PACKAGENAME
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -ge 1 ]; then
      echo "The widget is installed successfully"
      return 0
    else
      echo "The installation is failed"
      return 1
    fi
}

function func_launch()
{
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%%.wgt}
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    find_app $APP_NAME
    launch_app $APP_NAME
    find_appid $APP_NAME
    pkgnum=`echo "$appids"|wc -w`
    if [ $pkgnum -ge 1 ]; then
      echo "The widget is launched successfully"
      return 0
    else
      echo "The widget is not launched"
      return 1
    fi
}

function func_launch()
{
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%%.wgt}
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    find_app $APP_NAME
    launch_app $APP_NAME
    App_Status=`app_launcher -s $appids | grep "not running"`
    if [ -z $App_Status ];then
      echo "The widget is launched successfully"
      return 0
    else
      echo "The widget is not launched"
      return 1
    fi
}

function func_install_changename()
{
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%%.wgt}
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    if [ "$APP_NAME" = "test-widget-testing" ];then
        APP_NAME="test-widget"
    elif [ "$APP_NAME" = "widget-version-1" -o "$APP_NAME" = "widget-version-1-1" -o "$APP_NAME" = "widget-version-1-2" ];then
        APP_NAME="widget-version"
    elif [ "$APP_NAME" = "widget-version-2" -o "$APP_NAME" = "widget-version-2-1" ];then
        APP_NAME="widget-version2"
    elif [ "$APP_NAME" = "widget-version-3" -o "$APP_NAME" = "widget-version-3-1" ];then
        APP_NAME="widget-version3"
    elif [ "$APP_NAME" = "WIdgetIDAppID-same1" -o "$APP_NAME" = "WIdgetIDAppID-same2" -o "$APP_NAME" = "WIdgetIDAppID-different" ];then
        APP_NAME="WIdgetIDAppID"
    fi
    pkgcmd -i -t wgt -q -p $PACKAGENAME
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -ge 1 ]; then
      echo "The widget is installed successfully"
      return 0
    else
      echo "The installation is failed"
      return 1
    fi
}

function func_uninstall_changename()
{
    PACKAGENAME="$path/$1"
    p_name=$1
    APP_NAME=${p_name%%.wgt}
    if [ $# != 1 ];then
      echo "Need to add the parameter"
      return 1
    fi
    if [ "$APP_NAME" = "test-widget-testing" ];then
        APP_NAME="test-widget"
    elif [ "$APP_NAME" = "widget-version-1" -o "$APP_NAME" = "widget-version-1-1" -o "$APP_NAME" = "widget-version-1-2" ];then
        APP_NAME="widget-version"
    elif [ "$APP_NAME" = "widget-version-2" -o "$APP_NAME" = "widget-version-2-1" ];then
        APP_NAME="widget-version2"
    elif [ "$APP_NAME" = "widget-version-3" -o "$APP_NAME" = "widget-version-3-1" ];then
        APP_NAME="widget-version3"
    elif [ "$APP_NAME" = "WIdgetIDAppID-same1" -o "$APP_NAME" = "WIdgetIDAppID-same2" -o "$APP_NAME" = "WIdgetIDAppID-different" ];then
        APP_NAME="WIdgetIDAppID"
    fi
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The widget is not installed"
      install_app $PACKAGENAME
      find_app $APP_NAME
      pkgnum=`echo "$pkgids"|wc -w`
      if [ $pkgnum -lt 1 ]; then
        echo "The installation is failed"
        return 1
      fi
    fi
    find_app $APP_NAME
    uninstall_app $APP_NAME
    find_app $APP_NAME
    pkgnum=`echo "$pkgids"|wc -w`
    if [ $pkgnum -lt 1 ]; then
      echo "The widget is uninstalled successfully"
      return 0
    else
      echo "uninstall widget failed"
      return 1
    fi
}
