Audio-Scrobbler2
view release on metacpan or search on metacpan
t/010_api.t view on Meta::CPAN
method => 'POST',
url => 'https://ws.audioscrobbler.com/2.0/',
},
'now-playing POST keeps Unicode values and exact signature',
);
is(
$http->{encoded_forms}[0],
'api_key=key'
. '&api_sig=899f569545184a75096e2a05af0f6417'
. '&artist=%D0%91%D0%B8-2'
. '&format=json'
. '&method=track.updateNowPlaying'
. '&sk=session'
. '&track=Metsat%C3%B6ll',
'POST form values are UTF-8 encoded',
);
$http->enqueue(successful_response({scrobbles => {accepted => 1}}));
is_deeply(
$client->track_scrobble('Ðи-2', 'Metsatöll', 1_700_000_000),
{scrobbles => {accepted => 1}},
'track_scrobble returns decoded JSON',
);
is_deeply(
$http->{calls}[3],
{
form => {
api_key => 'key',
api_sig => 'f37bea080e9e5c68c56ffb49c5da7cb4',
artist => 'Ðи-2',
format => 'json',
method => 'track.scrobble',
sk => 'session',
timestamp => 1_700_000_000,
track => 'Metsatöll',
},
method => 'POST',
url => 'https://ws.audioscrobbler.com/2.0/',
},
'scrobble POST preserves the supplied start timestamp',
);
$http->enqueue(successful_response({ok => 1}));
$client->_request({
artist => 'Ðи-2',
method => 'test.get',
track => 'Metsatöll',
});
is(
$http->{calls}[4]{url},
'https://ws.audioscrobbler.com/2.0/'
. '?artist=%D0%91%D0%B8-2'
. '&format=json'
. '&method=test.get'
. '&track=Metsat%C3%B6ll',
'GET query values are UTF-8 encoded',
);
my $real_client = Audio::Scrobbler2->new('key', 'secret');
is($real_client->{http}->agent, 'Audio-Scrobbler2/1.00', 'client identifies itself');
is($real_client->{http}->keep_alive, 1, 'client enables keep-alive');
is($real_client->{http}->timeout, 30, 'client uses a 30 second timeout');
is($real_client->{http}->verify_SSL, 1, 'client verifies TLS certificates');
done_testing;
( run in 2.959 seconds using v1.01-cache-2.11-cpan-14f38c9f855 )