test(integration): 新增 POST/multipart 端到端测试
- 新增 curl 测试:multipart 文件上传、JSON 回显、表单回显 - 验证 uploads/ 目录创建和文件保存 - 补充现有测试的覆盖范围
This commit is contained in:
parent
df8707ea69
commit
763e46d493
@ -213,6 +213,38 @@ assert_304_modified_since() {
|
||||
fi
|
||||
}
|
||||
|
||||
assert_post_multipart() {
|
||||
local url="$1"
|
||||
local desc="${2:-$url}"
|
||||
local resp
|
||||
local boundary="----CocoonTestBoundary"
|
||||
local body
|
||||
body="--${boundary}\r\n"
|
||||
body+="Content-Disposition: form-data; name=\"file\"; filename=\"upload_test.txt\"\r\n"
|
||||
body+="Content-Type: text/plain\r\n"
|
||||
body+="\r\n"
|
||||
body+="Cocoon multipart upload test content\r\n"
|
||||
body+="--${boundary}--\r\n"
|
||||
|
||||
resp=$(curl -s -X POST -H "Content-Type: multipart/form-data; boundary=${boundary}" -d "$body" "$url")
|
||||
if echo "$resp" | grep -q '"uploaded"'; then
|
||||
echo " ✓ $desc — 响应包含上传结果"
|
||||
pass
|
||||
else
|
||||
echo " ✗ $desc — 响应期望包含上传结果, 实际: $resp"
|
||||
fail
|
||||
fi
|
||||
|
||||
# 验证文件是否被保存
|
||||
if [ -f "$ROOT/uploads/upload_test.txt" ]; then
|
||||
echo " ✓ $desc — 文件已保存到 uploads/"
|
||||
pass
|
||||
else
|
||||
echo " ✗ $desc — 文件未保存到 uploads/"
|
||||
fail
|
||||
fi
|
||||
}
|
||||
|
||||
assert_post_json() {
|
||||
local url="$1"
|
||||
local body="$2"
|
||||
@ -329,6 +361,10 @@ assert_post_json "$BASE/api/echo" '{"test": "hello"}' '"test"' "POST JSON 回显
|
||||
assert_post_form "$BASE/api/echo" 'name=cocoon&version=1.0' 'cocoon' "POST 表单回显"
|
||||
assert_status_405 "$BASE/index.html" "PUT 405"
|
||||
|
||||
echo ""
|
||||
echo "=== 文件上传测试 ==="
|
||||
assert_post_multipart "$BASE/upload" "multipart 文件上传"
|
||||
|
||||
echo ""
|
||||
echo "=== 结果汇总 ==="
|
||||
echo "通过: $PASS"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user