8 use HTTP::Request::Common qw(POST);
10 my $m = HTTP::Message->new;
12 ok(ref($m->headers), "HTTP::Headers");
13 ok($m->headers_as_string, "");
16 ok($m->as_string, "\n");
18 my $m_clone = $m->clone;
19 $m->push_header("Foo", 1);
20 $m->add_content("foo");
22 ok($m_clone->as_string, "\n");
23 ok($m->headers_as_string, "Foo: 1\n");
24 ok($m->header("Foo"), 1);
25 ok($m->as_string, "Foo: 1\n\nfoo\n");
26 ok($m->as_string("\r\n"), "Foo: 1\r\n\r\nfoo");
29 $m->content_type("message/foo");
39 my @parts = $m->parts;
42 ok(ref($m2), "HTTP::Message");
44 ok($m2->header("h1"), 1);
45 ok($m2->header("h2"), "2\n 3");
46 ok($m2->header("h3"), " abc");
47 ok($m2->content, "FooBar\n");
48 ok($m2->as_string, $m->content);
49 ok(j($m2->parts), "");
51 $m = POST("http://www.example.com",
52 Content_Type => 'form-data',
53 Content => [ foo => 1, bar => 2 ]);
54 ok($m->content_type, "multipart/form-data");
57 ok($parts[0]->header("Content-Disposition"), 'form-data; name="foo"');
58 ok($parts[0]->content, 1);
59 ok($parts[1]->header("Content-Disposition"), 'form-data; name="bar"');
60 ok($parts[1]->content, 2);
62 $m = HTTP::Message->new;
63 $m->content_type("message/http");
73 ok($parts[0]->method, "GET");
74 ok($parts[0]->uri, "/");
75 ok($parts[0]->protocol, "HTTP/1.0");
76 ok($parts[0]->header("Host"), "example.com");
77 ok($parts[0]->content, "How is this?\n");
79 $m = HTTP::Message->new;
80 $m->content_type("message/http");
83 Content-Type : text/html
90 ok($parts[0]->code, 200);
91 ok($parts[0]->message, "OK");
92 ok($parts[0]->protocol, "HTTP/1.1");
93 ok($parts[0]->content_type, "text/html");
94 ok($parts[0]->content, "<H1>Hello world!</H1>\n");
96 $m->parts(HTTP::Request->new("GET", "http://www.example.com"));
97 ok($m->as_string, "Content-Type: message/http\n\nGET http://www.example.com\r\n\r\n");
99 $m = HTTP::Request->new("PUT", "http://www.example.com");
100 $m->parts(HTTP::Message->new([Foo => 1], "abc\n"));
101 ok($m->as_string, <<EOT);
102 PUT http://www.example.com
103 Content-Type: multipart/mixed; boundary=xYzZY
113 sub j { join(":", @_) }