The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test::More;
use Plack::Test;
use Plack::Builder;
use HTTP::Request;

my $app = builder {
	enable 'SuppressResponseCodes';
	sub { [ substr($_[0]->{PATH_INFO},1), [], [] ] };
};

test_psgi $app, sub {
	my $cb = shift;

	foreach my $code (400,500) {
		foreach my $url (
			"/$code", 
			"/$code?suppress_response_codes=0",
			"/$code?suppress_response_codes=false") {
			my $res = $cb->(HTTP::Request->new(GET => $url));
			is $res->code, $code, 'not suppressed';
		}
		foreach my $url (
#			"/$code?suppress_response_codes", 
#			"/$code?foo=bar&suppress_response_codes=", 
			"/$code?suppress_response_codes=1") {
			my $res = $cb->(HTTP::Request->new(GET => $url));
			is $res->code, 200, 'suppressed';
		}
	}

	foreach my $code (100,200,300) {
		my $res = $cb->(HTTP::Request->new(GET => "/$code?suppress_response_code"));
		is $res->code, $code, 'no error';
	}
};

done_testing;