#!perl -w
BEGIN {
use_ok(
'CGI::Info'
);
}
SEARCH: {
delete
$ENV
{
'REMOTE_ADDR'
};
delete
$ENV
{
'HTTP_USER_AGENT'
};
my
$cache
;
eval
{
CHI->
import
();
};
if
($@) {
diag(
'CHI not installed'
);
$cache
=
undef
;
}
else
{
diag(
"Using CHI $CHI::VERSION"
);
my
$hash
= {};
$cache
= CHI->new(
driver
=>
'Memory'
,
datastore
=>
$hash
);
}
my
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 0);
$ENV
{
'REMOTE_ADDR'
} =
'65.52.110.76'
;
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 0);
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 1);
ok(
$i
->browser_type() eq
'search'
);
$ENV
{
'REMOTE_ADDR'
} =
'119.63.196.107'
;
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 1);
ok(
$i
->browser_type() eq
'search'
);
$ENV
{
'REMOTE_ADDR'
} =
'207.241.237.233'
;
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 0);
$ENV
{
'REMOTE_ADDR'
} =
'74.92.149.57'
;
$ENV
{
'HTTP_USER_AGENT'
} =
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20'
;
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 0);
$ENV
{
'REMOTE_ADDR'
} =
'66.249.73.149'
;
$i
= new_ok(
'CGI::Info'
);
ok(
$i
->is_search_engine() == 1);
ok(
$i
->browser_type() eq
'search'
);
$ENV
{
'REMOTE_ADDR'
} =
'66.249.73.149'
;
$i
= new_ok(
'CGI::Info'
=> [{
cache
=>
$cache
,
}]);
ok(
$i
->is_search_engine() == 1);
ok(
$i
->browser_type() eq
'search'
);
SKIP: {
skip
'Test requires CHI access'
, 2
unless
(
$cache
);
cmp_ok(
$cache
->get(
"66.249.73.149/$ENV{HTTP_USER_AGENT}"
),
'eq'
,
'search'
,
'cache works'
);
ok(!
defined
(
$cache
->get(
"12.159.106.42/$ENV{HTTP_USER_AGENT}"
)));
}
{
}
$ENV
{
'HTTP_USER_AGENT'
} =
'A nonsense user agent string'
;
$ENV
{
'REMOTE_ADDR'
} =
'212.159.106.41'
;
$i
= new_ok(
'CGI::Info::Test'
=> [{
cache
=>
$cache
,
}]);
ok(
$i
->is_search_engine() == 0);
ok(
$i
->browser_type() eq
'robot'
);
SKIP: {
skip
'Test requires CHI access'
, 2
unless
(
$cache
);
cmp_ok(
$cache
->get(
"212.159.106.41/$ENV{HTTP_USER_AGENT}"
),
'eq'
,
'robot'
,
'cache works'
);
ok(!
defined
(
$cache
->get(
"12.159.106.42/$ENV{HTTP_USER_AGENT}"
)));
}
}