ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/03_http_req.t
(Generate patch)

Comparing AnyEvent/t/handle/03_http_req.t (file contents):
Revision 1.1 by elmex, Sun Apr 27 16:56:17 2008 UTC vs.
Revision 1.8 by root, Fri May 23 17:47:06 2008 UTC

1#!/opt/perl/bin/perl 1#!/opt/perl/bin/perl
2
2use strict; 3use strict;
3use Test::More tests => 2; 4
5use AnyEvent::Impl::Perl;
4use AnyEvent; 6use AnyEvent;
5use AnyEvent::Socket; 7use AnyEvent::Socket;
8use AnyEvent::Handle;
9
10unless ($ENV{PERL_ANYEVENT_NET_TESTS}) {
11 print "1..0 # Skip PERL_ANYEVENT_NET_TESTS environment variable not set\n";
12 exit 0;
13}
14
15print "1..2\n";
6 16
7my $cv = AnyEvent->condvar; 17my $cv = AnyEvent->condvar;
8 18
9my $fbytes;
10my $rbytes; 19my $rbytes;
11 20
12my $ae_sock = 21my $hdl;
22my $wo = tcp_connect 'www.google.com', 80, sub {
23 my ($sock) = @_;
24 $hdl =
13 AnyEvent::Socket->new ( 25 AnyEvent::Handle->new (
14 PeerAddr => "www.google.de:80", 26 fh => $sock,
15 on_eof => sub { $cv->broadcast },
16 on_error => sub { 27 on_error => sub {
17 my ($ae_sock) = @_; 28 warn "socket error: $!";
18 diag "error: $!";
19 $cv->broadcast 29 $cv->broadcast;
20 }, 30 },
21 on_connect => sub { 31 on_eof => sub {
22 my ($ae_sock, $error) = @_; 32 my ($hdl) = @_;
23 if ($error) { diag ("connect error: $!"); return }
24 33
25 $ae_sock->read (10, sub { 34 if ($rbytes !~ /<\/html>/i) {
26 my ($ae_sock, $data) = @_; 35 print "not ";
27 $fbytes = $data; 36 }
28 37
29 $ae_sock->on_read (sub { 38 print "ok 2 - received HTML page\n";
30 my ($ae_sock) = @_;
31 $rbytes = $ae_sock->rbuf;
32 });
33 });
34 39
35 $ae_sock->write ("GET http://www.google.de/ HTTP/1.0\015\012\015\012"); 40 $cv->broadcast
41 }
42 );
43
44 $hdl->push_read_chunk (10, sub {
45 my ($hdl, $data) = @_;
46
47 unless (substr ($data, 0, 4) eq 'HTTP') {
48 print "not ";
36 } 49 }
50
51 print "ok 1 - received 'HTTP'\n";
52
53 $hdl->on_read (sub {
54 my ($hdl) = @_;
55 $rbytes .= $hdl->rbuf;
56 $hdl->rbuf = '';
57 return 1;
58 });
37 ); 59 });
60
61 $hdl->push_write ("GET http://www.google.com/ HTTP/1.0\015\012\015\012");
62
63};
38 64
39$cv->wait; 65$cv->wait;
40
41is (substr ($fbytes, 0, 4), 'HTTP', 'first bytes began with HTTP');
42ok ($rbytes =~ /google.*<\/html>\s*$/i, 'content was retrieved successfully');

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines