WWW-Mixi
view release on metacpan or search on metacpan
lib/WWW/Mixi.pm view on Meta::CPAN
exit 0;
}
sub test_logger {
return sub {
eval "use Jcode";
my $use_jcode = ($@) ? 0 : 1;
my $self = shift if (ref($_[0]));
my @logs = @_;
my $error = 0;
foreach my $log (@logs) {
my $log_level = 0;
if ($log !~ /^(\s|\[.*?\])/) { $log_level = 1; }
elsif ($log =~ /^\[error\]/) { $log_level = 1; $error = 1; }
elsif ($log =~ /^\[usage\]/) { $log_level = 1; }
elsif ($log =~ /^\[warn\]/) { $log_level = 1; }
elsif ($log =~ /^\[info\]/) { $log_level = 1; }
elsif ($log =~ /^\s/) { $log_level = 2; }
else { $log_level = 2; }
if ($log_level) {
eval '$log = jcode($log, "euc")->sjis' if ($use_jcode);
print OUT $log;
print $log if ($log_level <= 1);
}
}
return $self;
};
}
sub test_new {
my ($mail, $pass, $logger) = @_;
my $error = '';
&{$logger}("¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Þ¤¹¡£\n");
my $mixi = eval "WWW::Mixi->new('$mail', '$pass', '-log' => \$logger)";
if ($@) {
$error = "[error] $@\n";
} elsif (not $mixi) {
$error = "[error] ÉÔÌÀ¤Ê¥¨¥é¡¼¤Ç¤¹¡£\n";
} elsif (not $mixi->{'mixi'}) {
$error = "[error] mixi´ØÏ¢¾ðÊó¤òÀßÄê¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n";
}
if ($error) {
&{$logger}({}, "¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n", $error);
exit 8;
}
$mixi->delay(0);
$mixi->env_proxy;
return $mixi;
}
sub test_login {
my $mixi = shift;
my $error = '';
$mixi->log("mixi¤Ë¥í¥°¥¤¥ó¤·¤Þ¤¹¡£\n");
my ($result, $response) = eval '$mixi->login';
if ($@) {
$error = "[error] $@\n";
} elsif (not $result) {
if (not $response->is_success) {
$error = sprintf("[error] %d %s\n", $response->code, $response->message);
$error .= "[info] Web¥¢¥¯¥»¥¹¤Ë¥×¥í¥¥·¤¬É¬Íפʻþ¤Ï¡¢´Ä¶ÊÑ¿ôHTTP_PROXY¤ò¥»¥Ã¥È¤·¤Æ¤«¤éºÆ»î¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n" unless($ENV{'HTTP_PROXY'});
} elsif ($mixi->is_login_required($response)) {
$error = "[error] " . $mixi->is_login_required($response) . "\n";
} elsif (not $mixi->session) {
$error = "[error] ¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n";
} elsif (not $mixi->stamp) {
$error = "[error] ¥»¥Ã¥·¥ç¥ó¥¹¥¿¥ó¥×¤ò¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n";
} elsif (not $mixi->session) {
$error = "[error] ¥ê¥Õ¥ì¥Ã¥·¥åURL¤ò¼èÆÀ¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n";
}
}
if ($error) {
$mixi->log("¥í¥°¥¤¥ó¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£\n", $error);
$mixi->dumper_log($response);
exit 8;
} else {
$mixi->log('[info] ¥»¥Ã¥·¥ç¥óID¤Ï"' . $mixi->session . "\"¤Ç¤¹¡£\n");
}
}
sub test_get {
my $mixi = shift;
my $error = '';
$mixi->log("¥È¥Ã¥×¥Ú¡¼¥¸¤ò¼èÆÀ¤·¤Þ¤¹¡£\n");
my $response = eval '$mixi->get("home")';
if ($@) {
$error = "[error] $@\n";
} elsif (not $response->is_success) {
$error = sprintf("[error] %d %s\n", $response->code, $response->message);
$error .= "[info] Web¥¢¥¯¥»¥¹¤Ë¥×¥í¥¥·¤¬É¬Íפʻþ¤Ï¡¢´Ä¶ÊÑ¿ôHTTP_PROXY¤ò¥»¥Ã¥È¤·¤Æ¤«¤éºÆ»î¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n" unless($ENV{'HTTP_PROXY'});
} elsif ($mixi->is_login_required($response)) {
$error = "[error] " . $mixi->is_login_required($response) . "\n";
}
if ($error) {
$mixi->log("¥È¥Ã¥×¥Ú¡¼¥¸¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n", $error);
$mixi->dumper_log($response);
exit 8;
}
}
sub test_record {
my $mixi = shift;
$mixi->{'__test_record'} = {} unless (ref($mixi->{'__test_record'}) eq 'HASH');
if (@_ == 0) {
return sort { $a cmp $b } (keys(%{$mixi->{'__test_record'}}));
} elsif (@_ == 1) {
my $key = shift;
return $mixi->{'__test_record'}->{$key};
} else {
my %args = @_;
map { $mixi->{'__test_record'}->{$_} = $args{$_} } keys(%args);
return 1;
}
}
sub test_link {
my $mixi = shift;
$mixi->{'__test_link'} = {} unless (ref($mixi->{'__test_link'}) eq 'HASH');
if (@_ == 0) {
return sort { $a cmp $b } (keys(%{$mixi->{'__test_link'}}));
} elsif (@_ == 1) {
my $key = shift;
return $mixi->{'__test_link'}->{$key};
} else {
my $key = shift;
foreach my $item (grep { ref($_) eq 'HASH' } @_) {
foreach (values(%{$item})) {
foreach my $value (ref($_) eq 'HASH' ? values(%{$_}) : $_) {
next if (ref($value) ne '' or $value =~ /\s/);
next if ($value !~ /^https?:\/\/(?:[^\/]*].)?mixi.jp\/(?:[^\?]*\/)?([^\/\?]+).*$/);
next if ($mixi->{'__test_link'}->{$1});
$mixi->{'__test_link'}->{$1} = $value;
}
}
}
return 1;
}
}
sub test_scenario {
my $mixi = shift;
my @tests = (
# °ú¿ôÉÔÍפΤâ¤Î
'main_menu' => {'label' => '¥á¥¤¥ó¥á¥Ë¥å¡¼'},
'banner' => {'label' => '¥Ð¥Ê¡¼'},
'tool_bar' => {'label' => '¥Ä¡¼¥ë¥Ð¡¼'},
'information' => {'label' => '´ÉÍý¼Ô¤«¤é¤Î¤ªÃΤ餻'},
'home_new_album' => {'label' => '¥Û¡¼¥à¤Î¥Þ¥¤¥ß¥¯¥·¥£ºÇ¿·¥¢¥ë¥Ð¥à'},
'home_new_bbs' => {'label' => '¥Û¡¼¥à¤Î¥³¥ß¥å¥Ë¥Æ¥£ºÇ¿·½ñ¤¹þ¤ß'},
'home_new_comment' => {'label' => '¥Û¡¼¥à¤ÎÆüµ¥³¥á¥ó¥ÈµÆþÍúÎò'},
( run in 1.734 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )