File: 30-pages.t

package info (click to toggle)
libparse-mediawikidump-perl 1.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 228 kB
  • sloc: perl: 1,156; xml: 205; sql: 16; makefile: 2
file content (125 lines) | stat: -rw-r--r-- 2,704 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!perl -w

use Test::Simple tests => 108;
use strict;
use Parse::MediaWikiDump;

use Data::Dumper;

my $file = 't/pages_test.xml';
my $fh;
my $pages;
my $mode;

$mode = 'file';
test_all($file);

open($fh, $file) or die "could not open $file: $!";

$mode = 'handle';
test_all($fh);

sub test_all {
	$pages = Parse::MediaWikiDump->pages(shift);

	test_one();
	test_two();
	test_three();
	test_four();
	test_five();

	ok(! defined($pages->next));
}

sub test_one {
	ok($pages->sitename eq 'Sitename Test Value');
	ok($pages->base eq 'Base Test Value');
	ok($pages->generator eq 'Generator Test Value');
	ok($pages->case eq 'Case Test Value');
	ok($pages->namespaces->[0]->[0] == -2);
	ok($pages->namespaces_names->[0] eq 'Media');
	ok($pages->current_byte != 0);
	ok($pages->version eq '0.3');
	
	if ($mode eq 'file') {
		ok($pages->size == 3100);
	} elsif ($mode eq 'handle') {
		ok(! defined($pages->size))
	} else {
		die "invalid test mode";
	}

	my $page = $pages->next;
	my $text = $page->text;

	ok(defined($page));
	
	ok($page->title eq 'Talk:Title Test Value');
	ok($page->id == 1);
	ok($page->revision_id == 47084);
	ok($page->username eq 'Username Test Value');
	ok($page->userid == 1292);
	ok($page->timestamp eq '2005-07-09T18:41:10Z');
	ok($page->userid == 1292);
	ok($page->minor);
	ok($$text eq "Text Test Value\n");
	ok($page->namespace eq 'Talk');
	ok(! defined($page->redirect));
	ok(! defined($page->categories));
}

sub test_two {
	my $page = $pages->next;
	my $text = $page->text;

	ok($page->title eq 'Title Test Value #2');
	ok($page->id == 2);
	ok($page->revision_id eq '47085');
	ok($page->username eq 'Username Test Value 2');
	ok($page->timestamp eq '2005-07-09T18:41:10Z');
	ok($page->userid == 1292);
	ok($page->minor);
	ok($$text eq "#redirect : [[fooooo]]\n");
	ok($page->namespace eq '');
	ok($page->redirect eq 'fooooo');
	ok(! defined($page->categories));
}

sub test_three {
	my $page = $pages->next;

	ok(defined($page));
	ok($page->redirect);
	ok($page->title eq 'Title Test Value #3');
	ok($page->id == 3);
	ok($page->timestamp eq '2005-07-09T18:41:10Z');
	ok($page->username eq 'Username Test Value');
	ok($page->userid == 1292);
}

sub test_four {
	my $page = $pages->next;

	ok(defined($page));

	ok($page->id == 4);
	ok($page->timestamp eq '2005-07-09T18:41:10Z');
	ok($page->username eq 'Username Test Value');
	ok($page->userid == 1292);

	#test for bug 36255
	ok($page->namespace eq '');
	ok($page->title eq 'NotANameSpace:Bar');
}

sub test_five {
	my $page = $pages->next;
	
	ok(defined($page));
	
	ok($page->id == 5);
	ok($page->title eq 'Moar Tests');
	ok(! defined($page->username));
	ok(! defined($page->userid));
	ok($page->userip eq '62.104.212.74');
}