--- AnyEvent/t/handle/03_http_req.t 2008/04/27 19:15:43 1.2 +++ AnyEvent/t/handle/03_http_req.t 2010/12/29 04:16:35 1.12 @@ -1,49 +1,60 @@ #!/opt/perl/bin/perl + use strict; -use Test::More; + use AnyEvent; +BEGIN { require AnyEvent::Impl::Perl unless $ENV{PERL_ANYEVENT_MODEL} } use AnyEvent::Socket; +use AnyEvent::Handle; unless ($ENV{PERL_ANYEVENT_NET_TESTS}) { - plan skip_all => "PERL_ANYEVENT_NET_TESTS environment variable not set"; + print "1..0 # Skip PERL_ANYEVENT_NET_TESTS environment variable not set\n"; exit 0; } -plan tests => 2; +print "1..2\n"; my $cv = AnyEvent->condvar; -my $fbytes; my $rbytes; -my $ae_sock = - AnyEvent::Socket->new ( - PeerAddr => "www.google.de:80", - on_eof => sub { $cv->broadcast }, +my $hdl; $hdl = + AnyEvent::Handle->new ( + connect => ['www.google.com', 80], on_error => sub { - my ($ae_sock) = @_; - diag "error: $!"; - $cv->broadcast + warn "socket error: $!"; + $cv->broadcast; }, - on_connect => sub { - my ($ae_sock, $error) = @_; - if ($error) { diag ("connect error: $!"); return } - - $ae_sock->read (10, sub { - my ($ae_sock, $data) = @_; - $fbytes = $data; - - $ae_sock->on_read (sub { - my ($ae_sock) = @_; - $rbytes = $ae_sock->rbuf; - }); - }); + on_eof => sub { + my ($hdl) = @_; + + if ($rbytes !~ /<\/html>/i) { + print "not "; + } + + print "ok 2 - received HTML page\n"; - $ae_sock->write ("GET http://www.google.de/ HTTP/1.0\015\012\015\012"); + $cv->broadcast; } ); -$cv->wait; +$hdl->push_read (chunk => 10, sub { + my ($hdl, $data) = @_; + + unless (substr ($data, 0, 4) eq 'HTTP') { + print "not "; + } + + print "ok 1 - received 'HTTP'\n"; + + $hdl->on_read (sub { + my ($hdl) = @_; + $rbytes .= $hdl->rbuf; + $hdl->rbuf = ''; + return 1; + }); +}); -is (substr ($fbytes, 0, 4), 'HTTP', 'first bytes began with HTTP'); -ok ($rbytes =~ /google.*<\/html>\s*$/i, 'content was retrieved successfully'); +$hdl->push_write ("GET http://www.google.com/ HTTP/1.0\015\012\015\012"); + +$cv->wait;