| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | #!/usr/bin/perl -w | 
| 2 | 1 |  |  | 1 |  | 163179 | use strict; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 68 |  | 
| 3 |  |  |  |  |  |  |  | 
| 4 | 1 |  |  | 1 |  | 608 | use Test::More tests => 57; | 
|  | 1 |  |  |  |  | 17355 |  | 
|  | 1 |  |  |  |  | 8 |  | 
| 5 | 1 |  |  | 1 |  | 2892 | use Test::Exception; | 
|  | 1 |  |  |  |  | 3197 |  | 
|  | 1 |  |  |  |  | 4 |  | 
| 6 |  |  |  |  |  |  |  | 
| 7 | 1 |  |  | 1 |  | 4780 | use Data::Dumper; | 
|  | 1 |  |  |  |  | 23759 |  | 
|  | 1 |  |  |  |  | 95 |  | 
| 8 |  |  |  |  |  |  |  | 
| 9 | 1 |  |  | 1 |  | 13 | use File::Basename; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 115 |  | 
| 10 | 1 |  |  | 1 |  | 537 | use File::Spec::Functions; | 
|  | 1 |  |  |  |  | 490 |  | 
|  | 1 |  |  |  |  | 61 |  | 
| 11 |  |  |  |  |  |  |  | 
| 12 | 1 |  |  | 1 |  | 270 | use lib "../lib"; | 
|  | 1 |  |  |  |  | 562 |  | 
|  | 1 |  |  |  |  | 4 |  | 
| 13 |  |  |  |  |  |  |  | 
| 14 | 1 |  |  | 1 |  | 113711 | use_ok("Devel::PerlySense::Document"); | 
|  | 1 |  |  |  |  | 1122 |  | 
|  | 1 |  |  |  |  | 4 |  | 
|  | 1 |  |  |  |  | 1 |  | 
|  | 1 |  |  |  |  | 10 |  | 
| 15 | 1 |  |  | 1 |  | 305 | use_ok("Devel::PerlySense::Document::Location"); | 
|  | 1 |  |  |  |  | 95 |  | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 5 |  | 
| 16 |  |  |  |  |  |  |  | 
| 17 |  |  |  |  |  |  |  | 
| 18 | 1 | 50 |  | 1 |  | 7864 | BEGIN { -d "t" and chdir("t"); } | 
| 19 |  |  |  |  |  |  |  | 
| 20 |  |  |  |  |  |  |  | 
| 21 | 1 |  |  |  |  | 198 | ok(my $oDocument = Devel::PerlySense::Document->new(oPerlySense => Devel::PerlySense->new()), "new ok"); | 
| 22 |  |  |  |  |  |  |  | 
| 23 | 1 |  |  |  |  | 189 | my $dirData = "data/simple-lib"; | 
| 24 | 1 |  |  |  |  | 3 | my $fileOrigin = "$dirData/lib/Win32/Word/Writer.pm"; | 
| 25 | 1 |  |  |  |  | 1 | my $oLocation; | 
| 26 |  |  |  |  |  |  |  | 
| 27 |  |  |  |  |  |  |  | 
| 28 |  |  |  |  |  |  |  | 
| 29 | 1 |  |  |  |  | 5 | note("Find sub by name"); | 
| 30 |  |  |  |  |  |  |  | 
| 31 | 1 |  |  |  |  | 54 | ok($oDocument->parse(file => $fileOrigin), "Parsed file ok"); | 
| 32 | 1 |  |  |  |  | 305 | is(my $package = $oDocument->packageAt(row => 429), "Win32::Word::Writer", "Correct package Table ok"); | 
| 33 |  |  |  |  |  |  |  | 
| 34 | 1 |  |  |  |  | 194 | is($oDocument->oLocationSub(name => "Write", package => "missing package"), undef, "Didn't find missing package declaration"); | 
| 35 | 1 |  |  |  |  | 198 | ok($oLocation = $oDocument->oLocationSub(name => "Write", package => $package), "Found correct declaration"); | 
| 36 | 1 |  |  |  |  | 388 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 37 | 1 |  |  |  |  | 221 | is($oLocation->row, 396, "  row"); | 
| 38 | 1 |  |  |  |  | 213 | is($oLocation->col, 1, "  col"); | 
| 39 |  |  |  |  |  |  |  | 
| 40 | 1 |  |  |  |  | 188 | ok($oLocation = $oDocument->oLocationSub(name => "main_sub"), "Found correct declaration in default package main"); | 
| 41 | 1 |  |  |  |  | 213 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 42 | 1 |  |  |  |  | 214 | is($oLocation->row, 132, "  row"); | 
| 43 | 1 |  |  |  |  | 211 | is($oLocation->col, 1, "  col"); | 
| 44 |  |  |  |  |  |  |  | 
| 45 | 1 |  |  |  |  | 188 | ok($oLocation = $oDocument->oLocationSub(name => "NewParagraph", package => $package), "Found correct declaration"); | 
| 46 | 1 |  |  |  |  | 213 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 47 | 1 |  |  |  |  | 2786 | is($oLocation->row, 446, "  row"); | 
| 48 | 1 |  |  |  |  | 261 | is($oLocation->col, 1, "  col"); | 
| 49 |  |  |  |  |  |  |  | 
| 50 |  |  |  |  |  |  |  | 
| 51 |  |  |  |  |  |  |  | 
| 52 |  |  |  |  |  |  |  | 
| 53 |  |  |  |  |  |  |  | 
| 54 | 1 |  |  |  |  | 197 | note("Find the sub at row/col"); | 
| 55 | 1 |  |  |  |  | 63 | $oLocation =  $oDocument->oLocationSubAt(row => 2, col => 1); | 
| 56 | 1 | 50 |  |  |  | 4 | ok( ! $oLocation, "Missing sub returned undef") or warn(Dumper($oLocation)); | 
| 57 |  |  |  |  |  |  |  | 
| 58 | 1 |  |  |  |  | 196 | ok( | 
| 59 |  |  |  |  |  |  | ! $oDocument->oLocationSubAt(row => 395, col => 1), | 
| 60 |  |  |  |  |  |  | "Missing sub (edge case: just before) returned undef", | 
| 61 |  |  |  |  |  |  | ); | 
| 62 | 1 |  |  |  |  | 189 | ok( $oLocation = $oDocument->oLocationSubAt(row => 396, col => 1), "Found sub on start line"); | 
| 63 | 1 |  |  |  |  | 224 | is($oLocation->row, 396, "  Got correct sub start row"); | 
| 64 | 1 |  |  |  |  | 212 | is($oLocation->col, 1, "  Got correct sub start col"); | 
| 65 | 1 |  |  |  |  | 210 | is($oLocation->rhProperty->{nameSub}, "Write", "  Got correct sub name"); | 
| 66 | 1 |  |  |  |  | 212 | ok(my $oLocationEnd = $oLocation->rhProperty->{oLocationEnd}, "  Got and end oLocation"); | 
| 67 | 1 |  |  |  |  | 213 | is($oLocationEnd->row, 404, "  Got correct sub end row"); | 
| 68 | 1 |  |  |  |  | 210 | is($oLocationEnd->col, 2, "  Got correct sub end col"); | 
| 69 |  |  |  |  |  |  |  | 
| 70 | 1 |  |  |  |  | 186 | ok( $oLocation = $oDocument->oLocationSubAt(row => 404, col => 1), "Found sub on end line"); | 
| 71 | 1 |  |  |  |  | 201 | ok( | 
| 72 |  |  |  |  |  |  | ! $oDocument->oLocationSubAt(row => 405, col => 1), | 
| 73 |  |  |  |  |  |  | "Missing sub (edge case: just after) returned undef", | 
| 74 |  |  |  |  |  |  | ); | 
| 75 |  |  |  |  |  |  |  | 
| 76 |  |  |  |  |  |  | #is($oLocation->file | 
| 77 |  |  |  |  |  |  |  | 
| 78 |  |  |  |  |  |  |  | 
| 79 |  |  |  |  |  |  |  | 
| 80 |  |  |  |  |  |  |  | 
| 81 |  |  |  |  |  |  |  | 
| 82 |  |  |  |  |  |  |  | 
| 83 |  |  |  |  |  |  |  | 
| 84 | 1 |  |  |  |  | 191 | ok($oDocument = Devel::PerlySense::Document->new(oPerlySense => Devel::PerlySense->new()), "new ok"); | 
| 85 | 1 |  |  |  |  | 197 | $fileOrigin = "$dirData/lib/Game/Event/Timed.pm"; | 
| 86 |  |  |  |  |  |  |  | 
| 87 | 1 |  |  |  |  | 23033 | ok($oDocument->parse(file => $fileOrigin), "Parsed file ok"); | 
| 88 | 1 |  |  |  |  | 2260 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "checkTick", row => 107), "Found sub from col package"); | 
| 89 | 1 |  |  |  |  | 925 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 90 | 1 |  |  |  |  | 4397 | is($oLocation->row, 123, "  row"); | 
| 91 | 1 |  |  |  |  | 3526 | is($oLocation->col, 1, "  col"); | 
| 92 |  |  |  |  |  |  |  | 
| 93 |  |  |  |  |  |  |  | 
| 94 | 1 |  |  |  |  | 422 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "checkTick", row => 1), "Found sub from col package main"); | 
| 95 | 1 |  |  |  |  | 2163 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 96 | 1 |  |  |  |  | 803 | is($oLocation->row, 21, "  row"); | 
| 97 | 1 |  |  |  |  | 11194 | is($oLocation->col, 1, "  col"); | 
| 98 |  |  |  |  |  |  |  | 
| 99 |  |  |  |  |  |  |  | 
| 100 |  |  |  |  |  |  |  | 
| 101 | 1 |  |  |  |  | 298 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "checkTick", package => "main"), "Found sub from param package main"); | 
| 102 | 1 |  |  |  |  | 216 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 103 | 1 |  |  |  |  | 213 | is($oLocation->row, 21, "  row"); | 
| 104 | 1 |  |  |  |  | 435 | is($oLocation->col, 1, "  col"); | 
| 105 |  |  |  |  |  |  |  | 
| 106 |  |  |  |  |  |  |  | 
| 107 | 1 |  |  |  |  | 607 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "checkTick"), "Found sub from default package main"); | 
| 108 | 1 |  |  |  |  | 2052 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 109 | 1 |  |  |  |  | 240 | is($oLocation->row, 21, "  row"); | 
| 110 | 1 |  |  |  |  | 208 | is($oLocation->col, 1, "  col"); | 
| 111 |  |  |  |  |  |  |  | 
| 112 |  |  |  |  |  |  |  | 
| 113 | 1 |  |  |  |  | 8367 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "checkTick", package => "Game::Event::Timed"), "Found sub from default package main"); | 
| 114 | 1 |  |  |  |  | 328 | is($oLocation->file, $fileOrigin, " Got file"); | 
| 115 | 1 |  |  |  |  | 237 | is($oLocation->row, 123, "  row"); | 
| 116 | 1 |  |  |  |  | 234 | is($oLocation->col, 1, "  col"); | 
| 117 |  |  |  |  |  |  |  | 
| 118 |  |  |  |  |  |  |  | 
| 119 |  |  |  |  |  |  |  | 
| 120 |  |  |  |  |  |  |  | 
| 121 |  |  |  |  |  |  |  | 
| 122 |  |  |  |  |  |  |  | 
| 123 | 1 |  |  |  |  | 218 | print "\n*** Parent modules\n"; | 
| 124 |  |  |  |  |  |  |  | 
| 125 | 1 |  |  |  |  | 3 | $dirData = "data/project-lib"; | 
| 126 | 1 |  |  |  |  | 5 | my $rexFileDest = qr/Game.Object.Worm.pm/; | 
| 127 |  |  |  |  |  |  |  | 
| 128 | 1 |  |  |  |  | 10 | ok($oDocument = Devel::PerlySense::Document->new(oPerlySense => Devel::PerlySense->new()), "new ok"); | 
| 129 | 1 |  |  |  |  | 221 | $fileOrigin = "$dirData/Game/Object/Worm/Bot.pm"; | 
| 130 |  |  |  |  |  |  |  | 
| 131 | 1 |  |  |  |  | 3677 | ok($oDocument->parse(file => $fileOrigin), "Parsed file ok"); | 
| 132 | 1 |  |  |  |  | 298 | ok($oLocation = $oDocument->oLocationSubDefinition(name => "loadFile", package => "Game::Object::Worm::Bot"), "Found sub in parent package"); | 
| 133 | 1 |  |  |  |  | 416 | like($oLocation->file, $rexFileDest, " Got file"); | 
| 134 | 1 |  |  |  |  | 780 | is($oLocation->row, 360, "  row"); | 
| 135 | 1 |  |  |  |  | 218 | is($oLocation->col, 1, "  col"); | 
| 136 |  |  |  |  |  |  |  | 
| 137 |  |  |  |  |  |  |  | 
| 138 |  |  |  |  |  |  |  | 
| 139 |  |  |  |  |  |  |  | 
| 140 |  |  |  |  |  |  | __END__ |