tweak Operation/Help to support Help system tests
This commit is contained in:
parent
f92c81603c
commit
b8c22c9308
3 changed files with 164 additions and 14 deletions
|
|
@ -61,9 +61,15 @@ sub _linkTOC {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub _getHelpFilesList {
|
||||
my $dir = $session{config}{webguiRoot}.$session{os}{slash}."lib".$session{os}{slash}."WebGUI".$session{os}{slash}."Help";
|
||||
my $dir = join $session{os}{slash}, $session{config}{webguiRoot},"lib","WebGUI","Help";
|
||||
opendir (DIR,$dir) or WebGUI::ErrorHandler::fatal("Can't open Help directory!");
|
||||
my @files = grep { /^_Help/ } grep { /\.pm$/} readdir(DIR);
|
||||
my @files;
|
||||
foreach my $file (readdir DIR) {
|
||||
next unless $file =~ /.pm$/;
|
||||
my $modName;
|
||||
($modName = $file) =~ s/\.pm$//;
|
||||
push @files, [ $file, $modName ];
|
||||
}
|
||||
closedir(DIR);
|
||||
return @files;
|
||||
}
|
||||
|
|
@ -118,16 +124,14 @@ sub www_viewHelpIndex {
|
|||
my @helpIndex;
|
||||
my $i;
|
||||
my @files = _getHelpFilesList();
|
||||
foreach my $file (@files) {
|
||||
if ($file =~ /(.*?)\.pm$/) {
|
||||
my $namespace = $1;
|
||||
my $help = _load($namespace);
|
||||
foreach my $key (keys %{$help}) {
|
||||
push @helpIndex, [$namespace, $key,
|
||||
WebGUI::International::get($help->{$key}{title},$namespace)];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
foreach my $fileSet (@files) {
|
||||
my $namespace = $fileSet->[1];
|
||||
my $help = _load($namespace);
|
||||
foreach my $key (keys %{$help}) {
|
||||
push @helpIndex, [$namespace, $key,
|
||||
WebGUI::International::get($help->{$key}{title},$namespace)];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
my $output = '<table width="100%" class="content"><tr><td valign="top">';
|
||||
my $halfway = round($i/2);
|
||||
|
|
@ -155,8 +159,8 @@ sub www_viewHelpTOC {
|
|||
my @files = _getHelpFilesList();
|
||||
my $third = round(@files/3 + 0.50);
|
||||
my @entries;
|
||||
foreach my $file (@files) {
|
||||
$file =~ s/\.pm$//;
|
||||
foreach my $fileSet (@files) {
|
||||
my $file = $fileSet->[1];
|
||||
push @entries, [_getHelpName($file), $file];
|
||||
}
|
||||
$i = 0;
|
||||
|
|
|
|||
64
t/help_compiled.t
Normal file
64
t/help_compiled.t
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2005 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
# ---- BEGIN DO NOT EDIT ----
|
||||
use strict;
|
||||
use lib '../lib';
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Operation::Help;
|
||||
use File::Find;
|
||||
# ---- END DO NOT EDIT ----
|
||||
|
||||
#The goal of this test is to verify that all entries in the lib/WebGUI/Help
|
||||
#directory compile. This test is necessary because WebGUI::Operation::Help
|
||||
#will return an empty hash if it won't compile, and the help will simply
|
||||
#disappear.
|
||||
|
||||
use Test::More;
|
||||
my $numTests = 0;
|
||||
|
||||
initialize(); # this line is required
|
||||
|
||||
my @helpFileSet = WebGUI::Operation::Help::_getHelpFilesList();
|
||||
|
||||
$numTests = scalar @helpFileSet; #One for each help compile
|
||||
|
||||
diag("Planning on running $numTests tests\n");
|
||||
|
||||
plan tests => $numTests;
|
||||
|
||||
foreach my $helpSet (@helpFileSet) {
|
||||
my $helpName = $helpSet->[1];
|
||||
my $help = WebGUI::Operation::Help::_load($helpName);
|
||||
ok(keys %{ $help }, "$helpName compiled");
|
||||
}
|
||||
|
||||
# put your tests here
|
||||
|
||||
cleanup(); # this line is required
|
||||
|
||||
|
||||
# ---- DO NOT EDIT BELOW THIS LINE -----
|
||||
|
||||
sub initialize {
|
||||
$|=1; # disable output buffering
|
||||
my $configFile;
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile
|
||||
);
|
||||
exit 1 unless ($configFile);
|
||||
WebGUI::Session::open("..",$configFile);
|
||||
}
|
||||
|
||||
sub cleanup {
|
||||
WebGUI::Session::close();
|
||||
}
|
||||
|
||||
82
t/help_related.t
Normal file
82
t/help_related.t
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2005 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
# ---- BEGIN DO NOT EDIT ----
|
||||
use strict;
|
||||
use lib '../lib';
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Operation::Help;
|
||||
use File::Find;
|
||||
# ---- END DO NOT EDIT ----
|
||||
|
||||
#The goal of this test is to verify that all entries in the lib/WebGUI/Help
|
||||
#directory correctly resolve to other Help entries. The total number of
|
||||
#tests will be dynamic, based on how many "related" entries are set up
|
||||
#in the Help files. Calling Test::plan will be delayed.
|
||||
|
||||
use Test::More;
|
||||
my $numTests = 0;
|
||||
|
||||
initialize(); # this line is required
|
||||
|
||||
my @helpFileSet = WebGUI::Operation::Help::_getHelpFilesList();
|
||||
|
||||
my %helpTable;
|
||||
|
||||
foreach my $helpSet (@helpFileSet) {
|
||||
my $helpName = $helpSet->[1];
|
||||
my $help = WebGUI::Operation::Help::_load($helpName);
|
||||
$helpTable{ $helpName } = $help;
|
||||
}
|
||||
|
||||
##Scan #1, how many tests do we expect?
|
||||
|
||||
my @relatedHelp = ();
|
||||
foreach my $topic ( keys %helpTable ) {
|
||||
foreach my $entry ( keys %{ $helpTable{$topic} }) {
|
||||
my @related = @{ $helpTable{$topic}{$entry}{related} };
|
||||
push @relatedHelp, @related;
|
||||
$numTests += scalar @related;
|
||||
}
|
||||
}
|
||||
|
||||
diag("Planning on running $numTests tests\n");
|
||||
|
||||
plan tests => $numTests;
|
||||
|
||||
##Each array element is a hash with two keys, tag (entry) and namespace (topic).
|
||||
|
||||
foreach my $related (@relatedHelp) {
|
||||
my ($topic, $entry) = @{ $related }{'namespace', 'tag'};
|
||||
ok( exists $helpTable{$topic}{$entry}, "Help entry: $topic -> $entry");
|
||||
}
|
||||
|
||||
# put your tests here
|
||||
|
||||
cleanup(); # this line is required
|
||||
|
||||
|
||||
# ---- DO NOT EDIT BELOW THIS LINE -----
|
||||
|
||||
sub initialize {
|
||||
$|=1; # disable output buffering
|
||||
my $configFile;
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile
|
||||
);
|
||||
exit 1 unless ($configFile);
|
||||
WebGUI::Session::open("..",$configFile);
|
||||
}
|
||||
|
||||
sub cleanup {
|
||||
WebGUI::Session::close();
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue