Added interwiki test
[gpy.git] / t / WikiLinkParser.t
bloba504a6e732de8be1eec8ad2e024790cf565eed25
1 #!/usr/local/bin/perl
3 use strict;
4 use warnings;
5 use WikiLinkParser;
6 use MediaWiki::API;
7 use Test::More;
9 my $url = 'https://en.wikinews.org';
10 my $mw = MediaWiki::API->new();
11 $mw->{config}->{api_url} = $url.'/w/api.php';
13 my $prefix = "$url/wiki";
15 is_deeply(
16 WikiLinkParser->get_urls_by_text("[[Dog]]", $mw),
17 ["$prefix/Dog"],
18 'Gets url of a page'
21 is_deeply(
22 WikiLinkParser->get_urls_by_text("{{sofixit}}", $mw),
23 ["$prefix/Template:Sofixit"],
24 'Gets url of a template'
27 is_deeply(
28 WikiLinkParser->get_urls_by_text("{{sofixit|1|2=35}}", $mw),
29 ["$prefix/Template:Sofixit"],
30 'Gets url of a template with params'
33 is_deeply(
34 WikiLinkParser->get_urls_by_text("[[Собака]]", $mw),
35 ["$prefix/Собака"],
36 'Gets URL of a unicode page name properly'
39 is_deeply(
40 WikiLinkParser->get_urls_by_text("[[Собака#Что такое]]", $mw),
41 ["$prefix/Собака#.C3.90.C2.A7.C3.91.C2.82.C3.90.C2.BE_.C3.91.C2.82.C3.90.C2.B0.C3.90.C2.BA.C3.90.C2.BE.C3.90.C2.B5"],
42 'Gets URL of a unicode section name properly'
45 is_deeply(
46 WikiLinkParser->get_urls_by_text("[[Dog#What is]]", $mw),
47 ["$prefix/Dog#What_is"],
48 'Gets a section name with spaces properly'
50 is_deeply(
51 WikiLinkParser->get_urls_by_text("[[wikipedia:fr:Dog]]", $mw),
52 ['https://en.wikipedia.org/wiki/fr:Dog'], # this forwards to fr.wp.org
53 'Gets interwiki links properly'
58 done_testing( 7 );