@ -16,11 +16,14 @@ unless ($ENV{TEST_RTC}) {
exit 0 ;
}
my $ domain_id = $ ENV { TEST_RTC_DOMAIN_ID } // 3 ;
my $ uri = $ ENV { CATALYST_SERVER } || ( 'https://' . hostfqdn . ':4443' ) ;
my ( $ netloc ) = ( $ uri =~ m !^https?://(.*)/?.*$! ) ;
my $ domain_name = $ ENV { TEST_RTC_DOMAIN } ;
unless ( $ domain_name ) {
( $ domain_name ) = ( $ uri =~ m !^https?://([^/:]*)(:[0-9]+)?/?.*$! ) ;
}
my ( $ ua , $ req , $ res , $ data ) ;
$ ua = LWP::UserAgent - > new ;
@ -32,6 +35,23 @@ my $user = $ENV{API_USER} // 'administrator';
my $ pass = $ ENV { API_PASS } // 'administrator' ;
$ ua - > credentials ( $ netloc , "api_admin_http" , $ user , $ pass ) ;
my ( $ domain_id ) ;
{
$ req = HTTP::Request - > new ( 'GET' , "$uri/api/domains/?domain=$domain_name" ) ;
$ res = $ ua - > request ( $ req ) ;
is ( $ res - > code , 200 , "GET search domain" ) ;
$ data = JSON:: from_json ( $ res - > decoded_content ) ;
ok ( $ data - > { total_count } , "got at least one domain" ) || die "we can't continue without domain" ;
my $ selected_domain = ( 'ARRAY' eq ref $ data - > { _embedded } { 'ngcp:domains' } )
? $ data - > { _embedded } { 'ngcp:domains' } [ 0 ]
: $ data - > { _embedded } { 'ngcp:domains' } ;
$ domain_id = $ selected_domain - > { id } ;
$ domain_name = $ selected_domain - > { domain } ;
diag ( "domain: $selected_domain->{domain} ($domain_id)" ) ;
}
my ( $ contract_id , $ reseller_id , $ customer_id , $ bprof_id , $ customercontact_id , $ network_tag ) ;
{
@ -57,7 +77,7 @@ my ($contract_id, $reseller_id, $customer_id, $bprof_id, $customercontact_id, $n
name = > 'rtc test reseller ' . time ,
enable_rtc = > JSON:: true ,
status = > 'active' ,
rtc_networks = > [ 'sip' ],
rtc_networks = > [ 'sip' ,'xmpp' , 'webrtc' ],
} ) ) ;
$ res = $ ua - > request ( $ req ) ;
is ( $ res - > code , 201 , "POST create reseller" ) ;
@ -77,7 +97,7 @@ my ($contract_id, $reseller_id, $customer_id, $bprof_id, $customercontact_id, $n
is ( $ data - > { networks } [ 0 ] { connector } , 'sip-connector' , "rtcnetwork exists" ) ;
$ network_tag = $ data - > { networks } [ 0 ] { tag } ;
diag ( "reseller id: $reseller_id , network_tag: $network_tag") ;
diag ( "reseller id: $reseller_id , first network_tag: $network_tag") ;
$ req = HTTP::Request - > new ( 'POST' , $ uri . '/api/billingprofiles/' ) ;
$ req - > header ( 'Content-Type' = > 'application/json' ) ;
@ -152,7 +172,7 @@ my ($sub1_id, $sub1_name, $sub2_id, $sub2_name);
$ res = $ ua - > request ( $ req ) ;
is ( $ res - > code , 200 , "PATCH set subscriberpreferences sub1" ) ;
diag ( "subscriber $sub1_name : $sub1_id") ;
diag ( "subscriber $sub1_name \@$domain_name (pass: $sub1_name, id : $sub1_id) ") ;
$ req = HTTP::Request - > new ( 'POST' , $ uri . '/api/subscribers/' ) ;
$ req - > header ( 'Content-Type' = > 'application/json' ) ;
@ -179,7 +199,11 @@ my ($sub1_id, $sub1_name, $sub2_id, $sub2_name);
$ res = $ ua - > request ( $ req ) ;
is ( $ res - > code , 200 , "PATCH set subscriberpreferences sub2" ) ;
diag ( "subscriber $sub2_name: $sub2_id" ) ;
diag ( "subscriber $sub2_name\@$domain_name (pass: $sub2_name, id: $sub2_id)" ) ;
diag ( "you can now create new session using:" ) ;
my $ noport_uri = ( $ uri =~ s/:[0-9]+// r ) ;
diag ( " curl -XPOST -v -k --user $sub1_name\@$domain_name:$sub1_name -H'Content-Type: application/json' $noport_uri/api/rtcsessions/ --data-binary '{}'" ) ;
diag ( " curl -XPOST -v -k --user $sub2_name\@$domain_name:$sub2_name -H'Content-Type: application/json' $noport_uri/api/rtcsessions/ --data-binary '{}'" ) ;
}
done_testing ;
done_testing ;