Lines 24-30
use DateTime;
Link Here
|
24 |
use Test::MockModule; |
24 |
use Test::MockModule; |
25 |
use Test::More tests => 16; |
25 |
use Test::More tests => 16; |
26 |
use Koha::Schema; |
26 |
use Koha::Schema; |
27 |
|
27 |
use Carp qw/croak carp/; |
28 |
|
28 |
|
29 |
BEGIN { |
29 |
BEGIN { |
30 |
use_ok('Koha::Sitemapper'); |
30 |
use_ok('Koha::Sitemapper'); |
Lines 37-43
$mocked_datetime->mock('now', sub { return $now_value; } );
Link Here
|
37 |
|
37 |
|
38 |
sub slurp { |
38 |
sub slurp { |
39 |
my $file = shift; |
39 |
my $file = shift; |
40 |
open my $fh, '<', $file or die; |
40 |
open my $fh, '<', $file or croak; |
41 |
local $/ = undef; |
41 |
local $/ = undef; |
42 |
my $cont = <$fh>; |
42 |
my $cont = <$fh>; |
43 |
close $fh; |
43 |
close $fh; |
Lines 51-59
sub fixtures {
Link Here
|
51 |
fixtures_ok [ |
51 |
fixtures_ok [ |
52 |
Biblio => [ |
52 |
Biblio => [ |
53 |
[ qw/ biblionumber datecreated timestamp / ], |
53 |
[ qw/ biblionumber datecreated timestamp / ], |
54 |
@$data, |
54 |
@{$data}, |
55 |
], |
55 |
], |
56 |
], 'add fixtures'; |
56 |
], 'add fixtures'; |
|
|
57 |
return; |
57 |
} |
58 |
} |
58 |
|
59 |
|
59 |
# Make the code in the module use our mocked Koha::Schema/Koha::Database |
60 |
# Make the code in the module use our mocked Koha::Schema/Koha::Database |
Lines 81-90
my $sitemapper = Koha::Sitemapper->new(
Link Here
|
81 |
$sitemapper->run(); |
82 |
$sitemapper->run(); |
82 |
|
83 |
|
83 |
my $file = "$dir/sitemapindex.xml"; |
84 |
my $file = "$dir/sitemapindex.xml"; |
84 |
ok( -e "$dir/sitemapindex.xml", "File sitemapindex.xml created"); |
85 |
ok( -e "$dir/sitemapindex.xml", 'File sitemapindex.xml created'); |
85 |
my $file_content = slurp($file); |
86 |
my $file_content = slurp($file); |
86 |
my $now = DateTime->now->ymd; |
87 |
my $now = DateTime->now->ymd; |
87 |
my $expected_content = <<EOS; |
88 |
my $expected_content = <<"EOS"; |
88 |
<?xml version="1.0" encoding="UTF-8"?> |
89 |
<?xml version="1.0" encoding="UTF-8"?> |
89 |
|
90 |
|
90 |
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> |
91 |
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> |
Lines 95-106
my $expected_content = <<EOS;
Link Here
|
95 |
</sitemapindex> |
96 |
</sitemapindex> |
96 |
EOS |
97 |
EOS |
97 |
chop $expected_content; |
98 |
chop $expected_content; |
98 |
is( $file_content, $expected_content, "Its content is valid" ); |
99 |
is( $file_content, $expected_content, 'Its content is valid' ); |
99 |
|
100 |
|
100 |
$file = "$dir/sitemap0001.xml"; |
101 |
$file = "$dir/sitemap0001.xml"; |
101 |
ok( -e $file, "File sitemap0001.xml created"); |
102 |
ok( -e $file, 'File sitemap0001.xml created'); |
102 |
$file_content = slurp($file); |
103 |
$file_content = slurp($file); |
103 |
$expected_content = <<EOS; |
104 |
$expected_content = <<"EOS"; |
104 |
<?xml version="1.0" encoding="UTF-8"?> |
105 |
<?xml version="1.0" encoding="UTF-8"?> |
105 |
|
106 |
|
106 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
107 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
Lines 114-120
$expected_content = <<EOS;
Link Here
|
114 |
</url> |
115 |
</url> |
115 |
</urlset> |
116 |
</urlset> |
116 |
EOS |
117 |
EOS |
117 |
is( $file_content, $expected_content, "Its content is valid" ); |
118 |
is( $file_content, $expected_content, 'Its content is valid' ); |
118 |
|
119 |
|
119 |
|
120 |
|
120 |
# Create a sitemap for a catalog containg 2 biblios, with option 'short url'. |
121 |
# Create a sitemap for a catalog containg 2 biblios, with option 'short url'. |
Lines 128-136
$sitemapper = Koha::Sitemapper->new(
Link Here
|
128 |
$sitemapper->run(); |
129 |
$sitemapper->run(); |
129 |
|
130 |
|
130 |
$file = "$dir/sitemap0001.xml"; |
131 |
$file = "$dir/sitemap0001.xml"; |
131 |
ok( -e $file, "File sitemap0001.xml with short URLs created"); |
132 |
ok( -e $file, 'File sitemap0001.xml with short URLs created'); |
132 |
$file_content = slurp($file); |
133 |
$file_content = slurp($file); |
133 |
$expected_content = <<EOS; |
134 |
$expected_content = <<"EOS"; |
134 |
<?xml version="1.0" encoding="UTF-8"?> |
135 |
<?xml version="1.0" encoding="UTF-8"?> |
135 |
|
136 |
|
136 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
137 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> |
Lines 144-157
$expected_content = <<EOS;
Link Here
|
144 |
</url> |
145 |
</url> |
145 |
</urlset> |
146 |
</urlset> |
146 |
EOS |
147 |
EOS |
147 |
is( $file_content, $expected_content, "Its content is valid" ); |
148 |
is( $file_content, $expected_content, 'Its content is valid' ); |
148 |
|
149 |
|
149 |
|
150 |
|
150 |
# Create a sitemap for a catalog containing 75000 biblios, with option 'short |
151 |
# Create a sitemap for a catalog containing 75000 biblios, with option 'short |
151 |
# url'. Test that 3 files are created: index file + 2 urls file with |
152 |
# url'. Test that 3 files are created: index file + 2 urls file with |
152 |
# respectively 50000 et 25000 urls. |
153 |
# respectively 50000 et 25000 urls. |
153 |
$data = []; |
154 |
$data = []; |
154 |
push @$data, [ $_, '2015-08-31', '2015-08-31'] for 3..75000; |
155 |
for my $count (3..75_000) { |
|
|
156 |
push @{$data}, [ $count, '2015-08-31', '2015-08-31']; |
157 |
} |
155 |
fixtures($data); |
158 |
fixtures($data); |
156 |
$sitemapper = Koha::Sitemapper->new( |
159 |
$sitemapper = Koha::Sitemapper->new( |
157 |
verbose => 0, |
160 |
verbose => 0, |
Lines 162-170
$sitemapper = Koha::Sitemapper->new(
Link Here
|
162 |
$sitemapper->run(); |
165 |
$sitemapper->run(); |
163 |
|
166 |
|
164 |
$file = "$dir/sitemapindex.xml"; |
167 |
$file = "$dir/sitemapindex.xml"; |
165 |
ok( -e "$dir/sitemapindex.xml", "File sitemapindex.xml for 75000 bibs created"); |
168 |
ok( -e "$dir/sitemapindex.xml", 'File sitemapindex.xml for 75000 bibs created'); |
166 |
$file_content = slurp($file); |
169 |
$file_content = slurp($file); |
167 |
$expected_content = <<EOS; |
170 |
$expected_content = <<"EOS"; |
168 |
<?xml version="1.0" encoding="UTF-8"?> |
171 |
<?xml version="1.0" encoding="UTF-8"?> |
169 |
|
172 |
|
170 |
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> |
173 |
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> |
Lines 179-205
$expected_content = <<EOS;
Link Here
|
179 |
</sitemapindex> |
182 |
</sitemapindex> |
180 |
EOS |
183 |
EOS |
181 |
chop $expected_content; |
184 |
chop $expected_content; |
182 |
is( $file_content, $expected_content, "Its content is valid" ); |
185 |
is( $file_content, $expected_content, 'Its content is valid' ); |
183 |
|
186 |
|
184 |
$file = "$dir/sitemap0001.xml"; |
187 |
$file = "$dir/sitemap0001.xml"; |
185 |
ok( -e $file, "File sitemap0001.xml created"); |
188 |
ok( -e $file, 'File sitemap0001.xml created'); |
186 |
|
189 |
|
187 |
open my $fh, "<", $file; |
190 |
open my $fh, '<', $file or croak; |
188 |
my $count = 0; |
191 |
my $count = 0; |
189 |
while (<$fh>) { |
192 |
while (<$fh>) { |
190 |
$count++ if /<loc>/; |
193 |
if ($_ =~ /<loc>/xsm) { $count++; } |
191 |
} |
194 |
} |
192 |
is( $count, 50000, "It contains 50000 URLs"); |
195 |
close $fh; |
|
|
196 |
is( $count, 50_000, 'It contains 50000 URLs'); |
193 |
|
197 |
|
194 |
$file = "$dir/sitemap0002.xml"; |
198 |
$file = "$dir/sitemap0002.xml"; |
195 |
ok( -e $file, "File sitemap0002.xml created"); |
199 |
ok( -e $file, 'File sitemap0002.xml created'); |
196 |
|
200 |
|
197 |
open $fh, "<", $file; |
201 |
open $fh, '<', $file or croak; |
198 |
$count = 0; |
202 |
$count = 0; |
199 |
while (<$fh>) { |
203 |
while (<$fh>) { |
200 |
$count++ if /<loc>/; |
204 |
if ($_ =~ /<loc>/xsm) { $count++; } |
201 |
} |
205 |
} |
202 |
is( $count, 25000, "It contains 25000 URLs"); |
206 |
close $fh; |
|
|
207 |
is( $count, 25_000, 'It contains 25000 URLs'); |
203 |
|
208 |
|
204 |
# Cleanup |
209 |
# Cleanup |
205 |
unlink "$dir/$_" for qw / sitemapindex.xml sitemap0001.xml sitemap0002.xml /; |
210 |
for my $file (qw/sitemapindex.xml sitemap0001.xml sitemap0002.xml/) { |
|
|
211 |
unlink "$dir/$file"; |
212 |
} |
206 |
- |
|
|