1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
discard """
matrix: "--mm:refc; --mm:arc"
joinable: false
"""
import std/[unittest, asyncdispatch]
# bug #18616
type
ClientResponse = object
status*: int
data*: string
template asyncTest*(name: string, body: untyped): untyped =
test name:
waitFor((
proc() {.async, gcsafe.} =
body
)())
suite "Test suite":
asyncTest "test1":
const PostVectors = [
(
("/test/post", "somebody0908", "text/html",
"app/type1;q=0.9,app/type2;q=0.8"),
ClientResponse(status: 200, data: "type1[text/html,somebody0908]")
),
(
("/test/post", "somebody0908", "text/html",
"app/type2;q=0.8,app/type1;q=0.9"),
ClientResponse(status: 200, data: "type1[text/html,somebody0908]")
),
(
("/test/post", "somebody09", "text/html",
"app/type2,app/type1;q=0.9"),
ClientResponse(status: 200, data: "type2[text/html,somebody09]")
),
(
("/test/post", "somebody09", "text/html", "app/type1;q=0.9,app/type2"),
ClientResponse(status: 200, data: "type2[text/html,somebody09]")
),
(
("/test/post", "somebody", "text/html", "*/*"),
ClientResponse(status: 200, data: "type1[text/html,somebody]")
),
(
("/test/post", "somebody", "text/html", ""),
ClientResponse(status: 200, data: "type1[text/html,somebody]")
),
(
("/test/post", "somebody", "text/html", "app/type2"),
ClientResponse(status: 200, data: "type2[text/html,somebody]")
),
(
("/test/post", "somebody", "text/html", "app/type3"),
ClientResponse(status: 406, data: "")
)
]
for item in PostVectors:
discard item
asyncTest "test2":
const PostVectors = [
(
"/test/post", "somebody0908", "text/html",
"app/type1;q=0.9,app/type2;q=0.8",
ClientResponse(status: 200, data: "type1[text/html,somebody0908]")
),
(
"/test/post", "somebody0908", "text/html",
"app/type2;q=0.8,app/type1;q=0.9",
ClientResponse(status: 200, data: "type1[text/html,somebody0908]")
),
(
"/test/post", "somebody09", "text/html",
"app/type2,app/type1;q=0.9",
ClientResponse(status: 200, data: "type2[text/html,somebody09]")
),
(
"/test/post", "somebody09", "text/html", "app/type1;q=0.9,app/type2",
ClientResponse(status: 200, data: "type2[text/html,somebody09]")
),
(
"/test/post", "somebody", "text/html", "*/*",
ClientResponse(status: 200, data: "type1[text/html,somebody]")
),
(
"/test/post", "somebody", "text/html", "",
ClientResponse(status: 200, data: "type1[text/html,somebody]")
),
(
"/test/post", "somebody", "text/html", "app/type2",
ClientResponse(status: 200, data: "type2[text/html,somebody]")
),
(
"/test/post", "somebody", "text/html", "app/type3",
ClientResponse(status: 406, data: "")
)
]
for item in PostVectors:
discard item
|