Skip to content

Commit

Permalink
Adding announce and announce-list tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sanko committed Sep 17, 2010
1 parent 73cb81c commit 4e8cc41
Show file tree
Hide file tree
Showing 3 changed files with 158 additions and 0 deletions.
2 changes: 2 additions & 0 deletions MANIFEST
Expand Up @@ -65,6 +65,8 @@ t/10000_by_class/Net/BitTorrent/Protocol/BEP03/Peer/Incoming.t
t/10000_by_class/Net/BitTorrent/Protocol/BEP03/Peer/Outgoing.t t/10000_by_class/Net/BitTorrent/Protocol/BEP03/Peer/Outgoing.t
t/10000_by_class/Net/BitTorrent/Storage/File.t t/10000_by_class/Net/BitTorrent/Storage/File.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator.t t/10000_by_class/Net/BitTorrent/Torrent/Generator.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator_announce.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator_announce_list.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator_multiple_files.t t/10000_by_class/Net/BitTorrent/Torrent/Generator_multiple_files.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator_piece_length.t t/10000_by_class/Net/BitTorrent/Torrent/Generator_piece_length.t
t/10000_by_class/Net/BitTorrent/Torrent/Generator_single_file.t t/10000_by_class/Net/BitTorrent/Torrent/Generator_single_file.t
Expand Down
66 changes: 66 additions & 0 deletions t/10000_by_class/Net/BitTorrent/Torrent/Generator_announce.t
@@ -0,0 +1,66 @@
package t::10000_by_class::Net::BitTorrent::Torrent::Generator_announce;
{
use strict;
use warnings;
use 5.010.000;
use Test::Most;
use lib '../', '../../../../../', '../../../../../lib', 'lib';
use Net::BitTorrent::Torrent::Generator;

BEGIN {
require
't/10000_by_class/Net/BitTorrent/Torrent/Generator_multiple_files.t';
}
use parent-norequire,
't::10000_by_class::Net::BitTorrent::Torrent::Generator_multiple_files';
$|++;

sub _200_api : Test( 4 ) {
my $s = shift;
ok !$s->{'torrent'}->_has_announce, 'no default announce URL';
$s->{'torrent'}->_set_announce('http://example.com/announce.pl?');
is $s->{'torrent'}->announce, 'http://example.com/announce.pl?',
'setting announce works';
ok $s->{'torrent'}->_has_announce, 'announce URL is now defined';
is $s->{'torrent'}->info_hash->to_Hex,
$s->info_hash,
'info_hash should not have changed';
}

#
#$ENV{'TEST_VERBOSE'}++;
__PACKAGE__->runtests() if !caller;
}
1;

=pod
=head1 Author
Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/
CPAN ID: SANKO
=head1 License and Legal
Copyright (C) 2008-2010 by Sanko Robinson <sanko@cpan.org>
This program is free software; you can redistribute it and/or modify it under
the terms of
L<The Artistic License 2.0|http://www.perlfoundation.org/artistic_license_2_0>.
See the F<LICENSE> file included with this distribution or
L<notes on the Artistic License 2.0|http://www.perlfoundation.org/artistic_2_0_notes>
for clarification.
When separated from the distribution, all original POD documentation is
covered by the
L<Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/us/legalcode>.
See the
L<clarification of the CCA-SA3.0|http://creativecommons.org/licenses/by-sa/3.0/us/>.
Neither this module nor the L<Author|/Author> is affiliated with BitTorrent,
Inc.
=for rcs $Id$
=cut
90 changes: 90 additions & 0 deletions t/10000_by_class/Net/BitTorrent/Torrent/Generator_announce_list.t
@@ -0,0 +1,90 @@
package t::10000_by_class::Net::BitTorrent::Torrent::Generator_announce_list;
{
use strict;
use warnings;
use 5.010.000;
use Test::Most;
use lib '../', '../../../../../', '../../../../../lib', 'lib';
use Net::BitTorrent::Torrent::Generator;

BEGIN {
require
't/10000_by_class/Net/BitTorrent/Torrent/Generator_multiple_files.t';
}
use parent-norequire,
't::10000_by_class::Net::BitTorrent::Torrent::Generator_multiple_files';
$|++;

sub _200_api : Test( 8 ) {
my $s = shift;
ok !$s->{'torrent'}->_has_announce_list, 'no default announce-list';
$s->{'torrent'}->_add_tier(['http://example.com/announce.pl?']);
is_deeply $s->{'torrent'}->announce_list,
[['http://example.com/announce.pl?']], 'adding a new tier worked';
$s->{'torrent'}->_add_tier(['http://example.com/announce.pl?test',
'udp://example.com/announce.php?id=what^'
]
);
is_deeply $s->{'torrent'}->announce_list,
[['http://example.com/announce.pl?'],
['http://example.com/announce.pl?test',
'udp://example.com/announce.php?id=what^'
]
],
'adding a second tier worked';
is_deeply $s->{'torrent'}->_get_tier(1),
['http://example.com/announce.pl?test',
'udp://example.com/announce.php?id=what^'
],
'getting the second tier worked';
ok $s->{'torrent'}->_del_tier(0), 'delete tier';
is_deeply $s->{'torrent'}->announce_list,
[['http://example.com/announce.pl?test',
'udp://example.com/announce.php?id=what^'
]
],
'first tier was removed';
ok $s->{'torrent'}->_has_announce_list,
'announce-list is now defined';
is $s->{'torrent'}->info_hash->to_Hex,
$s->info_hash,
'info_hash should not have changed';
}

#
#$ENV{'TEST_VERBOSE'}++;
__PACKAGE__->runtests() if !caller;
}
1;

=pod
=head1 Author
Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/
CPAN ID: SANKO
=head1 License and Legal
Copyright (C) 2008-2010 by Sanko Robinson <sanko@cpan.org>
This program is free software; you can redistribute it and/or modify it under
the terms of
L<The Artistic License 2.0|http://www.perlfoundation.org/artistic_license_2_0>.
See the F<LICENSE> file included with this distribution or
L<notes on the Artistic License 2.0|http://www.perlfoundation.org/artistic_2_0_notes>
for clarification.
When separated from the distribution, all original POD documentation is
covered by the
L<Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/us/legalcode>.
See the
L<clarification of the CCA-SA3.0|http://creativecommons.org/licenses/by-sa/3.0/us/>.
Neither this module nor the L<Author|/Author> is affiliated with BitTorrent,
Inc.
=for rcs $Id$
=cut

0 comments on commit 4e8cc41

Please sign in to comment.