1 |
dpavlin |
133 |
#!/usr/bin/env perl |
2 |
|
|
use warnings; |
3 |
|
|
use strict; |
4 |
|
|
|
5 |
|
|
=head1 DESCRIPTION |
6 |
|
|
|
7 |
|
|
test PHP data parser |
8 |
|
|
|
9 |
|
|
=cut |
10 |
|
|
|
11 |
|
|
use Jifty::Test tests => 8; |
12 |
|
|
|
13 |
|
|
use Data::Dump qw/dump/; |
14 |
|
|
|
15 |
|
|
use_ok('A3C::PHP'); |
16 |
|
|
|
17 |
|
|
$A3C::PHP::debug = 1 if @ARGV; |
18 |
|
|
|
19 |
|
|
ok( my $data = A3C::PHP->parse( << '__PHP_CONFIG__' |
20 |
|
|
<? |
21 |
|
|
$_foo = 42; |
22 |
|
|
$_bar = "is bar"; |
23 |
|
|
|
24 |
|
|
$_baz = 'once'; |
25 |
|
|
$_baz = "twice"; |
26 |
|
|
?> |
27 |
|
|
__PHP_CONFIG__ |
28 |
|
|
), 'parse'); |
29 |
|
|
|
30 |
|
|
diag dump( $data ); |
31 |
|
|
is_deeply( $data, { _foo => 42, _bar => "is bar", _baz => "twice" }, 'correct' ); |
32 |
|
|
|
33 |
|
|
sub php2data { |
34 |
|
|
my ( $php_path, $expected ) = @_; |
35 |
|
|
ok( my $data = A3C::PHP->parse_file( $php_path ), "parse_file( $php_path )"); |
36 |
|
|
diag "data = ",dump( $data ); |
37 |
|
|
is_deeply( $data, $expected, 'correct' ); |
38 |
|
|
} |
39 |
|
|
|
40 |
|
|
SKIP: { |
41 |
|
|
skip 'need function support', 1; |
42 |
|
|
php2data( 'data/strix/etc/cms-qa/conf.php' ); |
43 |
|
|
} |
44 |
|
|
|
45 |
|
|
php2data( 'data/strix/etc/new/conf.php' ); |
46 |
|
|
|
47 |
|
|
php2data( 't/test.php', |
48 |
|
|
{ |
49 |
|
|
array1 => [123], |
50 |
|
|
array2 => [123, 456, 789], |
51 |
|
|
array3 => ["abc"], |
52 |
|
|
array4 => ["abc", "def", "ghi"], |
53 |
|
|
array5 => ["test", "NJ, the garden state"], |
54 |
|
|
array6 => ["foo"], |
55 |
|
|
hash1 => { a => 1 }, |
56 |
|
|
hash2 => { a => 1, b => 2, c => 3 }, |
57 |
|
|
hash3 => { 1 => "a", "123.45" => "moog", foo => "bar" }, |
58 |
|
|
hash4 => { abe => "Abraham Lincoln", larry => "Larry Wall" }, |
59 |
|
|
hash5 => { constant => "NJ and you, perfect together" }, |
60 |
|
|
hash6 => { foo => "bar" }, |
61 |
|
|
number1 => 123, |
62 |
|
|
number2 => "123.45", |
63 |
|
|
string1 => "McHenry, IL", |
64 |
|
|
string2 => "Trenton, NJ", |
65 |
|
|
} |
66 |
|
|
); |