exported keyword file tests
This commit is contained in:
parent
d1db12d1e4
commit
54aaa673cf
1 changed files with 54 additions and 1 deletions
|
|
@ -61,7 +61,7 @@ $canPostMaker->prepare({
|
||||||
fail => [1, $reader ],
|
fail => [1, $reader ],
|
||||||
});
|
});
|
||||||
|
|
||||||
my $tests = 38
|
my $tests = 41
|
||||||
+ $canPostMaker->plan
|
+ $canPostMaker->plan
|
||||||
;
|
;
|
||||||
plan tests => 1
|
plan tests => 1
|
||||||
|
|
@ -522,6 +522,42 @@ cmp_bag(
|
||||||
'exportAssetCollateral: correct files exported, including dummy directory'
|
'exportAssetCollateral: correct files exported, including dummy directory'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
my $roger = $exportStorage->getFileContentsAsScalar('keyword_roger.html');
|
||||||
|
my @rogerStories = map { $_->[0] } fetchKeywordAssetList($roger);
|
||||||
|
cmp_bag(
|
||||||
|
\@rogerStories,
|
||||||
|
[
|
||||||
|
'Story 2',
|
||||||
|
'Story 4',
|
||||||
|
'WebGUI is released',
|
||||||
|
],
|
||||||
|
'... contents of roger keyword file'
|
||||||
|
);
|
||||||
|
|
||||||
|
my $foxtrot = $exportStorage->getFileContentsAsScalar('keyword_foxtrot.html');
|
||||||
|
my @foxtrotStories = map { $_->[0] } fetchKeywordAssetList($foxtrot);
|
||||||
|
cmp_bag(
|
||||||
|
\@foxtrotStories,
|
||||||
|
[
|
||||||
|
'Story 2',
|
||||||
|
'Story 3',
|
||||||
|
'WebGUI is released',
|
||||||
|
],
|
||||||
|
'... contents of foxtrot keyword file'
|
||||||
|
);
|
||||||
|
|
||||||
|
my $echo = $exportStorage->getFileContentsAsScalar('keyword_echo.html');
|
||||||
|
my @echoStories = map { $_->[0] } fetchKeywordAssetList($echo);
|
||||||
|
cmp_bag(
|
||||||
|
\@echoStories,
|
||||||
|
[
|
||||||
|
'Story 3',
|
||||||
|
'Story 4',
|
||||||
|
'WebGUI is released',
|
||||||
|
],
|
||||||
|
'... contents of echo keyword file'
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
@ -554,4 +590,21 @@ sub simpleHrefParser {
|
||||||
return @anchors;
|
return @anchors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub fetchKeywordAssetList {
|
||||||
|
my ($text) = @_;
|
||||||
|
my @anchors = ();
|
||||||
|
my $p = HTML::TokeParser->new(\$text);
|
||||||
|
TOKEN: while (my $token = $p->get_tag('ul')) {
|
||||||
|
next TOKEN unless $token->[1]->{class} eq 'keywordAssetList';
|
||||||
|
while (my $token = $p->get_tag('/ul', 'a')) {
|
||||||
|
last TOKEN if $token->[0] eq '/ul';
|
||||||
|
my $url = $token->[1]{href} || "-";
|
||||||
|
my $label = $p->get_trimmed_text("/a");
|
||||||
|
push @anchors, [ $label, $url ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return @anchors;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue