jsone_inet_tests.erl 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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 = [<<"::127.0.0.1">>,
  11. <<"::ffff:192.0.2.1">>,
  12. <<"::ffff:0:255.255.255.255">>,
  13. <<"64:ff9b::0.0.0.0">>,
  14. <<"64:ff9b:1::192.168.1.1">>,
  15. <<"64:ff9b:1::1:192.168.1.1">>,
  16. <<"::1:2:3:2001:db8">>,
  17. <<"2001:db8::">>,
  18. <<"2001:db8::1">>,
  19. <<"2001:db8::1:0:0:1">>,
  20. <<"2001:db8:0:1:1:1:1:1">>,
  21. <<"2001:0:0:1::1">>,
  22. <<"2001:db8:85a3::8a2e:370:7334">>],
  23. lists:foreach(fun(Expected) ->
  24. {ok, Addr} = inet:parse_ipv6_address(binary_to_list(Expected)),
  25. {ok, Bin} = jsone_inet:ip_address_to_json_string(Addr),
  26. ?assertEqual(Expected, Bin)
  27. end,
  28. Addresses).
  29. invalid_ip_addr_test() ->
  30. ?assertEqual(jsone_inet:ip_address_to_json_string(foo), error),
  31. ?assertEqual(jsone_inet:ip_address_to_json_string({1, 2, 3}), error),
  32. ?assertEqual(jsone_inet:ip_address_to_json_string({0, 10000, 0, 0}), error),
  33. ?assertEqual(jsone_inet:ip_address_to_json_string({-1, 0, 0, 0, 0, 0, 0, 0}), error).