Chromium Code Reviews| Index: tests/standalone/io/http_test.dart |
| diff --git a/tests/standalone/io/http_test.dart b/tests/standalone/io/http_test.dart |
| index 866d58e2e5647fe03bd447a1d4d09caa48c964fa..5b1277acf3ecc85359c1d13194157783da7046ba 100644 |
| --- a/tests/standalone/io/http_test.dart |
| +++ b/tests/standalone/io/http_test.dart |
| @@ -177,6 +177,31 @@ class TestServer extends Isolate { |
| response.outputStream.close(); |
| } |
| + void _cookie1Handler(HttpRequest request, HttpResponse response) { |
| + // No cookies passed with this request. |
| + Expect.equals(0, request.cookies.length); |
| + |
| + Cookie cookie1 = new Cookie("name1", "value1"); |
| + TimeZone utc = new TimeZone.utc(); |
| + Date date = new Date.withTimeZone(2014, Date.JAN, 5, 23, 59, 59, 0, utc); |
| + cookie1.expires = date; |
| + cookie1.domain = "www.example.com"; |
| + cookie1.httpOnly = true; |
| + response.cookies.add(cookie1); |
| + Cookie cookie2 = new Cookie("name2", "value2"); |
| + cookie2.maxAge = 100; |
| + cookie2.domain = ".example.com"; |
| + cookie2.path = "/shop"; |
| + response.cookies.add(cookie2); |
| + response.outputStream.close(); |
| + } |
| + |
| + void _cookie2Handler(HttpRequest request, HttpResponse response) { |
| + // Two cookies passed with this request. |
| + Expect.equals(2, request.cookies.length); |
| + response.outputStream.close(); |
| + } |
| + |
| void main() { |
| // Setup request handlers. |
| _requestHandlers = new Map(); |
| @@ -211,6 +236,14 @@ class TestServer extends Isolate { |
| (HttpRequest request, HttpResponse response) { |
| _contentType2Handler(request, response); |
| }; |
| + _requestHandlers["/cookie1"] = |
| + (HttpRequest request, HttpResponse response) { |
| + _cookie1Handler(request, response); |
| + }; |
| + _requestHandlers["/cookie2"] = |
| + (HttpRequest request, HttpResponse response) { |
| + _cookie2Handler(request, response); |
| + }; |
| this.port.receive((var message, SendPort replyTo) { |
| if (message.isStart) { |
| @@ -593,6 +626,50 @@ void testContentType() { |
| testServerMain.start(); |
| } |
| +void testCookies() { |
| + TestServerMain testServerMain = new TestServerMain(); |
| + testServerMain.setServerStartedHandler((int port) { |
| + int responses = 0; |
| + HttpClient httpClient = new HttpClient(); |
| + |
|
Mads Ager (google)
2012/05/23 13:31:05
Delete empty line
Søren Gjesse
2012/05/24 11:34:21
Done.
|
| + |
| + HttpClientConnection conn1 = |
| + httpClient.get("127.0.0.1", port, "/cookie1"); |
| + conn1.onResponse = (HttpClientResponse response) { |
| + Expect.equals(2, response.cookies.length); |
| + response.cookies.forEach((cookie) { |
| + if (cookie.name == "name1") { |
| + Expect.equals("value1", cookie.value); |
| + TimeZone utc = new TimeZone.utc(); |
| + Date date = |
| + new Date.withTimeZone(2014, Date.JAN, 5, 23, 59, 59, 0, utc); |
| + Expect.equals(date, cookie.expires); |
| + Expect.equals("www.example.com", cookie.domain); |
| + Expect.isTrue(cookie.httpOnly); |
| + } else if (cookie.name == "name2") { |
| + Expect.equals("value2", cookie.value); |
| + Expect.equals(100, cookie.maxAge); |
| + Expect.equals(".example.com", cookie.domain); |
| + Expect.equals("/shop", cookie.path); |
| + } else { |
| + Expect.fail("Unexpected cookie"); |
| + } |
| + }); |
| + HttpClientConnection conn2 = |
| + httpClient.get("127.0.0.1", port, "/cookie2"); |
| + conn2.onRequest = (HttpClientRequest request) { |
| + request.cookies.add(response.cookies[0]); |
| + request.cookies.add(response.cookies[1]); |
| + request.outputStream.close(); |
| + }; |
| + conn2.onResponse = (HttpClientRequest request) { |
| + httpClient.shutdown(); |
| + testServerMain.shutdown(); |
| + }; |
| + }; |
| + }); |
| + testServerMain.start(); |
| +} |
| void main() { |
| testStartStop(); |
| @@ -608,4 +685,5 @@ void main() { |
| testHost(); |
| testExpires(); |
| testContentType(); |
| + testCookies(); |
| } |