File: 702-sample.t

package info (click to toggle)
liblucy-perl 0.3.3-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,328 kB
  • ctags: 8,492
  • sloc: ansic: 80,468; perl: 7,080; yacc: 681; java: 174; lex: 96; makefile: 20
file content (59 lines) | stat: -rw-r--r-- 2,410 bytes parent folder | download | duplicates (2)
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
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

use strict;
use warnings;
use lib 'buildlib';
use Test::More tests => 1;
use File::Spec::Functions qw( catfile catdir );
use File::Path qw( rmtree );

my $search_cgi_orig_path = catfile(qw( sample search.cgi ));
my $indexer_pl_orig_path = catfile(qw( sample indexer.pl ));

# Ensure that all @INC dirs make it into the scripts.  We can't use PERL5LIB
# because search.cgi runs with taint mode and environment vars are tainted.
my $blib_arch = catdir(qw( blib arch ));
my $blib_lib  = catdir(qw( blib lib ));
my @inc_dirs  = map {"use lib '$_';"} ( $blib_arch, $blib_lib, @INC );
my $use_dirs  = join( "\n", @inc_dirs );

for my $filename (qw( search.cgi indexer.pl )) {
    my $orig_path = catfile( 'sample', $filename );
    open( my $fh, '<', $orig_path ) or die "Can't open $orig_path: $!";
    my $content = do { local $/; <$fh> };
    close $fh or die "Close failed: $!";
    $content =~ s/(path_to_index\s+=\s+).*?;/$1'_sample_index';/
        or die "no match";
    my $uscon_source = catdir(qw( sample us_constitution ));
    $content =~ s/(uscon_source\s+=\s+).*?;/$1'$uscon_source';/;
    $content =~ s/^use/$use_dirs;\nuse/m;
    open( $fh, '>', "_$filename" ) or die $!;
    print $fh $content;
    close $fh or die "Close failed: $!";
}

`$^X _indexer.pl 2>&1`;    # Run indexer.  Discard output.
my $html = `$^X -T _search.cgi q=congress`;
$html =~ s#</?strong>##g;    # Delete all strong tags.
$html =~ s/\s+/ /g;          # Collapse all whitespace.
ok( $html =~ /Results 1-10 of 31/, "indexing and search succeeded" );

END {
    unlink('_indexer.pl');
    unlink('_search.cgi');
    rmtree("_sample_index");
}