misc.
[sepia.git] / t / 02completion.t
blobe9f6c8f51eba8ece39d39bb3b71281a2aa5bb886
1 #!/usr/bin/env perl
3 use Test::Simple tests => 11;
4 use Data::Dumper;
5 require Sepia;
6 no warnings;
8 ## Set up some symbols to complete on:
9 package Z::A;
10 sub a_function { }
11 sub a_nother_function { }
12 $a_var = 0;
13 @a_var2 = ();
14 %a_var3 = ();
15 package Z::Another;
16 sub a_function { }
17 sub a_nother_function { }
18 $a_var = 0;
19 @a_var2 = ();
20 %a_var3 = ();
21 package Z::A::Nother;
22 sub a_function { }
23 sub a_nother_function { }
24 $a_var = 0;
25 @a_var2 = ();
26 %a_var3 = ();
27 package Z::Blah;
28 sub a_function { }
29 sub a_nother_function { }
30 $a_var = 0;
31 @a_var2 = ();
32 %a_var3 = ();
33 ## Whew!
34 package main;
36 sub ok_comp
38 my $str = shift;
39 my $res = Dumper([sort(Sepia::completions($str))]);
40 my $expect = Dumper([sort @_]);
41 my $ok = $res eq $expect;
42 ok($ok, $ok ? $str : "$str\n$res\n$expect\n");
45 ok_comp('$Z:A:a_v', qw($Z::A::a_var $Z::Another::a_var));
46 ok_comp('@Z:A:a_v', qw(@Z::A::a_var2 @Z::Another::a_var2));
47 ok_comp('%Z:A:a_v', qw(%Z::A::a_var3 %Z::Another::a_var3));
48 ok_comp('%z:a:a_v', qw(%Z::A::a_var3 %Z::Another::a_var3));
49 ok_comp('%z:a:a_', qw(%Z::A::a_var3 %Z::Another::a_var3));
50 ok_comp('%z:a:a', qw(%Z::A::a_var3 %Z::Another::a_var3));
51 ok_comp('Z:A:a_v');
52 ok_comp('Z:A:a', qw(Z::A::a_nother_function Z::Another::a_nother_function
53 Z::A::a_function Z::Another::a_function));
54 ok_comp('z:a:a', qw(Z::A::a_nother_function Z::Another::a_nother_function
55 Z::A::a_function Z::Another::a_function));
56 ok_comp('zaa', qw(Z::A::a_nother_function Z::Another::a_nother_function
57 Z::A::a_function Z::Another::a_function));
58 ok_comp('za', qw(Z::A:: Z::Another::));