diff options
Diffstat (limited to 'rt/t/web/installer.t')
-rw-r--r-- | rt/t/web/installer.t | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/rt/t/web/installer.t b/rt/t/web/installer.t new file mode 100644 index 000000000..4dc82df47 --- /dev/null +++ b/rt/t/web/installer.t @@ -0,0 +1,95 @@ +#!/usr/bin/perl +use strict; +use warnings; + +$ENV{RT_TEST_WEB_HANDLER} = 'plack+rt-server'; +use RT::Test + tests => undef, + nodb => 1, + server_ok => 1; + +my ($base, $m) = RT::Test->started_ok; + +$m->warning_like(qr/If this is a new installation of RT/, + "Got startup warning"); + +$m->get_ok($base); +like $m->uri, qr/Install/, 'at installer'; + +diag "Testing language change"; +{ + $m->submit_form_ok( + { + with_fields => { + Lang => 'fr', + }, + button => 'ChangeLang', + }, + 'change language to french' + ); + $m->content_like(qr/RT\s+pour\s+example\.com/i); + $m->submit_form_ok( + { + with_fields => { + Lang => 'en', + }, + button => 'ChangeLang', + }, + 'change language to english' + ); + $m->content_like(qr/RT\s+for\s+example\.com/i); +} + +diag "Walking through install screens setting defaults"; +{ + $m->click_ok('Run'); + + # Database type + $m->content_contains('DatabaseType'); + $m->content_contains($_, "found database $_") + for qw(MySQL PostgreSQL Oracle SQLite); + $m->submit(); + + # Database details + $m->content_contains('DatabaseName'); + $m->submit(); + $m->content_contains('Connection succeeded'); + $m->submit_form_ok({ button => 'Next' }); + + # Basic options + $m->submit_form_ok({ + with_fields => { + Password => 'password', + } + }, 'set root password'); + + # Mail options + $m->submit_form_ok({ + with_fields => { + OwnerEmail => 'admin@example.com', + }, + }, 'set admin email'); + + # Mail addresses + $m->submit_form_ok({ + with_fields => { + CorrespondAddress => 'rt@example.com', + CommentAddress => 'rt-comment@example.com', + }, + }, 'set addresses'); + + # Initialize database + $m->content_contains('database'); + $m->submit(); + + # Finish + $m->content_contains('/RT_SiteConfig.pm'); + $m->content_contains('Finish'); + $m->submit(); + + $m->content_contains('Login'); + ok $m->login(), 'logged in'; +} + +undef $m; +done_testing; |