summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-02-24 20:49:45 -0600
committerJesse Luehrs <doy@tozt.net>2010-02-24 22:42:36 -0600
commitf0a9c930a9e16efb964190cdb9059610668b098e (patch)
tree47807e9b4196e0651b19fe2d6bcdea153bf7c322 /t
parenta790934e884df4a265c100835a55324936d1042a (diff)
downloadlocale-pofilemanager-f0a9c930a9e16efb964190cdb9059610668b098e.tar.gz
locale-pofilemanager-f0a9c930a9e16efb964190cdb9059610668b098e.zip
pretty major rewrite, now based on Locale::Maketext::Lexicon
Diffstat (limited to 't')
-rw-r--r--t/001-basic.t19
-rw-r--r--t/002-create.t49
-rw-r--r--t/data/001/de.po1
-rw-r--r--t/data/001/ru.po1
4 files changed, 51 insertions, 19 deletions
diff --git a/t/001-basic.t b/t/001-basic.t
index 05e9299..6bda558 100644
--- a/t/001-basic.t
+++ b/t/001-basic.t
@@ -8,6 +8,16 @@ use Path::Class;
use Locale::POFileManager;
+sub header_is {
+ my ($got, $expected) = @_;
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ my @got = split /\n/, $got, -1;
+ my @expected = split /\n/, $expected, -1;
+ is_deeply([@got[0..1], sort @got[2..$#got]],
+ [@expected[0..1], sort @expected[2..$#expected]],
+ "got the right header");
+}
+
{
my $manager = Locale::POFileManager->new(
base_dir => 't/data/001',
@@ -34,7 +44,7 @@ use Locale::POFileManager;
{ru => [], hi => [], en => [], de => []},
"got the correct missing messages");
- my $header = <<'HEADER';
+ my $expected_header = <<'HEADER';
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
@@ -46,7 +56,7 @@ HEADER
my %langs = (
en => qq{msgid "foo"\nmsgstr "foo"\n\n}
. qq{msgid "bar"\nmsgstr "bar"\n\n}
- . qq{msgid "baz"\nmsgstr "baz"\n\n},
+ . qq{msgid "baz"\nmsgstr "baz"\n},
ru => qq{msgid "foo"\nmsgstr "foo"\n\n}
. qq{msgid "bar"\n\n}
. qq{msgid "baz"\n\n},
@@ -59,7 +69,10 @@ HEADER
);
for my $file ($manager->files) {
- is($file->file->slurp, $header . $langs{$file->language},
+ my $contents = $file->file->slurp;
+ my ($header, $data) = ($contents =~ /^(.*?\n\n)(.*)$/s);
+ header_is($header, $expected_header);
+ is($data, $langs{$file->language},
"got the right stubs");
}
}
diff --git a/t/002-create.t b/t/002-create.t
index 13a6611..92ec881 100644
--- a/t/002-create.t
+++ b/t/002-create.t
@@ -8,6 +8,16 @@ use Path::Class;
use Locale::POFileManager;
+sub header_is {
+ my ($got, $expected) = @_;
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+ my @got = split /\n/, $got, -1;
+ my @expected = split /\n/, $expected, -1;
+ is_deeply([@got[0..1], sort @got[2..$#got]],
+ [@expected[0..1], sort @expected[2..$#expected]],
+ "got the right header");
+}
+
{
my $dir = File::Temp->newdir;
my $from_dir = dir('t/data/002');
@@ -15,8 +25,8 @@ use Locale::POFileManager;
for my $file ($from_dir->children) {
copy($file->stringify, $dir->dirname);
}
- my $header = $tmpdir->file('en.po')->slurp;
- $header =~ s/\n\n.*/\n\n/s;
+ my $expected_header = $tmpdir->file('en.po')->slurp;
+ $expected_header =~ s/\n\n.*/\n\n/s;
my $manager = Locale::POFileManager->new(
base_dir => $dir->dirname,
@@ -34,8 +44,7 @@ use Locale::POFileManager;
"correct directory contents after creation");
for my $lang (qw(ru hi)) {
- is($tmpdir->file("$lang.po")->slurp, $header,
- "got the right header in $lang.po");
+ header_is(scalar($tmpdir->file("$lang.po")->slurp), $expected_header);
}
$manager->language_file('ru')->add_entry(
@@ -45,7 +54,7 @@ use Locale::POFileManager;
is_deeply([sort $manager->language_file('ru')->msgids],
['', qw(baz)],
"created new entry successfully");
- is($manager->language_file('ru')->entry_for('baz')->msgstr, '"Zab"',
+ is($manager->language_file('ru')->msgstr('baz'), 'Zab',
"correct entry created");
is_deeply([sort $manager->language_file('hi')->msgids],
@@ -61,20 +70,28 @@ use Locale::POFileManager;
}
my %langs = (
- en => qq{msgid "foo"\nmsgstr "foo"\n\n}
- . qq{msgid "bar"\nmsgstr "bar"\n\n}
- . qq{msgid "baz"\nmsgstr "baz"\n\n},
- hi => qq{msgid "foo"\n\n}
- . qq{msgid "bar"\n\n}
- . qq{msgid "baz"\n\n},
- ru => qq{msgid "baz"\nmsgstr "Zab"\n\n}
- . qq{msgid "foo"\n\n}
- . qq{msgid "bar"\n\n},
+ en => [qq{msgid "foo"\nmsgstr "foo"\n\n}
+ . qq{msgid "bar"\nmsgstr "bar"\n\n}
+ . qq{msgid "baz"\nmsgstr "baz"\n},
+ qq{}],
+ hi => [qq{},
+ qq{msgid "foo"\n\n}
+ . qq{msgid "bar"\n\n}
+ . qq{msgid "baz"\n\n}],
+ ru => [qq{msgid "baz"\nmsgstr "Zab"\n\n},
+ qq{msgid "foo"\n\n}
+ . qq{msgid "bar"\n\n}],
);
for my $lang (keys %langs) {
- is($manager->language_file($lang)->file->slurp, $header . $langs{$lang},
- "files created properly");
+ my $contents = $manager->language_file($lang)->file->slurp;
+ my ($header, $data) = ($contents =~ /^(.*?\n\n)(.*)$/s);
+ header_is($header, $expected_header);
+ my $fixed = substr($data, 0, length($langs{$lang}->[0]), '');
+ is($fixed, $langs{$lang}->[0], "existing data untouched");
+ is_deeply([sort split /\n\n/, $data],
+ [sort split /\n\n/, $langs{$lang}->[1]],
+ "correct new msgids added");
}
}
diff --git a/t/data/001/de.po b/t/data/001/de.po
index b8aa9a8..da72c60 100644
--- a/t/data/001/de.po
+++ b/t/data/001/de.po
@@ -12,3 +12,4 @@ msgstr "bar"
msgid "baz"
msgstr "baz"
+
diff --git a/t/data/001/ru.po b/t/data/001/ru.po
index 97a8e7f..3cf4e46 100644
--- a/t/data/001/ru.po
+++ b/t/data/001/ru.po
@@ -6,3 +6,4 @@ msgstr ""
msgid "foo"
msgstr "foo"
+