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
|
#!/usr/bin/perl -w
# Copyright 1999-2019, Paul Johnson (paul@pjcj.net)
# This software is free. It is licensed under the same terms as Perl itself.
# The latest version of this software should be available from my homepage:
# http://www.pjcj.net
# Version 1.22 - 15th November 2019
use strict;
use lib -d "t" ? "t" : "..";
BEGIN
{
unless ($ENV{WEBSERVICES_TESTING}) {
eval "use Test::More skip_all => " .
"q[\$WEBSERVICES_TESTING is not set]";
}
eval q[
use 5.006;
use Apache::Test ":withtestmore";
use Apache::TestUtil;
use LWP::Simple;
];
if (my $e = $@) {
eval "use Test::More skip_all => q[mod_perl not fully installed]";
#eval "use Test::More skip_all => q[mod_perl not fully installed [$e]]";
}
}
use Test::More;
Apache::TestRequest::module('default');
my $config = Apache::Test::config();
my $hostport = Apache::TestRequest::hostport($config) || "";
my $ws = "/ws/plain/royal";
my $root = "http://$hostport$ws";
sub ws { join "", map "$ws/$_\n", @_ }
sub rs { join "", map {chomp(my $t = $_); "$t\n" } @_ }
my @tests = (
[ "?search=Elizabeth_II", ws "I9" ],
[ "/i9/name", rs "Elizabeth_II Alexandra Mary /Windsor/" ],
[ "/i9/children", ws qw( I11 I15 I19 I23 ) ],
[ "/i9/birth/date", "Wednesday, 21st April 1926\n" ],
[ "/i9/birth", rs <<'EOR' ],
1 BIRT
2 DATE Wednesday, 21st April 1926
2 PLAC 17 Bruton St.,London,W1,England
EOR
[ "/i9", rs <<'EOR' ],
0 @I9@ INDI
1 NAME Elizabeth_II Alexandra Mary/Windsor/
1 TITL Queen of England
1 SEX F
1 BIRT
2 DATE Wednesday, 21st April 1926
2 PLAC 17 Bruton St.,London,W1,England
1 FAMS @F6@
1 FAMC @F4@
1 RIN 10
EOR
[ "/i0", "Can't get record [i0]\n" ],
[ "/I9/__error__", "Invalid action [__error__]\n" ],
[ "", "No xref or parameters specified\n" ],
);
plan tests => scalar @tests + 2;
for (@tests) {
my $q = $root . $_->[0];
# t_debug("-- $q");
# t_debug("++ ", get($q));
is get($q), $_->[1], $q;
}
is get("http://$hostport/ws/plain/"),
"No GEDCOM file specified\n",
"No GEDCOM file specified";
like get("http://$hostport/ws/plain/__error__"),
qr!Can't open file .*/__error__.ged: No such file or directory!,
"GEDCOM file does not exist";
|