HTTP-StructuredFieldValues
view release on metacpan or search on metacpan
t/generated/display-string.t view on Meta::CPAN
diag("Expected: ", explain($canonical));
diag("Input was: ", explain($expected));
};
}
};
# Test 13: bad display string escaping
{
my $test_name = 'bad display string escaping - must fail';
my $input = "%\"foo %a";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 14: bad display string utf-8 (invalid 2-byte seq)
{
my $test_name = 'bad display string utf-8 (invalid 2-byte seq) - must fail';
my $input = "%\"%c3%28\"";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 15: bad display string utf-8 (invalid sequence id)
{
my $test_name = 'bad display string utf-8 (invalid sequence id) - must fail';
my $input = "%\"%a0%a1\"";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 16: bad display string utf-8 (invalid hex)
{
my $test_name = 'bad display string utf-8 (invalid hex) - must fail';
my $input = "%\"%g0%1w\"";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 17: bad display string utf-8 (invalid 3-byte seq)
{
my $test_name = 'bad display string utf-8 (invalid 3-byte seq) - must fail';
my $input = "%\"%e2%28%a1\"";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 18: bad display string utf-8 (invalid 4-byte seq)
{
my $test_name = 'bad display string utf-8 (invalid 4-byte seq) - must fail';
my $input = "%\"%f0%28%8c%28\"";
eval { decode_item($input); };
ok($@, $test_name) or diag("Expected failure but got success");
}
# Test 19: BOM in display string
subtest "BOM in display string" => sub {
my $test_name = "BOM in display string";
my $input = "%\"BOM: %ef%bb%bf\"";
my $expected = { _type => 'displaystring', value => 'BOM: ' };
my $canonical = $input;
my $result = eval { decode_item($input); };
if ($@) {
fail($test_name);
diag("Decode error: $@");
diag("Input was: $input");
} else {
is_deeply($result, $expected, $test_name) or do {
diag("Got: ", explain($result));
diag("Expected: ", explain($expected));
diag("Input was: ", $input);
};
}
$result = eval { encode($expected); };
if ($@) {
fail($test_name);
diag("Encode error:", $@);
diag("Input was: ", explain($expected));
} else {
is($result, $canonical, $test_name) or do {
diag("Got: ", explain($result));
diag("Expected: ", explain($canonical));
diag("Input was: ", explain($expected));
};
}
};
# Test 20: two lines display string
{
my $test_name = 'two lines display string - can fail';
my $input = "%\"foo,bar\"";
eval { decode_item($input); };
pass($test_name); # Can fail tests always pass
}
( run in 1.704 second using v1.01-cache-2.11-cpan-13bb782fe5a )