]>
git.defcon.no Git - hermes/blob - api/t/alias.t
ac47b1c9d6e0aa3c15ac8ff1a971eb8c50961e5b
4 use Test
::More
'no_plan';
8 # Configuration variables defined in tests_common
9 # Make sure those are updated/set correctly..
13 # Further variables defined in tests_common:
18 my ($data, $temp, $test_number_start, $test_alias, $test_e164alias, $test_domain, $test_remote_domain);
20 our $test_alias = "testalias-" . int(rand(255));
22 $test_e164alias .= int(rand(255))
23 while ( length( $test_e164alias ) < 8 );
25 $test_e164alias = '+47' . substr( $test_e164alias, 0, 8 );
27 isa_ok
( $g_ua, 'LWP::UserAgent', '$g_ua');
28 isa_ok
( $g_ua->cookie_jar, 'HTTP::Cookies', '$g_ua->cookies');
32 # First: fetch a supported domain from the API...
33 $data = exec_apinode
("domain/list", undef);
34 ok
($data, 'domain/list JSON decode');
35 is
( $data->{'response'}, 'ok', 'domain/list result');
36 ok
($data->{'list'}, 'domain/list array');
38 # NOW: Set the $test_domain to something useful (i.e. the first reported domain)
39 $test_domain = $data->{'list'}[0];
40 $test_remote_domain = "external." . $test_domain;
42 ok
($test_domain, 'test_domain set.');
43 ok
($test_remote_domain, 'test_remote_domain set.');
46 $data = exec_apinode
("user/available", { "user" => $test_username . "\@" . $test_domain });
47 is
( $data->{'response'}, 'ok', 'user/available is available');
50 $data = exec_apinode
("user/add_local", {
51 "user" => $test_username . "\@" . $test_domain,
52 "displayname" => "Automatic testing",
53 "email" => "noreply\@" . $test_domain,
55 is
( $data->{'response'}, 'ok', 'user/add_local created new account');
57 $data = exec_apinode
("alias/list", undef);
58 is
( $data->{'response'}, 'ok', 'alias/list result');
59 ok
($data->{'aliases'}, 'alias/list array');
62 $data = exec_apinode
("alias/add", {
63 'alias' => $test_alias . "\@" . $test_domain,
64 'destination' => $test_username . "\@" . $test_domain,
66 is
( $data->{'response'}, 'ok', 'alias/add result');
67 ok
( $data->{'destination'}, 'alias/add destination');
68 ok
( $data->{'alias'}, 'alias/add alias');
71 $data = exec_apinode
("alias/add", {
72 'alias' => $test_alias . "\@" . $test_domain,
73 'destination' => $test_username . "\@" . $test_domain,
75 is
( $data->{'response'}, 'failed', 'alias/add for existing alias result');
80 $data = exec_apinode
("alias/add", {
81 'alias' => $test_e164alias . "\@" . $test_domain,
82 'destination' => $test_username . "\@" . $test_domain,
84 is
( $data->{'response'}, 'ok', 'alias/add e164 result');
85 ok
( $data->{'destination'}, 'alias/add destination');
86 ok
( $data->{'alias'}, 'alias/add alias');
89 $data = exec_apinode
("alias/list", { 'destination' => $test_username . "\@" . $test_domain });
90 is
( $data->{'response'}, 'ok', 'alias/list w/destination result');
91 ok
($data->{'aliases'}, 'alias/list w/destination array');
94 $data = exec_apinode
("alias/list", { 'destination' => $test_username . "\@" . $test_domain });
95 is
( $data->{'response'}, 'ok', 'alias/list w/e164 result');
96 ok
($data->{'aliases'}, 'alias/list w/e164 array');
97 ok
($data->{'aliases'}[0]->{'destination'}, 'alias/list w/e164 destination');
100 $data = exec_apinode
("alias/remove", {
101 'alias' => $test_alias . "\@" . $test_domain,
103 is
( $data->{'response'}, 'ok', 'alias/remove result');
104 ok
( $data->{'alias'}, 'alias/remove alias');
107 $data = exec_apinode
("alias/remove", {
108 'alias' => $test_e164alias . "\@" . $test_domain,
110 is
( $data->{'response'}, 'ok', 'alias/remove e164 result');
111 ok
( $data->{'alias'}, 'alias/remove alias');
114 $data = exec_apinode
("user/remove", { "user" => $test_username . "\@" . $test_domain });
115 is
( $data->{'response'}, 'ok', 'user/remove deleted user');
118 $data = exec_apinode
("alias/add", {
119 'alias' => $test_username . "\@" . $test_domain,
120 'destination' => $test_alias . "\@" . $test_domain,
122 is
( $data->{'response'}, 'failed', 'alias/add for existing user result');