blob: 38889f23a04393e6dfa7b3bf0d0349a9cd1d3565 [file] [log] [blame]
#!perl
use strict;
use lib qw(..);
use Test::More;
use FlashVideo::Utils;
use URI;
my @media_file_extensions = qw(flv mp4 mov wmv avi m4v);
my @test_data = (
{
title => 'Snakes on a plane',
expected_filename => 'Snakes_on_a_plane.flv',
test_name => 'Default .flv extension used.',
},
{
title => 'Consecutive spaces',
expected_filename => 'Consecutive_spaces.flv',
test_name => 'Consecutive spaces collapsed to single space.',
},
# Extracting file type from URL
(map {
{
title => 'Snakes on a plane',
expected_filename => "Snakes_on_a_plane.$_",
test_name => "File type ($_) detected from URL.",
type => "http://example.com/snakes_on_a_plane.$_",
},
} @media_file_extensions),
# Extracting file type from title
(map {
{
title => "Snakes on a plane.$_",
expected_filename => "Snakes_on_a_plane.$_",
test_name => "File type ($_) detected from title.",
},
} @media_file_extensions),
{
title => ' Ugly ',
expected_filename => 'Ugly.flv',
test_name => 'Spaces at start and end of filename removed.',
},
{
title => 'Invalid /" chars',
expected_filename => 'Invalid____chars.flv',
test_name => 'Invalid chars removed.',
},
{
title => 'Test subtitles file',
type => 'srt',
expected_filename => 'Test_subtitles_file.srt',
test_name => 'Manually-supplied type/extension works (subtitle support).',
},
);
plan tests => scalar @test_data;
foreach my $test (@test_data) {
my $filename = title_to_filename(
$test->{title},
$test->{type},
);
is($filename, $test->{expected_filename}, $test->{test_name});
}