App-Adenosine

 view release on metacpan or  search on metacpan

t/basic.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;
use Test::Deep;
use Test::Fatal;
use Cwd;

$ENV{PATH} = $^O eq 'MSWin32' ? "t/bin;$ENV{PATH}" : "t/bin:$ENV{PATH}" ;
$ENV{EDITOR} = 'bluh';
$ENV{HOME} ||= getcwd;
my $c = "$ENV{HOME}/.resty/c/google.com";
$c =~ s(/)(\\)g if $^O eq 'MSWin32';
my @noxdg = (enable_xdg => 0);
subtest 'plugins must be an arrayref' => sub {
   like(exception {
      TestAdenosine->new({
         argv => ['http://google.com'],
         plugins => 'fail',
         @noxdg
      })
   }, qr/plugins must be an arrayref/, 'scalar');

   like(exception {
      TestAdenosine->new({
         argv => ['http://google.com'],
         plugins => {},
         @noxdg
      })
   }, qr/plugins must be an arrayref/, 'hashref');
};
TestAdenosine->new({ argv => ['http://google.com'], @noxdg });
is($TestAdenosine::stdout, "http://google.com*\n", 'http no *');
is($TestAdenosine::uri_base, "http://google.com*", 'uri_base set');
cmp_deeply(\@TestAdenosine::extra_options, [], 'extra options set');

TestAdenosine->new({ argv => ['google.com', '-v', '-H', 'Foo: Bar'], @noxdg });
is($TestAdenosine::stdout, "http://google.com*\n", 'just domain');
is($TestAdenosine::uri_base, "http://google.com*", 'uri_base set');
cmp_deeply(\@TestAdenosine::extra_options, ['-v', '-H', 'Foo: Bar'], 'extra options set');

TestAdenosine->new({
   argv => [],
   plugins => [Plugin1->new],
   @noxdg,
});
is($TestAdenosine::stdout, "http://google.com*\n", 'no args');
cmp_deeply(\@TestAdenosine::extra_options, ['-v', '-H', 'Foo: Bar'], 'extra options remain');

TestAdenosine->new({
   argv => ['https://google.com/user/*/1'],
   plugins => [qw(Plugin1)],
   @noxdg,
});
is($TestAdenosine::stdout, "https://google.com/user/*/1\n", 'https + *');
is($TestAdenosine::uri_base, "https://google.com/user/*/1", 'uri_base set');
cmp_deeply(\@TestAdenosine::extra_options, [], 'extra options cleared');

$TestAdenosine::curl_stderr = <<'BLUUU';
* About to connect() to google.com port 80 (#0)
*   Trying 167.10.21.20... connected
> HEAD / HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: google.com
> Accept: */*
>



( run in 2.179 seconds using v1.01-cache-2.11-cpan-54e63673c56 )