|
Lines 34-45
use_ok('Koha::Sitemapper');
Link Here
|
| 34 |
use_ok('Koha::Sitemapper::Writer'); |
34 |
use_ok('Koha::Sitemapper::Writer'); |
| 35 |
|
35 |
|
| 36 |
sub fixtures { |
36 |
sub fixtures { |
| 37 |
my ( $data ) = @_; |
37 |
my ($data) = @_; |
| 38 |
fixtures_ok [ |
38 |
fixtures_ok [ |
| 39 |
Biblio => [ |
39 |
Biblio => [ [qw/ biblionumber datecreated timestamp /], @{$data}, ], |
| 40 |
[ qw/ biblionumber datecreated timestamp / ], |
|
|
| 41 |
@{$data}, |
| 42 |
], |
| 43 |
], 'add fixtures'; |
40 |
], 'add fixtures'; |
| 44 |
return; |
41 |
return; |
| 45 |
} |
42 |
} |
|
Lines 47-52
sub fixtures {
Link Here
|
| 47 |
# Make the code in the module use our mocked Koha::Schema/Koha::Database |
44 |
# Make the code in the module use our mocked Koha::Schema/Koha::Database |
| 48 |
my $db = Test::MockModule->new('Koha::Database'); |
45 |
my $db = Test::MockModule->new('Koha::Database'); |
| 49 |
$db->mock( |
46 |
$db->mock( |
|
|
47 |
|
| 50 |
# Schema() gives us the DB connection set up by Test::DBIx::Class |
48 |
# Schema() gives us the DB connection set up by Test::DBIx::Class |
| 51 |
_new_schema => sub { return Schema(); } |
49 |
_new_schema => sub { return Schema(); } |
| 52 |
); |
50 |
); |
|
Lines 54-61
$db->mock(
Link Here
|
| 54 |
my $dir = File::Spec->tmpdir(); |
52 |
my $dir = File::Spec->tmpdir(); |
| 55 |
|
53 |
|
| 56 |
my $data = [ |
54 |
my $data = [ |
| 57 |
[ qw/ 1 2013-11-15 2013-11-15/ ], |
55 |
[qw/ 1 2013-11-15 2013-11-15/], |
| 58 |
[ qw/ 2 2015-08-31 2015-08-31/ ], |
56 |
[qw/ 2 2015-08-31 2015-08-31/], |
| 59 |
]; |
57 |
]; |
| 60 |
fixtures($data); |
58 |
fixtures($data); |
| 61 |
|
59 |
|
|
Lines 69-77
my $sitemapper = Koha::Sitemapper->new(
Link Here
|
| 69 |
$sitemapper->run(); |
67 |
$sitemapper->run(); |
| 70 |
|
68 |
|
| 71 |
my $file = "$dir/sitemapindex.xml"; |
69 |
my $file = "$dir/sitemapindex.xml"; |
| 72 |
ok( -e "$dir/sitemapindex.xml", 'File sitemapindex.xml created'); |
70 |
ok( -e "$dir/sitemapindex.xml", 'File sitemapindex.xml created' ); |
| 73 |
my $file_content = read_file($file); |
71 |
my $file_content = read_file($file); |
| 74 |
my $now = DateTime->now->ymd; |
72 |
my $now = DateTime->now->ymd; |
| 75 |
my $expected_content = <<"EOS"; |
73 |
my $expected_content = <<"EOS"; |
| 76 |
<?xml version="1.0" encoding="UTF-8"?> |
74 |
<?xml version="1.0" encoding="UTF-8"?> |
| 77 |
|
75 |
|
|
Lines 86-93
chop $expected_content;
Link Here
|
| 86 |
is( $file_content, $expected_content, 'Its content is valid' ); |
84 |
is( $file_content, $expected_content, 'Its content is valid' ); |
| 87 |
|
85 |
|
| 88 |
$file = "$dir/sitemap0001.xml"; |
86 |
$file = "$dir/sitemap0001.xml"; |
| 89 |
ok( -e $file, 'File sitemap0001.xml created'); |
87 |
ok( -e $file, 'File sitemap0001.xml created' ); |
| 90 |
$file_content = read_file($file); |
88 |
$file_content = read_file($file); |
| 91 |
$expected_content = <<"EOS"; |
89 |
$expected_content = <<"EOS"; |
| 92 |
<?xml version="1.0" encoding="UTF-8"?> |
90 |
<?xml version="1.0" encoding="UTF-8"?> |
| 93 |
|
91 |
|
|
Lines 104-110
$expected_content = <<"EOS";
Link Here
|
| 104 |
EOS |
102 |
EOS |
| 105 |
is( $file_content, $expected_content, 'Its content is valid' ); |
103 |
is( $file_content, $expected_content, 'Its content is valid' ); |
| 106 |
|
104 |
|
| 107 |
|
|
|
| 108 |
# Create a sitemap for a catalog containg 2 biblios, with option 'short url'. |
105 |
# Create a sitemap for a catalog containg 2 biblios, with option 'short url'. |
| 109 |
# Test that 2 files are created. |
106 |
# Test that 2 files are created. |
| 110 |
$sitemapper = Koha::Sitemapper->new( |
107 |
$sitemapper = Koha::Sitemapper->new( |
|
Lines 116-123
$sitemapper = Koha::Sitemapper->new(
Link Here
|
| 116 |
$sitemapper->run(); |
113 |
$sitemapper->run(); |
| 117 |
|
114 |
|
| 118 |
$file = "$dir/sitemap0001.xml"; |
115 |
$file = "$dir/sitemap0001.xml"; |
| 119 |
ok( -e $file, 'File sitemap0001.xml with short URLs created'); |
116 |
ok( -e $file, 'File sitemap0001.xml with short URLs created' ); |
| 120 |
$file_content = read_file($file); |
117 |
$file_content = read_file($file); |
| 121 |
$expected_content = <<"EOS"; |
118 |
$expected_content = <<"EOS"; |
| 122 |
<?xml version="1.0" encoding="UTF-8"?> |
119 |
<?xml version="1.0" encoding="UTF-8"?> |
| 123 |
|
120 |
|
|
Lines 138-145
is( $file_content, $expected_content, 'Its content is valid' );
Link Here
|
| 138 |
# url'. Test that 3 files are created: index file + 2 urls file with |
135 |
# url'. Test that 3 files are created: index file + 2 urls file with |
| 139 |
# respectively 50000 et 25000 urls. |
136 |
# respectively 50000 et 25000 urls. |
| 140 |
$data = []; |
137 |
$data = []; |
| 141 |
for my $count (3..75_000) { |
138 |
for my $count ( 3 .. 75_000 ) { |
| 142 |
push @{$data}, [ $count, '2015-08-31', '2015-08-31']; |
139 |
push @{$data}, [ $count, '2015-08-31', '2015-08-31' ]; |
| 143 |
} |
140 |
} |
| 144 |
fixtures($data); |
141 |
fixtures($data); |
| 145 |
$sitemapper = Koha::Sitemapper->new( |
142 |
$sitemapper = Koha::Sitemapper->new( |
|
Lines 151-158
$sitemapper = Koha::Sitemapper->new(
Link Here
|
| 151 |
$sitemapper->run(); |
148 |
$sitemapper->run(); |
| 152 |
|
149 |
|
| 153 |
$file = "$dir/sitemapindex.xml"; |
150 |
$file = "$dir/sitemapindex.xml"; |
| 154 |
ok( -e "$dir/sitemapindex.xml", 'File sitemapindex.xml for 75000 bibs created'); |
151 |
ok( -e "$dir/sitemapindex.xml", |
| 155 |
$file_content = read_file($file); |
152 |
'File sitemapindex.xml for 75000 bibs created' ); |
|
|
153 |
$file_content = read_file($file); |
| 156 |
$expected_content = <<"EOS"; |
154 |
$expected_content = <<"EOS"; |
| 157 |
<?xml version="1.0" encoding="UTF-8"?> |
155 |
<?xml version="1.0" encoding="UTF-8"?> |
| 158 |
|
156 |
|
|
Lines 171-177
chop $expected_content;
Link Here
|
| 171 |
is( $file_content, $expected_content, 'Its content is valid' ); |
169 |
is( $file_content, $expected_content, 'Its content is valid' ); |
| 172 |
|
170 |
|
| 173 |
$file = "$dir/sitemap0001.xml"; |
171 |
$file = "$dir/sitemap0001.xml"; |
| 174 |
ok( -e $file, 'File sitemap0001.xml created'); |
172 |
ok( -e $file, 'File sitemap0001.xml created' ); |
| 175 |
|
173 |
|
| 176 |
open my $fh, '<', $file or croak; |
174 |
open my $fh, '<', $file or croak; |
| 177 |
my $count = 0; |
175 |
my $count = 0; |
|
Lines 179-188
while (<$fh>) {
Link Here
|
| 179 |
if (/<loc>/xsm) { $count++; } |
177 |
if (/<loc>/xsm) { $count++; } |
| 180 |
} |
178 |
} |
| 181 |
close $fh or carp "Failed to close $file well."; |
179 |
close $fh or carp "Failed to close $file well."; |
| 182 |
is( $count, 50_000, 'It contains 50000 URLs'); |
180 |
is( $count, 50_000, 'It contains 50000 URLs' ); |
| 183 |
|
181 |
|
| 184 |
$file = "$dir/sitemap0002.xml"; |
182 |
$file = "$dir/sitemap0002.xml"; |
| 185 |
ok( -e $file, 'File sitemap0002.xml created'); |
183 |
ok( -e $file, 'File sitemap0002.xml created' ); |
| 186 |
|
184 |
|
| 187 |
open $fh, '<', $file or croak; |
185 |
open $fh, '<', $file or croak; |
| 188 |
$count = 0; |
186 |
$count = 0; |
|
Lines 190-196
while (<$fh>) {
Link Here
|
| 190 |
if (/<loc>/xsm) { $count++; } |
188 |
if (/<loc>/xsm) { $count++; } |
| 191 |
} |
189 |
} |
| 192 |
close $fh or carp "Failed to close $file well."; |
190 |
close $fh or carp "Failed to close $file well."; |
| 193 |
is( $count, 25_000, 'It contains 25000 URLs'); |
191 |
is( $count, 25_000, 'It contains 25000 URLs' ); |
| 194 |
|
192 |
|
| 195 |
# Cleanup |
193 |
# Cleanup |
| 196 |
for my $file (qw/sitemapindex.xml sitemap0001.xml sitemap0002.xml/) { |
194 |
for my $file (qw/sitemapindex.xml sitemap0001.xml sitemap0002.xml/) { |
| 197 |
- |
|
|