File: test-browseable-functions-using-File.t

package info (click to toggle)
libapache-session-browseable-perl 1.3.18-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 372 kB
  • sloc: perl: 2,058; makefile: 2
file content (127 lines) | stat: -rw-r--r-- 3,545 bytes parent folder | download | duplicates (6)
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
126
127
# Complete tests with File

use strict;
use warnings;
use Test::More;

use constant SESSIONPATH => 't'
  . ( $^O and $^O =~ /(?:MSWin|Windows)/i ? '\\' : '/' )
  . 'sessions';
eval {
    require File::Path;
    File::Path::remove_tree(SESSIONPATH);
    File::Path::mkpath(SESSIONPATH);
};
plan skip_all => "Unable to use file system ($@)" if ($@);

my @list = ( "aa" .. "ay", "aa" .. "ac" );
my $count = @list;

plan tests => 27 + 5 * $count;

use_ok('Apache::Session::Browseable::File');

my %session;
my $args = { Directory => SESSIONPATH, Index => "f1 f2", };
foreach (@list) {
    ok( tie %session, 'Apache::Session::Browseable::File',
        undef, $args, "Create session $_" );
    $session{f1} = "1_$_";
    $session{f2} = "2_$_";
    $session{f3} = "3_$_";
    $session{f4} = "4_$_";
    untie %session;
}

my $res;

# 1. Get simply all sessions
ok(
    $res = Apache::Session::Browseable::File->get_key_from_all_sessions($args),
    'Get all sessions'
);
ok( count($res) == $count,
    "get_key_from_all_sessions returns $count sessions (" . count($res) . ")" );

# 2. Test searchOn() on an indexed field
ok( $res = Apache::Session::Browseable::File->searchOn( $args, 'f1', '1_aa' ) );
ok( count($res) == 2, 'Get 2 "aa" sessions (' . count($res) . ")" );
ok( $res = Apache::Session::Browseable::File->searchOn( $args, 'f1', '1_ad' ) );
ok( count($res) == 1, 'Get 1 "ad" sessions (' . count($res) . ")" );

# 3. Test searchOn() on an unindexed field
ok( $res = Apache::Session::Browseable::File->searchOn( $args, 'f3', '3_aa' ) );
ok( count($res) == 2, 'Get 2 "aa" sessions (' . count($res) . ")" );
ok( $res = Apache::Session::Browseable::File->searchOn( $args, 'f3', '3_ad' ) );
ok( count($res) == 1, 'Get 1 "ad" sessions (' . count($res) . ")" );

# 4. Test searchOnExpr() on an indexed field
ok( $res =
      Apache::Session::Browseable::File->searchOnExpr( $args, 'f1', '*aa' ) );
ok( count($res) == 2, 'Get 2 "aa" sessions (' . count($res) . ")" );

# 5. Test searchOnExpr() on an unindexed field
ok( $res =
      Apache::Session::Browseable::File->searchOnExpr( $args, 'f3', '*aa' ) );
ok( count($res) == 2, 'Get 2 "aa" sessions (' . count($res) . ")" );

# 6. Test get_key_from_all_sessions to request for indexed fields
ok(
    $res = Apache::Session::Browseable::File->get_key_from_all_sessions(
        $args, [ 'f1', 'f2' ]
    )
);

while ( my ( $id, $entry ) = each %$res ) {
    ok( $entry->{f1} =~ /^1_(\w{2})$/ );
    my $t = $1;
    ok( $entry->{f2} =~ /^2_${t}$/ );
}

# 7. Test searchOn to request for indexed fields
ok(
    $res = Apache::Session::Browseable::File->searchOn(
        $args, 'f1', '1_aa', 'f1', 'f2'
    )
);

while ( my ( $id, $entry ) = each %$res ) {
    ok( $entry->{f1} =~ /^1_(\w{2})$/ );
    my $t = $1;
    ok( $entry->{f2} =~ /^2_${t}$/ );
}

# 8. Test get_key_from_all_sessions to request for unindexed fields
ok(
    $res = Apache::Session::Browseable::File->get_key_from_all_sessions(
        $args, [ 'f1', 'f3' ]
    )
);

while ( my ( $id, $entry ) = each %$res ) {
    ok( $entry->{f1} =~ /^1_(\w{2})$/ );
    my $t = $1;
    ok( $entry->{f3} =~ /^3_${t}$/ );
}

# 9. Test searchOn to request for unindexed fields
ok(
    $res = Apache::Session::Browseable::File->searchOn(
        $args, 'f1', '1_aa', 'f1', 'f3'
    )
);

eval { File::Path::remove_tree(SESSIONPATH) };

while ( my ( $id, $entry ) = each %$res ) {
    ok( $entry->{f1} =~ /^1_(\w{2})$/ );
    my $t = $1;
    ok( $entry->{f3} =~ /^3_${t}$/ );
}

sub count {
    my @c = keys %{ $_[0] };
    return scalar @c;
}

1;