This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade HTTP::Tiny from version 0.34 o 0.35
authorSteve Hay <steve.m.hay@googlemail.com>
Tue, 10 Sep 2013 21:17:55 +0000 (22:17 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Tue, 10 Sep 2013 21:17:55 +0000 (22:17 +0100)
EXCLUDE t/00-compile.t, which has been rewritten and no longer works in
core. (Other t/00-compile.t files from the same CPAN author are already
EXCLUDED.)

MANIFEST
Porting/Maintainers.pl
cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
cpan/HTTP-Tiny/t/00-compile.t [deleted file]
cpan/HTTP-Tiny/t/150_post_form.t
cpan/HTTP-Tiny/t/cases/form-03.txt
cpan/HTTP-Tiny/t/cases/form-05.txt [new file with mode: 0644]
pod/perldelta.pod

index 6541f67..8e16f93 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1142,7 +1142,6 @@ cpan/HTTP-Tiny/t/000_load.t
 cpan/HTTP-Tiny/t/001_api.t
 cpan/HTTP-Tiny/t/002_croakage.t
 cpan/HTTP-Tiny/t/003_agent.t
-cpan/HTTP-Tiny/t/00-compile.t
 cpan/HTTP-Tiny/t/010_url.t
 cpan/HTTP-Tiny/t/020_headers.t
 cpan/HTTP-Tiny/t/030_response.t
@@ -1178,6 +1177,7 @@ cpan/HTTP-Tiny/t/cases/form-01.txt
 cpan/HTTP-Tiny/t/cases/form-02.txt
 cpan/HTTP-Tiny/t/cases/form-03.txt
 cpan/HTTP-Tiny/t/cases/form-04.txt
+cpan/HTTP-Tiny/t/cases/form-05.txt
 cpan/HTTP-Tiny/t/cases/get-01.txt
 cpan/HTTP-Tiny/t/cases/get-02.txt
 cpan/HTTP-Tiny/t/cases/get-03.txt
index 7ccfc34..96e185c 100755 (executable)
@@ -935,9 +935,11 @@ use File::Glob qw(:case);
 
     'HTTP::Tiny' => {
         'MAINTAINER'   => 'dagolden',
-        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.034.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.035.tar.gz',
         'FILES'        => q[cpan/HTTP-Tiny],
         'EXCLUDED'     => [
+            'cpanfile',
+            't/00-compile.t',
             't/00-report-prereqs.t',
             't/200_live.t',
             't/200_live_local_ip.t',
index 30ef26c..8932b19 100644 (file)
@@ -3,7 +3,7 @@ package HTTP::Tiny;
 use strict;
 use warnings;
 # ABSTRACT: A small, simple, correct HTTP/1.1 client
-our $VERSION = '0.034'; # VERSION
+our $VERSION = '0.035'; # VERSION
 
 use Carp ();
 
@@ -189,7 +189,7 @@ sub www_form_urlencode {
         }
     }
 
-    return join("&", sort @terms);
+    return join("&", (ref $data eq 'ARRAY') ? (@terms) : (sort @terms) );
 }
 
 #--------------------------------------------------------------------------#
@@ -1008,7 +1008,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
 
 =head1 VERSION
 
-version 0.034
+version 0.035
 
 =head1 SYNOPSIS
 
@@ -1142,7 +1142,9 @@ The C<success> field of the response will be true if the status code is 2XX.
 
 This method executes a C<POST> request and sends the key/value pairs from a
 form data hash or array reference to the given URL with a C<content-type> of
-C<application/x-www-form-urlencoded>.  See documentation for the
+C<application/x-www-form-urlencoded>.  If data is provided as an array
+reference, the order is preserved; if provided as a hash reference, the terms
+are sorted on key and value for consistency.  See documentation for the
 C<www_form_urlencode> method for details on the encoding.
 
 The URL must have unsafe characters escaped and international domain names
@@ -1299,8 +1301,10 @@ This method converts the key/value pairs from a data hash or array reference
 into a C<x-www-form-urlencoded> string.  The keys and values from the data
 reference will be UTF-8 encoded and escaped per RFC 3986.  If a value is an
 array reference, the key will be repeated with each of the values of the array
-reference.  The key/value pairs in the resulting string will be sorted by key
-and value.
+reference.  If data is provided as a hash reference, the key/value pairs in the
+resulting string will be sorted by key and value for consistent ordering.
+
+To preserve the order (r
 
 =for Pod::Coverage agent
 cookie_jar
diff --git a/cpan/HTTP-Tiny/t/00-compile.t b/cpan/HTTP-Tiny/t/00-compile.t
deleted file mode 100644 (file)
index 6454c82..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More;
-
-
-
-use File::Find;
-use File::Temp qw{ tempdir };
-
-my @modules;
-find(
-  sub {
-    return if $File::Find::name !~ /\.pm\z/;
-    my $found = $File::Find::name;
-    $found =~ s{^lib/}{};
-    $found =~ s{[/\\]}{::}g;
-    $found =~ s/\.pm$//;
-    # nothing to skip
-    push @modules, $found;
-  },
-  'lib',
-);
-
-sub _find_scripts {
-    my $dir = shift @_;
-
-    my @found_scripts = ();
-    find(
-      sub {
-        return unless -f;
-        my $found = $File::Find::name;
-        # nothing to skip
-        open my $FH, '<', $_ or do {
-          note( "Unable to open $found in ( $! ), skipping" );
-          return;
-        };
-        my $shebang = <$FH>;
-        return unless $shebang =~ /^#!.*?\bperl\b\s*$/;
-        push @found_scripts, $found;
-      },
-      $dir,
-    );
-
-    return @found_scripts;
-}
-
-my @scripts;
-do { push @scripts, _find_scripts($_) if -d $_ }
-    for qw{ bin script scripts };
-
-my $plan = scalar(@modules) + scalar(@scripts);
-$plan ? (plan tests => $plan) : (plan skip_all => "no tests to run");
-
-{
-    # fake home for cpan-testers
-     local $ENV{HOME} = tempdir( CLEANUP => 1 );
-
-    like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
-        for sort @modules;
-
-    SKIP: {
-        eval "use Test::Script 1.05; 1;";
-        skip "Test::Script needed to test script compilation", scalar(@scripts) if $@;
-        foreach my $file ( @scripts ) {
-            my $script = $file;
-            $script =~ s!.*/!!;
-            script_compiles( $file, "$script script compiles" );
-        }
-    }
-
-}
index f9fbd17..c1c2318 100644 (file)
@@ -33,7 +33,7 @@ for my $file ( dir_list("t/cases", qr/^form/ ) ) {
 
   my @params = split "\\|", $case->{content}[0];
   my $formdata;
-  if ( $case->{datatype} eq 'HASH' ) {
+  if ( $case->{datatype}[0] eq 'HASH' ) {
     while ( @params ) {
       my ($key, $value) = splice( @params, 0, 2 );
       if ( ref $formdata->{$key} ) {
@@ -66,6 +66,7 @@ for my $file ( dir_list("t/cases", qr/^form/ ) ) {
 
   my $label = basename($file);
 
+
   is( sort_headers($got_req), sort_headers($expect_req), "$label request" );
 
   my ($rc) = $give_res =~ m{\S+\s+(\d+)}g;
index b6dcd47..101224d 100644 (file)
@@ -3,7 +3,7 @@ url
 content
   bar|baz|ack|foo
 datatype
-  ARRAY 
+  HASH
 ----------
 POST /new HTTP/1.1
 Host: example.com
diff --git a/cpan/HTTP-Tiny/t/cases/form-05.txt b/cpan/HTTP-Tiny/t/cases/form-05.txt
new file mode 100644 (file)
index 0000000..825604f
--- /dev/null
@@ -0,0 +1,21 @@
+url
+  http://example.com/new
+content
+  bar|baz|ack|foo
+datatype
+  ARRAY 
+----------
+POST /new HTTP/1.1
+Host: example.com
+Connection: close
+User-Agent: HTTP-Tiny/VERSION
+Content-Type: application/x-www-form-urlencoded
+Content-Length: 15
+
+bar=baz&ack=foo
+----------
+HTTP/1.1 201 Created
+Date: Thu, 03 Feb 1994 00:00:00 GMT
+Location: http://example.com/new/01.txt
+Content-Length: 0
+
index 3f23a43..bac7a8e 100644 (file)
@@ -267,6 +267,14 @@ supplied pattern has an internal NUL (C<"\0">) character.
 
 =item *
 
+L<HTTP::Tiny> has been upgraded from version 0.34 to 0.35.
+
+Encoded data from C<post_form> now preserves term order if data is provided as
+an array reference.  (They are still sorted for consistency if provided as a
+hash reference.)
+
+=item *
+
 L<I18N::LangTags> has been upgraded from version 0.39 to 0.40.
 
 Bosnian has now joined Croatian and Serbian in the lists of mutually