]> git.defcon.no Git - hermes/commitdiff
Tests for alias nodes
authorJon Langseth <jon.langseth@lilug.no>
Sun, 22 Jan 2012 22:01:04 +0000 (23:01 +0100)
committerJon Langseth <jon.langseth@lilug.no>
Sun, 22 Jan 2012 22:01:04 +0000 (23:01 +0100)
api/t/alias.t [new file with mode: 0644]

diff --git a/api/t/alias.t b/api/t/alias.t
new file mode 100644 (file)
index 0000000..ac47b1c
--- /dev/null
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More 'no_plan';
+use tests_common;
+use Data::Dumper;
+
+# Configuration variables defined in tests_common
+# Make sure those are updated/set correctly..
+#   $api_base
+#   $api_key
+#
+# Further variables defined in tests_common:
+#   $invalid_key
+#   $test_username
+#   $test_password
+#   $invalid_username
+my ($data, $temp, $test_number_start, $test_alias, $test_e164alias, $test_domain, $test_remote_domain);
+
+our $test_alias = "testalias-" . int(rand(255));
+
+$test_e164alias .= int(rand(255))
+       while ( length( $test_e164alias ) < 8 );
+
+$test_e164alias = '+47' . substr( $test_e164alias, 0, 8 );
+
+isa_ok( $g_ua, 'LWP::UserAgent', '$g_ua');
+isa_ok( $g_ua->cookie_jar, 'HTTP::Cookies', '$g_ua->cookies');
+
+login_apikey();
+
+# First: fetch a supported domain from the API...
+$data = exec_apinode("domain/list", undef);
+ok($data,                              'domain/list JSON decode');
+is( $data->{'response'}, 'ok',                 'domain/list result');
+ok($data->{'list'},                    'domain/list array');
+
+# NOW: Set the $test_domain to something useful (i.e. the first reported domain)
+$test_domain = $data->{'list'}[0];
+$test_remote_domain = "external." . $test_domain;
+
+ok($test_domain,                       'test_domain set.');
+ok($test_remote_domain,                        'test_remote_domain set.');
+undef $data;
+
+$data = exec_apinode("user/available", { "user" => $test_username . "\@" . $test_domain });
+is( $data->{'response'}, 'ok',                 'user/available is available');
+undef $data;
+
+$data = exec_apinode("user/add_local", {
+       "user" => $test_username . "\@" . $test_domain,
+       "displayname" => "Automatic testing",
+       "email" => "noreply\@" . $test_domain,
+} );
+is( $data->{'response'}, 'ok',                 'user/add_local created new account');
+
+$data = exec_apinode("alias/list", undef);
+is( $data->{'response'}, 'ok',                 'alias/list result');
+ok($data->{'aliases'},                 'alias/list array');
+undef $data;
+
+$data = exec_apinode("alias/add", {
+       'alias' => $test_alias . "\@" . $test_domain,
+       'destination' => $test_username . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'ok',                 'alias/add result');
+ok( $data->{'destination'},            'alias/add destination');
+ok( $data->{'alias'},          'alias/add alias');
+undef $data;
+
+$data = exec_apinode("alias/add", {
+       'alias' => $test_alias . "\@" . $test_domain,
+       'destination' => $test_username . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'failed',     'alias/add for existing alias result');
+undef $data;
+
+
+
+$data = exec_apinode("alias/add", {
+       'alias' => $test_e164alias . "\@" . $test_domain,
+       'destination' => $test_username . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'ok',                 'alias/add e164 result');
+ok( $data->{'destination'},            'alias/add destination');
+ok( $data->{'alias'},          'alias/add alias');
+undef $data;
+
+$data = exec_apinode("alias/list", { 'destination' => $test_username . "\@" . $test_domain });
+is( $data->{'response'}, 'ok',                 'alias/list w/destination result');
+ok($data->{'aliases'},                 'alias/list w/destination array');
+undef $data;
+
+$data = exec_apinode("alias/list", { 'destination' => $test_username . "\@" . $test_domain });
+is( $data->{'response'}, 'ok',                 'alias/list w/e164 result');
+ok($data->{'aliases'},                 'alias/list w/e164 array');
+ok($data->{'aliases'}[0]->{'destination'},                     'alias/list w/e164 destination');
+undef $data;
+
+$data = exec_apinode("alias/remove", {
+       'alias' => $test_alias . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'ok',                 'alias/remove result');
+ok( $data->{'alias'},          'alias/remove alias');
+undef $data;
+
+$data = exec_apinode("alias/remove", {
+       'alias' => $test_e164alias . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'ok',                 'alias/remove e164 result');
+ok( $data->{'alias'},          'alias/remove alias');
+undef $data;
+
+$data = exec_apinode("user/remove", { "user" => $test_username . "\@" . $test_domain });
+is( $data->{'response'}, 'ok',                 'user/remove deleted user');
+undef $data;
+
+$data = exec_apinode("alias/add", {
+       'alias' => $test_username . "\@" . $test_domain,
+       'destination' => $test_alias . "\@" . $test_domain,
+});
+is( $data->{'response'}, 'failed',     'alias/add for existing user result');
+undef $data;
+
+
+logout();