1 /*******************************************************************************
2 
3     Http Session "Cookie" Structure
4 
5     Reference:      RFC 2109
6 
7                     @see http://www.w3.org/Protocols/rfc2109/rfc2109.txt
8                     @see http://www.servlets.com/rfcs/rfc2109.html
9 
10     Copyright:
11         Copyright (c) 2009-2016 dunnhumby Germany GmbH.
12         All rights reserved.
13 
14     License:
15         Boost Software License Version 1.0. See LICENSE_BOOST.txt for details.
16         Alternatively, this file may be distributed under the terms of the Tango
17         3-Clause BSD License (see LICENSE_BSD.txt for details).
18 
19  ******************************************************************************/
20 
21 module ocean.net.http.cookie.HttpCookieParser;
22 
23 
24 import ocean.meta.types.Qualifiers;
25 import ocean.net.util.QueryParams: QueryParamSet;
26 
27 version (unittest) import ocean.core.Test;
28 
29 /******************************************************************************/
30 
31 class HttpCookieParser : QueryParamSet
32 {
33     this ( in istring[] cookie_names ... )
34     {
35         super(';', '=', cookie_names);
36     }
37 }
38 
39 /******************************************************************************/
40 
41 unittest
42 {
43     static immutable istring cookie_header_value = "test=2649113645; test-value=1383922851";
44 
45     static immutable istring[] cookie_names =
46     [
47         "test",
48         "test-value"
49     ];
50 
51     scope cookie = new HttpCookieParser(cookie_names);
52 
53     cookie.parse(cookie_header_value);
54 
55     test (cookie["test"] == "2649113645");
56     test (cookie["test-value"] == "1383922851");
57 }