ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/03_http_req.t
Revision: 1.11
Committed: Fri Jul 24 22:47:04 2009 UTC (14 years, 11 months ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-4_91, rel-5_112, rel-5_251, rel-5_261, rel-5_271, rel-5_28, rel-5_29, rel-5_21, rel-5_22, rel-5_23, rel-5_24, rel-5_26, rel-5_27, rel-5_1, rel-5_0, rel-5_2, rel-5_201, rel-5_202, rel-5_111, rel-4_881, rel-4_9, rel-5_01, rel-4_88, rel-5_11, rel-5_12
Changes since 1.10: +29 -35 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 elmex 1.1 #!/opt/perl/bin/perl
2 root 1.7
3 elmex 1.1 use strict;
4 root 1.7
5 root 1.3 use AnyEvent::Impl::Perl;
6 elmex 1.1 use AnyEvent;
7 root 1.8 use AnyEvent::Socket;
8 root 1.7 use AnyEvent::Handle;
9 elmex 1.1
10 elmex 1.2 unless ($ENV{PERL_ANYEVENT_NET_TESTS}) {
11 elmex 1.6 print "1..0 # Skip PERL_ANYEVENT_NET_TESTS environment variable not set\n";
12 elmex 1.2 exit 0;
13     }
14    
15 elmex 1.6 print "1..2\n";
16 elmex 1.2
17 elmex 1.1 my $cv = AnyEvent->condvar;
18    
19     my $rbytes;
20    
21 root 1.11 my $hdl; $hdl =
22     AnyEvent::Handle->new (
23     connect => ['www.google.com', 80],
24     on_error => sub {
25     warn "socket error: $!";
26     $cv->broadcast;
27     },
28     on_eof => sub {
29     my ($hdl) = @_;
30 elmex 1.6
31 root 1.11 if ($rbytes !~ /<\/html>/i) {
32     print "not ";
33 elmex 1.6 }
34    
35 root 1.11 print "ok 2 - received HTML page\n";
36 elmex 1.1
37 root 1.11 $cv->broadcast;
38 elmex 1.1 }
39 root 1.11 );
40 elmex 1.6
41 root 1.11 $hdl->push_read (chunk => 10, sub {
42     my ($hdl, $data) = @_;
43 elmex 1.6
44 root 1.11 unless (substr ($data, 0, 4) eq 'HTTP') {
45     print "not ";
46     }
47    
48     print "ok 1 - received 'HTTP'\n";
49    
50     $hdl->on_read (sub {
51     my ($hdl) = @_;
52     $rbytes .= $hdl->rbuf;
53     $hdl->rbuf = '';
54     return 1;
55 elmex 1.6 });
56 root 1.11 });
57 elmex 1.6
58 root 1.11 $hdl->push_write ("GET http://www.google.com/ HTTP/1.0\015\012\015\012");
59 elmex 1.1
60     $cv->wait;