RFC6901 JSON Pointer implementation in OCaml using jsont
at main 2.3 kB view raw
1URI Fragment Encoding Tests (RFC 6901 Section 6) 2 3Roundtrip through URI fragment encoding: 4 $ ./test_pointer.exe uri-fragment "" 5 OK: -> 6 $ ./test_pointer.exe uri-fragment "/foo" 7 OK: /foo -> /foo 8 $ ./test_pointer.exe uri-fragment "/foo/0" 9 OK: /foo/0 -> /foo/0 10 $ ./test_pointer.exe uri-fragment "/" 11 OK: / -> / 12 $ ./test_pointer.exe uri-fragment "/a~1b" 13 OK: /a~1b -> /a~1b 14 $ ./test_pointer.exe uri-fragment "/m~0n" 15 OK: /m~0n -> /m~0n 16 17Characters requiring percent-encoding: 18 $ ./test_pointer.exe uri-fragment "/c%d" 19 OK: /c%d -> /c%25d 20 $ ./test_pointer.exe uri-fragment "/e^f" 21 OK: /e^f -> /e%5Ef 22 $ ./test_pointer.exe uri-fragment "/g|h" 23 OK: /g|h -> /g%7Ch 24 $ ./test_pointer.exe uri-fragment '/i\j' 25 OK: /i\j -> /i%5Cj 26 $ ./test_pointer.exe uri-fragment '/k"l' 27 OK: /k"l -> /k%22l 28 $ ./test_pointer.exe uri-fragment "/ " 29 OK: / -> /%20 30 31Roundtrip tests: 32 $ ./test_pointer.exe roundtrip "" 33 OK: 34 $ ./test_pointer.exe roundtrip "/foo" 35 OK: /foo 36 $ ./test_pointer.exe roundtrip "/foo/0" 37 OK: /foo/0 38 $ ./test_pointer.exe roundtrip "/" 39 OK: / 40 $ ./test_pointer.exe roundtrip "/a~1b" 41 OK: /a~1b 42 $ ./test_pointer.exe roundtrip "/m~0n" 43 OK: /m~0n 44 $ ./test_pointer.exe roundtrip "/-" 45 OK: /- 46 $ ./test_pointer.exe roundtrip "/a/b/c" 47 OK: /a/b/c 48 49RFC 6901 Section 6 examples (URI fragment encoding): 50Note: These test the full RFC 6901 Section 6 examples 51 $ ./test_pointer.exe uri-fragment "/c%d" 52 OK: /c%d -> /c%25d 53 $ ./test_pointer.exe uri-fragment "/e^f" 54 OK: /e^f -> /e%5Ef 55 $ ./test_pointer.exe uri-fragment "/g|h" 56 OK: /g|h -> /g%7Ch 57 $ ./test_pointer.exe uri-fragment '/i\j' 58 OK: /i\j -> /i%5Cj 59 $ ./test_pointer.exe uri-fragment '/k"l' 60 OK: /k"l -> /k%22l 61 $ ./test_pointer.exe uri-fragment "/ " 62 OK: / -> /%20 63 64Unicode in URI fragments: 65 $ ./test_pointer.exe uri-fragment "/café" 66 OK: /café -> /caf%C3%A9 67 $ ./test_pointer.exe uri-fragment "/日本語" 68 OK: /日本語 -> /%E6%97%A5%E6%9C%AC%E8%AA%9E 69 70Combined escapes (tilde escape + URI encode): 71Note: %25 in result is the URI encoding of %, and 100% is treated as member name 72 $ ./test_pointer.exe uri-fragment "/100%" 73 OK: /100% -> /100%25 74 75Multiple special chars: 76 $ ./test_pointer.exe uri-fragment "/a b^c|d" 77 OK: /a b^c|d -> /a%20b%5Ec%7Cd