use strict; use warnings FATAL => qw(all); use My::TestUtil; use IO::File; use Apache::Test qw(-withtestmore); My::TestUtil->write_echo(); plan tests => 18; my $class = qw(My::Subclass); use_ok($class); { my $o = $class->new(application_key => 'key', application_secret => 'secret', application_push_secret => 'push secret'); my $rc = $o->stats; ok (! $rc, 'no rc for no date'); } { #local $WebService::UrbanAirship::APNS::DEBUG = 1; my $o = $class->new(application_key => 'key', application_secret => 'secret', application_push_secret => 'push secret'); my $return = $o->stats(start => '2009-06-01 13:00:00', end => '2009-07-01'); is ($return, 'all done!', 'GET returned successfully'); my $outfile = File::Spec->catfile(Apache::Test::vars('serverroot'), qw(test/output.txt)); ok (-e $outfile, "output file $outfile exists"); my $fh = IO::File->new($outfile); ok ($fh, "could open $outfile"); my $content = do { local $/; <$fh> }; like ($content, qr!\QHTTP_USER_AGENT => WebService::UrbanAirship::APNS/0.\E\d+!, "found user agent"); like ($content, qr!\QSCRIPT_URL => /api/push/stats/!, "found url"); like ($content, qr!\QSCRIPT_URI => https://!, "request was https"); like ($content, qr!\QHTTPS => on!, "request was really https"); like ($content, qr!\QREQUEST_METHOD => GET!, "request was GET"); like ($content, qr!\QWSAUTH => Basic a2V5OnB1c2ggc2VjcmV0!, "request used application push key for authentication"); like ($content, qr!\QQUERY_STRING => start=2009-06-01%2013:00:00&end=2009-07-01!, "request had proper query string"); unlink $outfile; ok (! -e $outfile, "removed $outfile"); } { #local $WebService::UrbanAirship::APNS::DEBUG = 1; my $o = $class->new(application_key => 'key', application_secret => 'secret', application_push_secret => 'push secret'); my $return = $o->stats(start => '2009-06-01 13:00:00', end => '2009-07-01', format => 'csv'); is ($return, 'all done!', 'GET returned successfully'); my $outfile = File::Spec->catfile(Apache::Test::vars('serverroot'), qw(test/output.txt)); ok (-e $outfile, "output file $outfile exists"); my $fh = IO::File->new($outfile); ok ($fh, "could open $outfile"); my $content = do { local $/; <$fh> }; like ($content, qr!\QQUERY_STRING => start=2009-06-01%2013:00:00&end=2009-07-01&format=csv!, "request had proper query string"); unlink $outfile; ok (! -e $outfile, "removed $outfile"); }