diff options
| author | 2021-09-19 14:11:46 -0500 | |
|---|---|---|
| committer | 2021-09-19 14:11:46 -0500 | |
| commit | 3e72c69de9df465aacab7bed59f627327e140c0f (patch) | |
| tree | d5e87085d1f1ea6b9ef662fc4d3a06c65186265f /test | |
| parent | Merge pull request #44 from subsetpark/streams (diff) | |
Add HTTP module.
Diffstat (limited to 'test')
| -rw-r--r-- | test/suite0000.janet (renamed from test/suite0.janet) | 0 | ||||
| -rw-r--r-- | test/suite0001.janet (renamed from test/suite1.janet) | 0 | ||||
| -rw-r--r-- | test/suite0002.janet (renamed from test/suite2.janet) | 0 | ||||
| -rw-r--r-- | test/suite0003.janet (renamed from test/suite3.janet) | 0 | ||||
| -rw-r--r-- | test/suite0004.janet (renamed from test/suite4.janet) | 0 | ||||
| -rw-r--r-- | test/suite0005.janet (renamed from test/suite5.janet) | 0 | ||||
| -rw-r--r-- | test/suite0006.janet (renamed from test/suite6.janet) | 0 | ||||
| -rw-r--r-- | test/suite0007.janet (renamed from test/suite7.janet) | 0 | ||||
| -rw-r--r-- | test/suite0008.janet (renamed from test/suite8.janet) | 0 | ||||
| -rw-r--r-- | test/suite0009.janet (renamed from test/suite9.janet) | 0 | ||||
| -rw-r--r-- | test/suite0010.janet (renamed from test/suite10.janet) | 0 | ||||
| -rw-r--r-- | test/suite0011.janet (renamed from test/suite11.janet) | 0 | ||||
| -rw-r--r-- | test/suite0012.janet | 49 |
13 files changed, 49 insertions, 0 deletions
diff --git a/test/suite0.janet b/test/suite0000.janet index b2461ee..b2461ee 100644 --- a/test/suite0.janet +++ b/test/suite0000.janet diff --git a/test/suite1.janet b/test/suite0001.janet index c8f4a1f..c8f4a1f 100644 --- a/test/suite1.janet +++ b/test/suite0001.janet diff --git a/test/suite2.janet b/test/suite0002.janet index d978a66..d978a66 100644 --- a/test/suite2.janet +++ b/test/suite0002.janet diff --git a/test/suite3.janet b/test/suite0003.janet index f4a2dce..f4a2dce 100644 --- a/test/suite3.janet +++ b/test/suite0003.janet diff --git a/test/suite4.janet b/test/suite0004.janet index f76fe3d..f76fe3d 100644 --- a/test/suite4.janet +++ b/test/suite0004.janet diff --git a/test/suite5.janet b/test/suite0005.janet index d0d0b75..d0d0b75 100644 --- a/test/suite5.janet +++ b/test/suite0005.janet diff --git a/test/suite6.janet b/test/suite0006.janet index 02a82c2..02a82c2 100644 --- a/test/suite6.janet +++ b/test/suite0006.janet diff --git a/test/suite7.janet b/test/suite0007.janet index 86c8d9c..86c8d9c 100644 --- a/test/suite7.janet +++ b/test/suite0007.janet diff --git a/test/suite8.janet b/test/suite0008.janet index 2cdb843..2cdb843 100644 --- a/test/suite8.janet +++ b/test/suite0008.janet diff --git a/test/suite9.janet b/test/suite0009.janet index b04fbf7..b04fbf7 100644 --- a/test/suite9.janet +++ b/test/suite0009.janet diff --git a/test/suite10.janet b/test/suite0010.janet index 05e58d9..05e58d9 100644 --- a/test/suite10.janet +++ b/test/suite0010.janet diff --git a/test/suite11.janet b/test/suite0011.janet index 96a71a5..96a71a5 100644 --- a/test/suite11.janet +++ b/test/suite0011.janet diff --git a/test/suite0012.janet b/test/suite0012.janet new file mode 100644 index 0000000..d028c66 --- /dev/null +++ b/test/suite0012.janet @@ -0,0 +1,49 @@ +(use ../spork/test) +(import ../spork/http :as http) + +(start-suite 12) + +(defn- test-http-item + [x + expected-method + expected-path + expected-status + expected-headers] + (assert (not= :error x) "invalid http") + (when (not= :error x) + (assert (= expected-path (in x :path)) + (string "bad path, expected " expected-path ", got " (in x :path))) + (assert (= expected-headers (freeze (in x :headers))) + (string/format "bad headers: %.99p" (freeze (in x :headers)))) + (assert (= expected-method (in x :method)) + (string "bad status, expected " expected-status ", got " (in x :status))) + (assert (= expected-method (in x :method)) + (string "bad method, expected " expected-method ", got " (in x :method))))) + +(defn- test-http-parse + [parser + payload + expected-method + expected-path + expected-status + expected-headers] + (def x (parser nil payload)) + (test-http-item x expected-method expected-path expected-status expected-headers)) + +(test-http-parse http/read-request "GET / HTTP/1.0\r\n\r\n" "GET" "/" nil {}) +(test-http-parse http/read-request "GET /abc.janet HTTP/1.0\r\n\r\n" "GET" "/abc.janet" nil {}) +(test-http-parse http/read-request "GET /abc.janet HTTP/1.0\r\na:b\r\n\r\n" "GET" "/abc.janet" nil {"a" "b"}) +(test-http-parse http/read-request "POST /abc.janet HTTP/1.0\r\na:b\r\n\r\nextraextra" "POST" "/abc.janet" nil {"a" "b"}) +(test-http-parse http/read-response "HTTP/1.0 200 OK\r\na:b\r\n\r\nextraextra" nil nil 200 {"a" "b"}) + +(defn simple-server + [req] + (case (in req :method) + "GET" {:status 200 :body (in req :path)} + "POST" {:status 200 :body (http/read-body req)})) + +(with [server (http/server simple-server "127.0.0.1" 9816)] + (test-http-item (http/request "GET" "http://127.0.0.1:9816") nil nil 200 + {"content-length" "1"})) + +(end-suite) |
