summaryrefslogtreecommitdiff
path: root/t/testremote.t
diff options
context:
space:
mode:
Diffstat (limited to 't/testremote.t')
-rw-r--r--t/testremote.t44
1 files changed, 44 insertions, 0 deletions
diff --git a/t/testremote.t b/t/testremote.t
new file mode 100644
index 0000000..900d3e8
--- /dev/null
+++ b/t/testremote.t
@@ -0,0 +1,44 @@
+use Test::More;
+
+use LWP;
+use CPAN::Mini::Inject;
+use lib 't/lib';
+
+BEGIN {
+ eval "use CPANServer";
+
+ plan skip_all => "HTTP::Server::Simple required to test update_mirror"
+ if $@;
+ plan tests => 3;
+}
+
+my $server = CPANServer->new( 11027 );
+my $pid = $server->background;
+ok( $pid, 'HTTP Server started' );
+# Give server time to get going.
+sleep 1;
+
+$SIG{__DIE__} = sub { kill( 9, $pid ) };
+
+my $mcpi = CPAN::Mini::Inject->new;
+$mcpi->loadcfg( 't/.mcpani/config' )->parsecfg;
+
+$mcpi->testremote;
+is( $mcpi->{site}, 'http://localhost:11027/', 'Correct remote URL' );
+
+$mcpi->loadcfg( 't/.mcpani/config_badremote' )->parsecfg;
+
+SKIP: {
+ skip 'Test fails with funky DNS providers', 1
+ if can_fetch( 'http://blahblah' );
+ # This fails with OpenDNS &c
+ $mcpi->testremote;
+ is( $mcpi->{site}, 'http://localhost:11027/',
+ 'Selects correct remote URL' );
+}
+
+kill( 9, $pid );
+
+unlink( 't/testconfig' );
+
+sub can_fetch { LWP::UserAgent->new->get( shift )->is_success }