Index: tests/standalone/io/http_cookie_test.dart |
diff --git a/tests/standalone/io/http_cookie_test.dart b/tests/standalone/io/http_cookie_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..edc0bfd89a17404594b3053cbc59285ba832311d |
--- /dev/null |
+++ b/tests/standalone/io/http_cookie_test.dart |
@@ -0,0 +1,66 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+import "package:expect/expect.dart"; |
+import "dart:async"; |
+import "dart:io"; |
+ |
+void testCookies() { |
+ var cookies = [{'abc': 'def'}, |
+ {'ABC': 'DEF'}, |
+ {'Abc': 'Def'}, |
+ {'Abc': 'Def', 'SID': 'sffFSDF4FsdfF56765'}]; |
+ |
+ HttpServer.bind("127.0.0.1", 0).then((server) { |
+ server.listen((HttpRequest request) { |
+ // Collect the cookies in a map. |
+ var cookiesMap = {}; |
+ request.cookies.forEach((c) => cookiesMap[c.name] = c.value); |
+ int index = int.parse(request.uri.path.substring(1)); |
+ Expect.mapEquals(cookies[index], cookiesMap); |
+ // Return the same cookies to the client. |
+ cookiesMap.forEach((k, v) { |
+ request.response.cookies.add(new Cookie(k, v)); |
+ }); |
+ request.response.close(); |
+ }); |
+ |
+ int count = 0; |
+ HttpClient client = new HttpClient(); |
+ for (int i = 0; i < cookies.length; i++) { |
+ client.get("127.0.0.1", server.port, "/$i") |
+ .then((request) { |
+ // Send the cookies to the server. |
+ cookies[i].forEach((k, v) { |
+ request.cookies.add(new Cookie(k, v)); |
+ }); |
+ return request.close(); |
+ }) |
+ .then((response) { |
+ // Expect the same cookies back. |
+ var cookiesMap = {}; |
+ response.cookies.forEach((c) => cookiesMap[c.name] = c.value); |
+ Expect.mapEquals(cookies[i], cookiesMap); |
+ response.listen( |
+ (d) {}, |
+ onDone: () { |
+ if (++count == cookies.length) { |
+ client.close(); |
+ server.close(); |
+ } |
+ }); |
+ }) |
+ .catchError((e) { |
+ String msg = "Unexpected error $e"; |
+ var trace = getAttachedStackTrace(e); |
+ if (trace != null) msg += "\nStackTrace: $trace"; |
+ Expect.fail(msg); |
+ }); |
+ } |
+ }); |
+} |
+ |
+void main() { |
+ testCookies(); |
+} |