Data-Plist

 view release on metacpan or  search on metacpan

t/binary-load.t  view on Meta::CPAN


$ret = eval {
    $read->open_string(
        "bplist00" . pack( "CCx6CC(x4N)3", 0, 8, 1, 1, 1, 0, 7 ) );
};
ok( not($ret), "Invalid offset table address" );
like( "$@", qr/invalid offset table/i, "Threw an error" );

# Refsize is too small for NumObjects
my $string
    = do { local @ARGV = "t/data/longfile-03.binary.plist"; local $/; <> };
ok( $string, "Read from file." );
use bytes;
substr( $string, -25, 1, "\x01" );
$ret = eval { $read->open_string($string) };
ok( not($ret), "Refsize is too small for NumObjects." );
like( "$@", qr/purported number/, "Threw an error" );

### More complex testing

# Load from a file

t/binary-load.t  view on Meta::CPAN


# Load from fh
my $fh;
open( $fh, "<", "t/data/basic.binary.plist" );
$ret = $read->open_fh($fh);
ok( $ret, "Opening from a fh worked" );
isa_ok( $ret, "Data::Plist" );
ok( $ret->raw_data, "Has data inside" );

# Load from string
my $str = do { local @ARGV = "t/data/basic.binary.plist"; local $/; <> };
ok( $str, "Read binary data in by hand" );
$ret = $read->open_string($str);
ok( $ret, "Opening from a string worked" );
isa_ok( $ret, "Data::Plist" );
ok( $ret->raw_data, "Has data inside" );

# Test raw structure
is_deeply(
    $ret->raw_data,
    [   dict => {

t/binary-write.t  view on Meta::CPAN

like( $@, qr/can't/i, "Threw an error." );

# Large files
files("t/data/bigfile-01.binary.plist");
files("t/data/bigfile-02.binary.plist");

sub files {
    my $write      = Data::Plist::BinaryWriter->new( serialize => 0 );
    my $read       = Data::Plist::BinaryReader->new;
    my ($filename) = @_;
    my $str        = do { local @ARGV = $filename; local $/; <> };
    my $output;
    ok( $str, "Read binary data in by hand" );
    $output = eval { $read->open_string($str) };
    ok( $output, "Opening from a string worked" );
    isa_ok( $output, "Data::Plist" );
    $output = $output->raw_data;
    ok( $output, "Has data inside" );
    my $orig = $write->write($output);
    ok( $orig, "Created data structure" );
    like( $orig, qr/^bplist00/, "Bplist begins with correct header" );



( run in 1.145 second using v1.01-cache-2.11-cpan-49f99fa48dc )