#!/bin/bash
# 生活百事通网站自动化测试脚本
# 测试网址：https://ebankofdata.online

echo "=========================================="
echo "生活百事通网站自动化测试"
echo "网址：https://ebankofdata.online"
echo "测试时间：$(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="
echo ""

TEST_RESULTS=()
PASS_COUNT=0
FAIL_COUNT=0

# 测试函数
run_test() {
    local test_name="$1"
    local test_command="$2"
    local expected="$3"
    
    echo "🧪 测试：$test_name"
    result=$(eval "$test_command" 2>&1)
    
    if [[ "$result" == *"$expected"* ]]; then
        echo "   ✅ 通过"
        TEST_RESULTS+=("✅ $test_name")
        ((PASS_COUNT++))
    else
        echo "   ❌ 失败"
        echo "   结果：$result"
        TEST_RESULTS+=("❌ $test_name")
        ((FAIL_COUNT++))
    fi
    echo ""
}

# 关闭之前的浏览器会话
agent-browser close 2>/dev/null

echo "=========================================="
echo "测试 1: 主页访问测试"
echo "=========================================="
agent-browser open https://ebankofdata.online
sleep 2
run_test "主页标题检查" "agent-browser eval 'document.title'" "生活百事通"
run_test "主页 URL 检查" "agent-browser get url" "ebankofdata.online"

echo "=========================================="
echo "测试 2: 血压记录系统测试"
echo "=========================================="
agent-browser open https://ebankofdata.online/blood/
sleep 2
run_test "血压系统标题" "agent-browser eval 'document.title'" "血压"
run_test "血压系统新增按钮" "agent-browser snapshot -i" "新增血压记录"

echo "=========================================="
echo "测试 3: draw.io 画图工具测试"
echo "=========================================="
agent-browser open https://ebankofdata.online/draw/
sleep 2
url=$(agent-browser get url 2>&1)
if [[ "$url" == *"login"* ]] || [[ "$url" == *"draw"* ]]; then
    echo "   ✅ 通过 (需要登录或已访问)"
    TEST_RESULTS+=("✅ draw.io 访问测试")
    ((PASS_COUNT++))
else
    echo "   ❌ 失败"
    TEST_RESULTS+=("❌ draw.io 访问测试")
    ((FAIL_COUNT++))
fi
echo ""

echo "=========================================="
echo "测试 4: 文件浏览服务测试"
echo "=========================================="
agent-browser open https://ebankofdata.online/files/
sleep 2
url=$(agent-browser get url 2>&1)
if [[ "$url" == *"login"* ]] || [[ "$url" == *"files"* ]]; then
    echo "   ✅ 通过 (需要登录或已访问)"
    TEST_RESULTS+=("✅ 文件浏览服务测试")
    ((PASS_COUNT++))
else
    echo "   ❌ 失败"
    TEST_RESULTS+=("❌ 文件浏览服务测试")
    ((FAIL_COUNT++))
fi
echo ""

echo "=========================================="
echo "测试 5: 待办系统测试"
echo "=========================================="
agent-browser open https://ebankofdata.online/todo/
sleep 2
run_test "待办系统标题" "agent-browser eval 'document.title'" "待办"
run_test "待办系统添加框" "agent-browser snapshot -i" "添加新任务"

echo "=========================================="
echo "测试 6: 登录页面测试"
echo "=========================================="
agent-browser open https://ebankofdata.online/login
sleep 2
run_test "登录页面标题" "agent-browser eval 'document.title'" "认证"
run_test "登录页面用户名框" "agent-browser snapshot -i" "用户名"
run_test "登录页面密码框" "agent-browser snapshot -i" "密码"

echo "=========================================="
echo "测试 7: 页面截图测试"
echo "=========================================="
agent-browser open https://ebankofdata.online
sleep 2
agent-browser screenshot /tmp/ebank_homepage.png 2>&1
if [ -f /tmp/ebank_homepage.png ]; then
    size=$(ls -lh /tmp/ebank_homepage.png | awk '{print $5}')
    echo "   ✅ 截图成功 ($size)"
    TEST_RESULTS+=("✅ 页面截图测试")
    ((PASS_COUNT++))
else
    echo "   ❌ 截图失败"
    TEST_RESULTS+=("❌ 页面截图测试")
    ((FAIL_COUNT++))
fi
echo ""

# 关闭浏览器
agent-browser close

echo "=========================================="
echo "测试结果汇总"
echo "=========================================="
echo ""
for result in "${TEST_RESULTS[@]}"; do
    echo "  $result"
done
echo ""
echo "总计：${#TEST_RESULTS[@]} 个测试"
echo "通过：$PASS_COUNT"
echo "失败：$FAIL_COUNT"
echo ""

if [ $FAIL_COUNT -eq 0 ]; then
    echo "🎉 所有测试通过！"
    exit 0
else
    echo "⚠️  有 $FAIL_COUNT 个测试失败"
    exit 1
fi
