You can checkout the source code for this example from the catalyst
subversion repository as per the instructions in
-L<Catalyst::Manual::Tutorial::Intro>
+L<Catalyst::Manual::Tutorial::Intro|Catalyst::Manual::Tutorial::Intro>.
+
=head1 RUNNING THE "CANNED" CATALYST TESTS
$ prove --lib lib t
-There will be a lot of output because we have the C<-Debug> flag enabled
-in C<lib/MyApp.pm> (see the C<CATALYST_DEBUG=0> tip below for a quick
-and easy way to reduce the clutter). Look for lines like this for
-errors:
+There will be a lot of output because we have the C<-Debug> flag
+enabled in C<lib/MyApp.pm> (see the C<CATALYST_DEBUG=0> tip below for
+a quick and easy way to reduce the clutter). Look for lines like this
+for errors:
# Failed test 'Request should succeed'
# in t/controller_Books.t at line 8.
# Looks like you failed 1 test of 3.
+B<Note:> Depending on the versions of various modules you have
+installed, you might get some C<used only once> warnings -- you can
+ignore these. If you are following along in Ubuntu 8.10, you can
+prevent them by adding C<no warnings;> above line 49 in
+C</usr/lib/perl5/Template/Base.pm> to match the following:
+
+ ...
+ { no strict qw( refs );
+ no warnings;
+ $argnames = \@{"$class\::BASEARGS"} || [ ];
+ }
+ ...
+
The redirection used by the Authentication plugins will cause several
failures in the default tests. You can fix this by making the following
changes:
3) Change the C<request('/books')-E<gt>is_success> to
C<request('/books')-E<gt>is_redirect> in C<t/controller_Books.t>.
+4) Add C<use MyApp;> to the top of C<t/view_TT.t>.
+
As you can see in the C<prove> command line above, the C<--lib> option
is used to set the location of the Catalyst C<lib> directory. With this
command, you will get all of the usual development server debug output,
"Check we ARE logged in" ) for $ua1, $ua2;
# 'Click' the 'Logout' link (see also 'text_regex' and 'url_regex' options)
- $_->follow_link_ok({n => 1}, "Logout via first link on page") for $ua1, $ua2;
+ $_->follow_link_ok({n => 4}, "Logout via first link on page") for $ua1, $ua2;
$_->title_is("Login", "Check for login title") for $ua1, $ua2;
$_->content_contains("You need to log in to use this application",
"Check we are NOT logged in") for $ua1, $ua2;
Experiment with the C<DBIC_TRACE>, C<CATALYST_DEBUG>
and C<-v> settings. If you find that there are errors, use the
-techniques discussed in the "Catalyst Debugging" section (Part 6) to
+techniques discussed in the "Catalyst Debugging" section (Part 7) to
isolate and fix any problems.
If you want to run the test case under the Perl interactive debugger,
temporarily insert a line similar to the following right after the
failed test:
- warn $ua1->content;
+ diag $ua1->content;
This will cause the full HTML returned by the request to be displayed.
it runs your full application; however, this can complicate things when
you want to support multiple databases. One solution is to allow the
database specification to be overridden with an environment variable.
-For example, open C<lib/MyApp/Model/MyAppDB.pm> in your editor and
+For example, open C<lib/MyApp/Model/DB.pm> in your editor and
change the C<__PACKAGE__-E<gt>config(...> declaration to resemble:
my $dsn = $ENV{MYAPP_DSN} ||= 'dbi:SQLite:myapp.db';
__PACKAGE__->config(
- schema_class => 'MyApp::Schema::MyAppDB',
+ schema_class => 'MyApp::Schema',
connect_info => [
$dsn,
],
Please report any errors, issues or suggestions to the author. The
most recent version of the Catalyst Tutorial can be found at
-L<http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/>.
+L<http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Manual/5.70/trunk/lib/Catalyst/Manual/Tutorial/>.
-Copyright 2006, Kennedy Clark, under Creative Commons License
-(L<http://creativecommons.org/licenses/by-nc-sa/2.5/>).
+Copyright 2006-2008, Kennedy Clark, under Creative Commons License
+(L<http://creativecommons.org/licenses/by-sa/3.0/us/>).