#!/usr/bin/env perl use strict; use warnings; use Test::More; use DB::Color::Highlight; use File::Temp qw(tempfile tempdir); my ( $fh, $file ) = tempfile(); my $dir = tempdir( CLEANUP => 1 ); ok my $highlight = DB::Color::Highlight->new( { cache_dir => $dir, debug_fh => $fh, } ), 'We should be able to create a new DB::Color::Highlight object'; isa_ok $highlight, 'DB::Color::Highlight', '... and the object it returns'; my $test_more_file = $INC{'Test/More.pm'}; open my $test_fh, '<', $test_more_file or die "Cannot open '$test_more_file' for reading: $!"; my $test_more_code = do { local $/; <$test_fh> }; close $test_fh; can_ok $highlight, '_get_path_and_file'; my ( $md5_path, $md5_file ) = $highlight->_get_path_and_file($test_more_code); ok $md5_path, '... and it should return a path'; ok $md5_file, '... and it should return a md5_filename'; my ( $md5_path1, $md5_file1 ) = $highlight->_get_path_and_file($test_more_code); is $md5_path1, $md5_path, 'Calling it more than once should return the same path'; is $md5_file1, $md5_file, '... and the same md5_file'; can_ok $highlight, '_get_highlighted_text'; ok my $highlighted = $highlight->_get_highlighted_text($test_more_code), '... and calling it should highlight our text (*cough*)'; my @old_lines = split /\n/ => $test_more_code; my @new_lines = split /\n/ => $highlighted; is @old_lines, @new_lines, '... and the number of lines of code should be the same'; diag @old_lines[165..169]; diag @new_lines[165..169]; done_testing;