jsone_inet_tests.erl 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. %% Copyright (c) 2013-2021, Takeru Ohta <phjgt308@gmail.com>
  2. -module(jsone_inet_tests).
  3. -include_lib("eunit/include/eunit.hrl").
  4. format_ipv4_test() ->
  5. Expected = <<"127.0.0.1">>,
  6. {ok, Addr} = inet:parse_ipv4_address(binary_to_list(Expected)),
  7. {ok, Actual} = jsone_inet:ip_address_to_json_string(Addr),
  8. ?assertEqual(Actual, Expected).
  9. format_ipv6_test() ->
  10. Addresses =
  11. [
  12. <<"::127.0.0.1">>,
  13. <<"::ffff:192.0.2.1">>,
  14. <<"::ffff:0:255.255.255.255">>,
  15. <<"64:ff9b::0.0.0.0">>,
  16. <<"64:ff9b:1::192.168.1.1">>,
  17. <<"64:ff9b:1::1:192.168.1.1">>,
  18. <<"::1:2:3:2001:db8">>,
  19. <<"2001:db8::">>,
  20. <<"2001:db8::1">>,
  21. <<"2001:db8::1:0:0:1">>,
  22. <<"2001:db8:0:1:1:1:1:1">>,
  23. <<"2001:0:0:1::1">>,
  24. <<"2001:db8:85a3::8a2e:370:7334">>
  25. ],
  26. lists:foreach(
  27. fun (Expected) ->
  28. {ok, Addr} = inet:parse_ipv6_address(binary_to_list(Expected)),
  29. {ok, Bin} = jsone_inet:ip_address_to_json_string(Addr),
  30. ?assertEqual(Expected, Bin)
  31. end,
  32. Addresses).
  33. invalid_ip_addr_test() ->
  34. ?assertEqual(jsone_inet:ip_address_to_json_string(foo), error),
  35. ?assertEqual(jsone_inet:ip_address_to_json_string({1, 2, 3}), error),
  36. ?assertEqual(jsone_inet:ip_address_to_json_string({0, 10000, 0, 0}), error),
  37. ?assertEqual(jsone_inet:ip_address_to_json_string({-1, 0, 0, 0, 0, 0, 0, 0}), error).