diff options
author | Clombrong <cromblong@egregore.fun> | 2025-07-02 01:16:06 +0200 |
---|---|---|
committer | Clombrong <cromblong@egregore.fun> | 2025-07-26 21:55:50 +0200 |
commit | 6a618526a0859b36f76889039bb8678610a9d1d3 (patch) | |
tree | c5e22e45f9317663df4b5ef384d674934de89147 | |
parent | 5267e59dc1cb470a1b2ed169a5853273bce4af93 (diff) |
test(jid): promote all examples
-rw-r--r-- | lib/jid.ml | 78 |
1 files changed, 65 insertions, 13 deletions
@@ -78,43 +78,95 @@ let%expect_test {|A "full JID"|} = resourcepart = Some "foo" } |}] let%expect_test {|Single space in resourcepart|} = - "juliet@example.com/foo bar" |> of_string |> show |> print_string + "juliet@example.com/foo bar" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "juliet"; + domainpart = "example.com"; + resourcepart = Some "foo bar" } |}] let%expect_test {|"At" sign in resourcepart|} = - "juliet@example.com/foo@bar" |> of_string |> show |> print_string + "juliet@example.com/foo@bar" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "juliet"; + domainpart = "example.com"; + resourcepart = Some "foo@bar" } |}] let%expect_test {|Single space in localpart, as optionally escaped using the XMPP JID Escaping extension|} = - "foo\\20bar@example.com" |> of_string |> show |> print_string + "foo\\20bar@example.com" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "foo\20bar"; + domainpart = "example.com"; + resourcepart = None } |}] let%expect_test {|Another bare JID|} = - "fussball@example.com" |> of_string |> show |> print_string + "fussball@example.com" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "fussball"; + domainpart = "example.com"; + resourcepart = None } |}] let%expect_test {|The third character is LATIN SMALL LETTER SHARP S (U+00DF)|} = - "fußball@example.com" |> of_string |> show |> print_string + "fußball@example.com" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "fußball"; + domainpart = "example.com"; + resourcepart = None } |}] let%expect_test {|A localpart of GREEK SMALL LETTER PI (U+03C0)|} = - "π@example.com" |> of_string |> show |> print_string + "π@example.com" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "π"; + domainpart = "example.com"; + resourcepart = None } |}] let%expect_test {|A localpart of GREEK CAPITAL LETTER SIGMA (U+03A3)|} = - "Σ@example.com/foo" |> of_string |> show |> print_string + "Σ@example.com/foo" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "Σ"; + domainpart = "example.com"; + resourcepart = Some "foo" } |}] let%expect_test {|A localpart of GREEK SMALL LETTER SIGMA (U+03C3)|} = - "σ@example.com/foo" |> of_string |> show |> print_string + "σ@example.com/foo" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "σ"; + domainpart = "example.com"; + resourcepart = Some "foo" } |}] let%expect_test {|A localpart of GREEK SMALL LETTER FINAL SIGMA (U+03C2)|} = - "ς@example.com/foo" |> of_string |> show |> print_string + "ς@example.com/foo" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "ς"; + domainpart = "example.com"; + resourcepart = Some "foo" } |}] let%expect_test {|A resourcepart of the Unicode character BLACK CHESS KING (U+265A)|} = - "king@example.com/♚" |> of_string |> show |> print_string + "king@example.com/♚" |> of_string |> show |> print_string; + [%expect {| + { localpart = Some "king"; + domainpart = "example.com"; + resourcepart = Some "♚" } |}] let%expect_test {|A domainpart|} = - "example.com" |> of_string |> show |> print_string + "example.com" |> of_string |> show |> print_string; + [%expect {| + { localpart = None; + domainpart = "example.com"; + resourcepart = None } |}] let%expect_test {|A domainpart and resourcepart|} = - "example.com/foobar" |> of_string |> show |> print_string + "example.com/foobar" |> of_string |> show |> print_string; + [%expect {| + { localpart = None; + domainpart = "example.com"; + resourcepart = Some "foobar" } |}] let%expect_test {|A domainpart followed by a resourcepart that contains an "at" sign|} = - "a.example.com/b@example.net" |> of_string |> show |> print_string + "a.example.com/b@example.net" |> of_string |> show |> print_string; + [%expect {| + { localpart = None; + domainpart = "a.example.com"; + resourcepart = Some "b@example.net" } |}] let to_string ({ localpart; domainpart; resourcepart } : t) = |