xref: /openbsd/gnu/usr.bin/perl/cpan/Encode/t/Encoder.t (revision 3d61058a)
1b39c5158Smillert#
2*3d61058aSafresh1# $Id: Encoder.t,v 2.2 2023/11/10 01:10:50 dankogai Exp $
3b39c5158Smillert#
4b39c5158Smillert
5b39c5158SmillertBEGIN {
6*3d61058aSafresh1    require Config; Config->import();
7b39c5158Smillert    if ($Config{'extensions'} !~ /\bEncode\b/) {
8b39c5158Smillert      print "1..0 # Skip: Encode was not built\n";
9b39c5158Smillert      exit 0;
10b39c5158Smillert    }
11b39c5158Smillert    $| = 1;
12b39c5158Smillert}
13b39c5158Smillert
14b39c5158Smillertuse strict;
15b39c5158Smillert#use Test::More 'no_plan';
16b39c5158Smillertuse Test::More tests => 516;
17b39c5158Smillertuse Encode::Encoder qw(encoder);
18b39c5158Smillertuse MIME::Base64;
19b39c5158Smillertpackage Encode::Base64;
20e5157e49Safresh1use parent 'Encode::Encoding';
21b39c5158Smillert__PACKAGE__->Define('base64');
22b39c5158Smillertuse MIME::Base64;
23b39c5158Smillertsub encode{
24b39c5158Smillert    my ($obj, $data) = @_;
25b39c5158Smillert    return encode_base64($data);
26b39c5158Smillert}
27b39c5158Smillertsub decode{
28b39c5158Smillert    my ($obj, $data) = @_;
29b39c5158Smillert    return decode_base64($data);
30b39c5158Smillert}
31b39c5158Smillert
32b39c5158Smillertpackage main;
33b39c5158Smillert
34b39c5158Smillertmy $e = encoder("foo", "ascii");
35b39c5158Smillertok ($e->data("bar"));
36b39c5158Smillertis ($e->data, "bar");
37b39c5158Smillertok ($e->encoding("latin1"));
38b39c5158Smillertis ($e->encoding, "iso-8859-1");
39b39c5158Smillert
40b39c5158Smillertmy $data = '';
41b39c5158Smillertfor my $i (0..255){
42b39c5158Smillert    no warnings;
43b39c5158Smillert    $data .= chr($i);
44b39c5158Smillert    my $base64 = encode_base64($data);
45b39c5158Smillert    is(encoder($data)->base64, $base64, "encode");
46b39c5158Smillert    is(encoder($base64)->bytes('base64'), $data, "decode");
47b39c5158Smillert}
48b39c5158Smillert
49b39c5158Smillert1;
50b39c5158Smillert__END__
51