UNPKG

structured-field-values

Version:

Implementation of Structured Field Values from IETF httpbis RFC8941

114 lines (113 loc) 3.46 kB
[ { "name": "basic parameterised dict", "raw": ["abc=123;a=1;b=2, def=456, ghi=789;q=9;r=\"+w\""], "header_type": "dictionary", "expected": [ ["abc", [123, [["a", 1], ["b", 2]]]], ["def", [456, []]], ["ghi", [789, [["q", 9], ["r", "+w"]]]] ] }, { "name": "single item parameterised dict", "raw": ["a=b; q=1.0"], "header_type": "dictionary", "expected": [ ["a", [{"__type": "token", "value": "b"}, [["q", 1.0]]]] ], "canonical": ["a=b;q=1.0"] }, { "name": "list item parameterised dictionary", "raw": ["a=(1 2); q=1.0"], "header_type": "dictionary", "expected": [["a", [[[1, []], [2, []]], [["q", 1.0]]]]], "canonical": ["a=(1 2);q=1.0"] }, { "name": "missing parameter value parameterised dict", "raw": ["a=3;c;d=5"], "header_type": "dictionary", "expected": [ ["a", [3, [["c", true], ["d", 5]]]] ] }, { "name": "terminal missing parameter value parameterised dict", "raw": ["a=3;c=5;d"], "header_type": "dictionary", "expected": [ ["a", [3, [["c", 5], ["d", true]]]] ] }, { "name": "no whitespace parameterised dict", "raw": ["a=b;c=1,d=e;f=2"], "header_type": "dictionary", "expected": [ ["a", [{"__type": "token", "value": "b"}, [["c", 1]]]], ["d", [{"__type": "token", "value": "e"}, [["f", 2]]]] ], "canonical": ["a=b;c=1, d=e;f=2"] }, { "name": "whitespace before = parameterised dict", "raw": ["a=b;q =0.5"], "header_type": "dictionary", "must_fail": true }, { "name": "whitespace after = parameterised dict", "raw": ["a=b;q= 0.5"], "header_type": "dictionary", "must_fail": true }, { "name": "whitespace before ; parameterised dict", "raw": ["a=b ;q=0.5"], "header_type": "dictionary", "must_fail": true }, { "name": "whitespace after ; parameterised dict", "raw": ["a=b; q=0.5"], "header_type": "dictionary", "expected": [ ["a", [{"__type": "token", "value": "b"}, [["q", 0.5]]]] ], "canonical": ["a=b;q=0.5"] }, { "name": "extra whitespace parameterised dict", "raw": ["a=b; c=1 , d=e; f=2; g=3"], "header_type": "dictionary", "expected": [ ["a", [{"__type": "token", "value": "b"}, [["c", 1]]]], ["d", [{"__type": "token", "value": "e"}, [["f", 2], ["g", 3]]]] ], "canonical": ["a=b;c=1, d=e;f=2;g=3"] }, { "name": "two lines parameterised list", "raw": ["a=b;c=1", "d=e;f=2"], "header_type": "dictionary", "expected": [ ["a", [{"__type": "token", "value": "b"}, [["c", 1]]]], ["d", [{"__type": "token", "value": "e"}, [["f", 2]]]] ], "canonical": ["a=b;c=1, d=e;f=2"] }, { "name": "trailing comma parameterised list", "raw": ["a=b; q=1.0,"], "header_type": "dictionary", "must_fail": true }, { "name": "empty item parameterised list", "raw": ["a=b; q=1.0,,c=d"], "header_type": "dictionary", "must_fail": true } ]