File: json_test.erl

package info (click to toggle)
ejabberd 26.02-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,396 kB
  • sloc: erlang: 122,646; sh: 4,258; sql: 3,633; perl: 869; makefile: 559; javascript: 216; python: 48
file content (76 lines) | stat: -rw-r--r-- 2,396 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-module(json_test).

-compile(export_all).

-include_lib("eunit/include/eunit.hrl").

%% @format-begin

encode_binary_test() ->
    Binary = <<"This is an error text.">>,
    Encoded = <<"\"This is an error text.\"">>,
    ?assertMatch(Encoded, misc:json_encode(Binary)).

-ifdef(OTP_BELOW_26).

%% OTP 25 or lower
encode_map_test() ->
    Map = #{name => <<"room">>,
            service => <<"conference">>,
            jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
            affiliation => member},
    Encoded =
        <<"{\"service\":\"conference\",\"name\":\"room\",\"jid\":\"user@server\",\"affiliation\":\"member\"}">>,
    ?assertMatch(Encoded, misc:json_encode(Map)).

-endif.

-ifdef(OTP_BELOW_27).

-ifndef(OTP_BELOW_26).

%% OTP 26
encode_map_test() ->
    Map = #{name => <<"room">>,
            service => <<"conference">>,
            jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
            affiliation => member},
    Encoded =
        <<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
    ?assertMatch(Encoded, misc:json_encode(Map)).

-endif.
-endif.

-ifndef(OTP_BELOW_27).

%% OTP 27 or higher or higher
encode_map_test() ->
    Map = #{name => <<"room">>,
            service => <<"conference">>,
            jid => jid:encode({<<"user">>, <<"server">>, <<"">>}),
            affiliation => member},
    Encoded27 =
        <<"{\"name\":\"room\",\"service\":\"conference\",\"jid\":\"user@server\",\"affiliation\":\"member\"}">>,
    ?assertMatch(Encoded27, misc:json_encode(Map)).

-endif.

decode_test() ->
    Encoded =
        <<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
    TupleList =
        #{<<"affiliation">> => <<"member">>,
          <<"jid">> => <<"user@server">>,
          <<"name">> => <<"room">>,
          <<"service">> => <<"conference">>},
    ?assertMatch(TupleList, misc:json_decode(Encoded)).

decode_maps_test() ->
    Encoded =
        <<"{\"affiliation\":\"member\",\"jid\":\"user@server\",\"service\":\"conference\",\"name\":\"room\"}">>,
    Map = #{<<"affiliation">> => misc:atom_to_binary(member),
            <<"jid">> => jid:encode({<<"user">>, <<"server">>, <<"">>}),
            <<"name">> => <<"room">>,
            <<"service">> => <<"conference">>},
    ?assertMatch(Map, misc:json_decode(Encoded)).