summaryrefslogtreecommitdiff
path: root/t/save_read_roundtrip.t
diff options
context:
space:
mode:
Diffstat (limited to 't/save_read_roundtrip.t')
-rw-r--r--t/save_read_roundtrip.t26
1 files changed, 26 insertions, 0 deletions
diff --git a/t/save_read_roundtrip.t b/t/save_read_roundtrip.t
new file mode 100644
index 0000000..a329b8e
--- /dev/null
+++ b/t/save_read_roundtrip.t
@@ -0,0 +1,26 @@
+
+use strict;
+use warnings;
+
+# Reference: RT#13158: Needs test: empty name/value, when saved, prevents proper restore from filehandle.
+# https://rt.cpan.org/Ticket/Display.html?id=13158
+
+use Test::More tests => 3;
+
+use IO::File;
+use CGI;
+
+$CGI::LIST_CONTEXT_WARN = 0;
+
+my $cgi = CGI->new('a=1;=;b=2;=3');
+ok eq_set (['a', '', 'b'], [$cgi->param]);
+
+# not File::Temp, since that wasn't in core at 5.6.0
+my $tmp = IO::File->new_tmpfile;
+$cgi->save($tmp);
+$tmp->seek(0,0);
+
+$cgi = CGI->new($tmp);
+ok eq_set (['a', '', 'b'], [$cgi->param]);
+is $cgi->param(''), 3; # '=' is lost, '=3' is retained
+