diff options
| author | Yusuke Sakurai <kerokerokerop@gmail.com> | 2019-02-19 08:32:31 +0900 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2019-02-18 18:32:31 -0500 |
| commit | bdeb6c43afceab913cb02f00e74ebe43377c2fff (patch) | |
| tree | 1110965322df504a689ea17e54386546ea244733 /http/server_test.ts | |
| parent | 954fe83f62770257ea516396feb31ba961bc0967 (diff) | |
fix: url match logic of http server (denoland/deno_std#199)
Original: https://github.com/denoland/deno_std/commit/da188a7d30cbf71317b46015ee63a06437c09aeb
Diffstat (limited to 'http/server_test.ts')
| -rw-r--r-- | http/server_test.ts | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/http/server_test.ts b/http/server_test.ts index f8aca487c..4f22e4a06 100644 --- a/http/server_test.ts +++ b/http/server_test.ts @@ -6,10 +6,11 @@ // https://github.com/golang/go/blob/master/src/net/http/responsewrite_test.go import { Buffer, copy, Reader } from "deno"; -import { assert, assertEqual, test } from "../testing/mod.ts"; +import { assert, assertEqual, runTests, test } from "../testing/mod.ts"; import { createResponder, createServer, + findLongestAndNearestMatch, readRequest, readResponse, ServerResponse, @@ -102,6 +103,49 @@ test(async function httpReadRequestChunkedBody() { assert.equal(dest.toString(), "deno.land"); }); +test(function httpMatchNearest() { + assert.equal( + findLongestAndNearestMatch("/foo", ["/foo", "/bar", "/f"]).index, + 0 + ); + assert.equal( + findLongestAndNearestMatch("/foo", ["/foo", "/foo/bar"]).index, + 0 + ); + assert.equal( + findLongestAndNearestMatch("/foo/bar", [ + "/", + "/foo", + "/hoo", + "/hoo/foo/bar", + "/foo/bar" + ]).index, + 4 + ); + assert.equal( + findLongestAndNearestMatch("/foo/bar/foo", ["/foo", "/foo/bar", "/bar/foo"]) + .index, + 1 + ); + assert.equal( + findLongestAndNearestMatch("/foo", ["/", "/hoo", "/hoo/foo"]).index, + 0 + ); + assert.equal( + findLongestAndNearestMatch("/deno/land", [/d(.+?)o/, /d(.+?)d/]).index, + 1 + ); + assert.equal(findLongestAndNearestMatch("/foo", ["/", "/a/foo"]).index, 0); + assert.equal( + findLongestAndNearestMatch("/foo", [/\/foo/, /\/bar\/foo/]).index, + 0 + ); + assert.equal( + findLongestAndNearestMatch("/foo", [/\/a\/foo/, /\/foo/]).index, + 1 + ); +}); + test(async function httpServer() { const server = createServer(); server.handle("/index", async (req, res) => { |
