Open-This
view release on metacpan or search on metacpan
t/open-this.t view on Meta::CPAN
use strict;
use warnings;
use Open::This qw( editor_args_from_parsed_text parse_text to_editor_args );
use Path::Tiny qw( path );
use Test::Fatal qw( exception );
use Test::More import => [qw( done_testing is like ok )];
use Test::Differences qw( eq_or_diff );
use Test::Warnings qw( warnings );
{
local $ENV{EDITOR} = q{};
like(
exception { editor_args_from_parsed_text('slow-horses.txt') },
qr/\$EDITOR has not been set/,
'dies when $EDITOR is not defined'
);
}
# This gets really noisy on Travis if $ENV{EDITOR} is not set
local $ENV{EDITOR} = 'vim';
{
my $text = 'lib/Foo/Bar.pm line 222.';
my $line_number = Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 222, 'line_number' );
is( $text, 'lib/Foo/Bar.pm', 'line number stripped' );
}
{
my $text = 'lib/Open/This.pm:17';
my $line_number = Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 17, 'git-grep line_number' );
is( $text, 'lib/Open/This.pm', 'git-grep line number stripped' );
}
{
my $text = 'lib/Open/This.pm#L17';
my $line_number = Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 17, 'GitHub line_number' );
is( $text, 'lib/Open/This.pm', 'GitHub line number stripped' );
}
{
my $text = 'lib/Open/This.pm#L17-L18';
my $line_number = Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 17, 'GitHub line range' );
is( $text, 'lib/Open/This.pm', 'GitHub line range stripped' );
}
{
my $text = 'lib/Open/This.pm-17-';
my $line_number = Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 17, 'git-grep context line_number' );
is( $text, 'lib/Open/This.pm', 'git-grep context line number stripped' );
}
{
my $text = './lib/Open/This.pm:17:3';
my ( $line_number, $column_number )
= Open::This::_maybe_extract_line_number( \$text );
is( $line_number, 17, 'ripgrep line_number' );
is( $column_number, 3, 'ripgrep column_number' );
is(
$text, './lib/Open/This.pm',
'ripgrep context line number and column number stripped'
);
}
( run in 1.940 second using v1.01-cache-2.11-cpan-5837b0d9d2c )