#!/bin/bash
# libreoffice_test.sh - 完整的功能测试脚本

TEST_DIR="/tmp/libreoffice_test"
mkdir -p "$TEST_DIR"

echo "=== LibreOffice 安装验证测试 ==="

# 1. 基础检查
echo "1. 基础环境检查:"
echo "   - LibreOffice路径: $(which soffice 2>/dev/null || echo '未找到')"
echo "   - 版本信息: $(soffice --version 2>/dev/null || echo '获取失败')"

# 2. 文件转换测试
echo "2. 文件转换功能测试:"
cat > "$TEST_DIR/test_input.txt" << EOF
LibreOffice 功能测试文档
创建时间: $(date)
测试内容: 这是一个功能验证测试
EOF

# 测试多种格式转换
for format in pdf odt docx html; do
    if soffice --headless --convert-to $format --outdir "$TEST_DIR" "$TEST_DIR/test_input.txt" 2>/dev/null; then
        if [[ -f "$TEST_DIR/test_input.$format" ]]; then
            echo "   ✓ $format 转换成功 ($(stat -c%s "$TEST_DIR/test_input.$format") 字节)"
        else
            echo "   ✗ $format 转换失败"
        fi
    else
        echo "   ✗ $format 转换命令执行失败"
    fi
done

# 3. 服务模式测试
echo "3. 服务模式测试:"
# 启动LibreOffice服务模式
timeout 5s soffice --headless --nologo --nofirststartwizard --norestore --accept="socket,host=localhost,port=2002;urp;" &
SERVER_PID=$!
sleep 2

if ps -p $SERVER_PID > /dev/null; then
    echo "   ✓ 服务模式启动成功"
    kill $SERVER_PID 2>/dev/null
else
    echo "   ✗ 服务模式启动失败"
fi

# 4. 清理测试文件
rm -rf "$TEST_DIR"
echo "4. 测试完成!"

