1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#!/usr/bin/env perl
# Copyright (C) 2008-2010, Sebastian Riedel.
use strict;
use warnings;
use Test::More tests => 28;
# And now, in the spirit of the season: start shopping.
# And for every dollar of Krusty merchandise you buy,
# I will be nice to a sick kid.
# For legal purposes, sick kids may include hookers with a cold.
use_ok('Mojo::Asset::File');
use_ok('Mojo::Asset::Memory');
# File asset
my $file = Mojo::Asset::File->new;
$file->add_chunk('abc');
is($file->contains(''), 0, 'empty string at position 0');
is($file->contains('abc'), 0, '"abc" at position 0');
is($file->contains('bc'), 1, '"bc" at position 1');
is($file->contains('db'), -1, 'does not contain "db"');
# Memory asset
my $mem = Mojo::Asset::Memory->new;
$mem->add_chunk('abc');
is($mem->contains(''), 0, 'empty string at position 0');
is($mem->contains('abc'), 0, '"abc" at position 0');
is($mem->contains('bc'), 1, '"bc" at position 1');
is($mem->contains('db'), -1, 'does not contain "db"');
# Empty file asset
$file = Mojo::Asset::File->new;
is($file->contains(''), 0, 'empty string at position 0');
# Empty memory asset
$mem = Mojo::Asset::File->new;
is($mem->contains(''), 0, 'empty string at position 0');
# File asset range support (a[bcdef])
$file = Mojo::Asset::File->new(start_range => 1);
$file->add_chunk('abcdef');
is($file->contains(''), 0, 'empty string at position 0');
is($file->contains('bcdef'), 0, '"bcdef" at position 0');
is($file->contains('cdef'), 1, '"cdef" at position 1');
is($file->contains('db'), -1, 'does not contain "db"');
# File asset range support (ab[cdefghi]jk)
my $backup = $ENV{MOJO_CHUNK_SIZE} || '';
$ENV{MOJO_CHUNK_SIZE} = 1024;
$file = Mojo::Asset::File->new(start_range => 2, end_range => 8);
$file->add_chunk('abcdefghijk');
is($file->contains(''), 0, 'empty string at position 0');
is($file->contains('cdefghi'), 0, '"cdefghi" at position 0');
is($file->contains('fghi'), 3, '"fghi" at position 3');
is($file->contains('f'), 3, '"f" at position 3');
is($file->contains('hi'), 5, '"hi" at position 5');
is($file->contains('db'), -1, 'does not contain "db"');
my $chunk = $file->get_chunk(0);
is($chunk, 'cdefghi', 'chunk from position 0');
$chunk = $file->get_chunk(1);
is($chunk, 'defghi', 'chunk from position 1');
$chunk = $file->get_chunk(5);
is($chunk, 'hi', 'chunk from position 5');
$ENV{MOJO_CHUNK_SIZE} = 1;
$chunk = $file->get_chunk(0);
is($chunk, 'c', 'chunk from position 0 with size 1');
$chunk = $file->get_chunk(5);
is($chunk, 'h', 'chunk from position 5 with size 1');
$ENV{MOJO_CHUNK_SIZE} = $backup;
# File asset range support (empty)
$file = Mojo::Asset::File->new;
is($file->contains(''), 0, 'empty string at position 0');
|