The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#######################################################################
# $Date: 2007-07-09 07:51:09 -0700 (Mon, 09 Jul 2007) $
# $Revision: 135 $
# $Author: david.romano $
# ex: set ts=8 sw=4 et
#########################################################################
# Tries use subs 'system', but after use WWW::Facebook::API, didn't work :-(
# May have something to do with autogenerating WWW::Facebook::API::* in
# API.pm? Anyway, this is needed for testing WWW::Facebook::API::Auth->login
BEGIN { *CORE::GLOBAL::system = sub { 0 }; }
use strict;
BEGIN {
eval 'use Test::MockObject::Extends';
if ($@) {
plan skip_all => 'Tests require Test::MockObject::Extends';
}
plan tests => 16;
}
my $api = Test::MockObject::Extends->new(
WWW::Facebook::API->new(
api_key => 1,
secret => 1,
parse_response => 1,
desktop => 1,
),
);
{
local $/ = "\n\n";
$api->set_series( '_post_request', <DATA> );
}
my $auth = WWW::Facebook::API::Auth->new( base => $api );
my $token = $auth->create_token;
is $token, '3e4a22bb2f5ed75114b0fc9995ea85f1', 'token correct';
$auth->get_session($token);
is $api->session_key, '5f34e11bfb97c762e439e6a5-8055', 'session key correct';
is $api->session_uid, '8055', 'uid correct';
is $api->session_expires, '1173309298', 'expires correct';
is $api->secret, '23489234289342389', 'secret correct';
eval { $auth->get_session; };
ok $@, 'token needed';
$api->desktop(0);
$token = $auth->create_token;
is $token, '4358934543983b234c4389ef45489456', '!desktop token correct';
$auth->get_session($token);
is $api->session_key, '3453498345945943ca343834-4323', '!desktop session key correct';
is $api->session_uid, '34333', '!desktop uid correct';
is $api->session_expires, '1283218372187', '!desktop expires correct';
is $api->secret, '23489234289342389', '!desktop secret unchanged';
eval { $auth->login; };
ok $@, q{can't use login with web app};
$api->desktop(1);
if ($^O =~ /darwin|MSWin/ ) {
diag q{Sleeping for a bit (so don't fret)...};
is $auth->login, '3e4a22bb2f5ed75114b0fc9995ea85f1', 'login default sleep ok';
}
else {
eval { $auth->login; };
diag $@;
like $@, qr/open browser/, 'login default can\'t open browser';
}
my $start_time = time;
is $auth->login( sleep => 1, browser => 'dummy' ), '4358934543983b234c4389ef45489456', 'login set sleep ok';
ok time() - $start_time, 'did sleep';
ok $auth->can('logout'), 'logout works';
__DATA__
"3e4a22bb2f5ed75114b0fc9995ea85f1"
{"session_key":"5f34e11bfb97c762e439e6a5-8055","uid":"8055","expires":1173309298,"secret":"23489234289342389"}
"4358934543983b234c4389ef45489456"
{"session_key":"3453498345945943ca343834-4323","uid":"34333","expires":1283218372187,"secret":"344893458934598"}
"3e4a22bb2f5ed75114b0fc9995ea85f1"
"4358934543983b234c4389ef45489456"