Tests: handling of HTTP/2 PUSH_PROMISE frames with CONTINUATION.
diff --git a/lib/Test/Nginx/HTTP2.pm b/lib/Test/Nginx/HTTP2.pm
index 989a0d5..37debc6 100644
--- a/lib/Test/Nginx/HTTP2.pm
+++ b/lib/Test/Nginx/HTTP2.pm
@@ -438,9 +438,15 @@
 
 sub continuation {
 	my ($ctx, $buf, $len, $flags) = @_;
+	my %payload;
+
 	$ctx->{headers} .= substr($buf, 0, $len);
-	return unless $flags & 0x4;
-	{ headers => hunpack($ctx, $ctx->{headers}, length($ctx->{headers})) };
+	$payload{promised} = $ctx->{promised} if $ctx->{promised};
+	return \%payload unless $flags & 0x4;
+
+	$ctx->{promised} = undef;
+	return { %payload, headers => hunpack($ctx, $ctx->{headers},
+		length($ctx->{headers})) };
 }
 
 sub data {
@@ -464,10 +470,13 @@
 
 sub push_promise {
 	my ($ctx, $buf, $len, $flags) = @_;
+	my %payload;
 	$len -= 4;
 
-	{ promised => unpack("N", $buf),
-	  headers => hunpack($ctx, substr($buf, 4, $len), $len) };
+	$ctx->{promised} = $payload{promised} = unpack("N", $buf);
+	$ctx->{headers} = substr($buf, 4, $len);
+	return \%payload unless $flags & 0x4;
+	return { %payload, headers => hunpack($ctx, $ctx->{headers}, $len) };
 }
 
 sub ping {