diff --git a/collects/tests/web-server/pr/bsl.rkt b/collects/tests/web-server/pr/bsl.rkt new file mode 100644 index 0000000000..05eaee87a2 --- /dev/null +++ b/collects/tests/web-server/pr/bsl.rkt @@ -0,0 +1,29 @@ +#lang racket +(require net/url + rackunit + tests/eli-tester + htdp/bsl/reader + web-server/servlet/web) +(require/expose web-server/servlet/web + (embed-ids)) +(require/expose htdp/bsl/reader + (wrap-reader)) + +(define base-url + (string->url + "http://localhost:8000/servlets/standalone.rkt")) +(define a-k-url + (string->url + "http://localhost:8000/servlets/standalone.rkt;((%22k%22%20.%20%22(1%201%2033620206)%22))")) +(define k-info + '(1 1 33620206)) + +(define (can-encode?) + (test + (continuation-url? a-k-url) => k-info + (embed-ids k-info base-url) => (url->string a-k-url))) + +(test + (can-encode?) + ((wrap-reader can-encode? empty))) + \ No newline at end of file diff --git a/collects/web-server/servlet/web.rkt b/collects/web-server/servlet/web.rkt index 355929d159..da1744e5e1 100644 --- a/collects/web-server/servlet/web.rkt +++ b/collects/web-server/servlet/web.rkt @@ -23,11 +23,12 @@ ;; determine if this url encodes a continuation and extract the instance id and ;; continuation id. (define (continuation-url? a-url) - (cond - [(extract-param a-url "k") - => read/string] - [else - #f])) + (parameterize ([read-accept-dot #t]) + (cond + [(extract-param a-url "k") + => read/string] + [else + #f]))) (provide/contract [continuation-url? (url? . -> . (or/c false/c (list/c number? number? number?)))])