[tor-commits] [flashproxy/master] Add tests for parse_cookie_string.

dcf at torproject.org dcf at torproject.org
Fri Dec 28 14:13:54 UTC 2012


commit 9ab1414d6817454f411acad1d2d5c7b78a1dcf8b
Author: Alexandre Allaire <alexandre.allaire at mail.mcgill.ca>
Date:   Wed Dec 26 12:23:17 2012 -0500

    Add tests for parse_cookie_string.
    
    Add function to flashproxy-test.js to test the parse_cookie_string
    function. The tests assume the strings passed in follow the
    document.cookie format.
---
 proxy/flashproxy-test.js |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/proxy/flashproxy-test.js b/proxy/flashproxy-test.js
index 86c48d9..eb7d38d 100755
--- a/proxy/flashproxy-test.js
+++ b/proxy/flashproxy-test.js
@@ -107,6 +107,46 @@ function test_build_url()
     }
 }
 
+/* This test only checks that things work for strings
+   formatted like document.cookie. Browsers maintain
+   several properties about this string, for example
+   cookie names are unique with no trailing whitespace.
+   See http://www.ietf.org/rfc/rfc2965.txt for the grammar. */
+function test_parse_cookie_string()
+{
+    var TESTS = [
+        { cs: "",
+          expected: { } },
+        { cs: "a=b",
+          expected: { a: "b"} },
+        { cs: "a=b=c",
+          expected: { a: "b=c"} },
+        { cs: "a=b; c=d",
+          expected: { a: "b", c: "d" } },
+        { cs: "a=b ; c=d",
+          expected: { a: "b ", c: "d" } },
+        { cs: "a= b",
+          expected: {a: " b" } },
+        /* The '=' character is always present. */
+        { cs: "a=",
+          expected: { a: "" } },
+        { cs: "a=\"\"",
+          expected: { a: "\"\"" } },
+    ];
+
+    announce("test_parse_cookie_string");
+    for (var i = 0; i < TESTS.length; i++) {
+        var test = TESTS[i];
+        var actual;
+
+        actual = parse_cookie_string(test.cs);
+        if (objects_equal(actual, test.expected))
+            pass(test.cs);
+        else
+            fail(test.cs, test.expected, actual);
+    }
+}
+
 function test_parse_query_string()
 {
     var TESTS = [
@@ -266,6 +306,7 @@ function test_get_query_param_addr()
 }
 
 test_build_url();
+test_parse_cookie_string();
 test_parse_query_string();
 test_get_param_boolean();
 test_parse_addr_spec();





More information about the tor-commits mailing list