use AutoPrereqs, making sure to skip optional plugins
[p5sagit/Devel-REPL.git] / t / load_core.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5 use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
6 use Module::Runtime 'use_module';
7 use Test::Fatal;
8
9 _use_ok('Devel::REPL');
10 _use_ok('Devel::REPL::Script');
11 _use_ok('Devel::REPL::Plugin::Colors');
12 _use_ok('Devel::REPL::Plugin::Commands');
13
14 SKIP: {
15     eval 'use PPI; 1' or skip 'PPI not installed: skipping completion plugins', 6;
16
17     _use_ok('Devel::REPL::Plugin::Completion');
18     _use_ok('Devel::REPL::Plugin::CompletionDriver::Globals');
19     _use_ok('Devel::REPL::Plugin::CompletionDriver::Methods');
20
21     test_plugin('File::Next', 'CompletionDriver::INC');
22     test_plugin('B::Keywords', 'CompletionDriver::Keywords');
23     test_plugin('Lexical::Persistence', 'CompletionDriver::LexEnv');
24 };
25
26 test_plugin('Lexical::Persistence', 'LexEnv');
27
28 test_plugin('Data::Dumper::Concise', 'DDC');
29
30 test_plugin('Data::Dump::Streamer', 'DDS');
31
32 _use_ok('Devel::REPL::Plugin::DumpHistory');
33 _use_ok('Devel::REPL::Plugin::FancyPrompt');
34 _use_ok('Devel::REPL::Plugin::FindVariable');
35 _use_ok('Devel::REPL::Plugin::History');
36
37 test_plugin('Sys::SigAction', 'Interrupt');
38
39 # _use_ok('Devel::REPL::Plugin::Interrupt') unless $^O eq 'MSWin32';
40
41 test_plugin('PPI', 'MultiLine::PPI');
42
43 test_plugin('App::Nopaste', 'Nopaste');
44
45 _use_ok('Devel::REPL::Plugin::OutputCache');
46 _use_ok('Devel::REPL::Plugin::Packages');
47 _use_ok('Devel::REPL::Plugin::Peek');
48
49 test_plugin('PPI' ,'PPI');
50
51 _use_ok('Devel::REPL::Plugin::ReadLineHistory');
52
53 test_plugin('Module::Refresh', 'Refresh');
54
55 _use_ok('Devel::REPL::Plugin::ShowClass');
56 _use_ok('Devel::REPL::Plugin::Timing');
57 _use_ok('Devel::REPL::Plugin::Turtles');
58
59 sub _use_ok {
60     my $module = shift;
61     is(exception { use_module $module }, undef, $module . ' ok');
62 }
63
64 sub test_plugin
65 {
66     my ($prereq, $plugin) = @_;
67
68     SKIP: {
69         eval "use $prereq; 1"
70             or skip "$prereq not installed: skipping $plugin", 1;
71
72         _use_ok("Devel::REPL::Plugin::$plugin");
73     }
74 }
75
76 done_testing;