6 use Test::More tests => 16;
11 BEGIN { use_ok("Catalyst::Utils") };
14 package This::Module::Is::Not::In::Inc::But::Does::Exist;
19 $SIG{__WARN__} = sub { $warnings++ };
21 ok( !Class::MOP::is_class_loaded("TestApp::View::Dump"), "component not yet loaded" );
23 Catalyst::Utils::ensure_class_loaded("TestApp::View::Dump");
25 ok( Class::MOP::is_class_loaded("TestApp::View::Dump"), "loaded ok" );
26 is( $warnings, 0, "no warnings emitted" );
30 Catalyst::Utils::ensure_class_loaded("TestApp::View::Dump");
31 is( $warnings, 0, "calling again doesn't reaload" );
33 ok( !Class::MOP::is_class_loaded("TestApp::View::Dump::Request"), "component not yet loaded" );
35 Catalyst::Utils::ensure_class_loaded("TestApp::View::Dump::Request");
36 ok( Class::MOP::is_class_loaded("TestApp::View::Dump::Request"), "loaded ok" );
38 is( $warnings, 0, "calling again doesn't reaload" );
41 eval { Catalyst::Utils::ensure_class_loaded("This::Module::Is::Probably::Not::There") };
42 ok( $@, "doesn't defatalize" );
43 like( $@, qr/There\.pm.*\@INC/, "error looks right" );
46 eval { Catalyst::Utils::ensure_class_loaded("__PACKAGE__") };
47 ok( $@, "doesn't defatalize" );
48 like( $@, qr/__PACKAGE__\.pm.*\@INC/, "errors sanely on __PACKAGE__.pm" );
51 Catalyst::Utils::ensure_class_loaded("TestApp::View::Dump::Response");
52 is( $@, "foo", '$@ is untouched' );
55 eval { Catalyst::Utils::ensure_class_loaded("This::Module::Is::Not::In::Inc::But::Does::Exist") };
56 ok( !$@, "no error when loading non existent .pm that *does* have a symbol table entry" );
59 eval { Catalyst::Utils::ensure_class_loaded('Silly::File::.#Name') };
60 like($@, qr/Malformed class Name/, 'errored when attempting to load a file beginning with a .');
63 eval { Catalyst::Utils::ensure_class_loaded('Silly::File::Name.pm') };
64 like($@, qr/Malformed class Name/, 'errored sanely when given a classname ending in .pm');