merging RT 4.0.6
[freeside.git] / rt / t / web / installer.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 $ENV{RT_TEST_WEB_HANDLER} = 'plack+rt-server';
6 use RT::Test
7     tests       => undef,
8     nodb        => 1,
9     server_ok   => 1;
10
11 my ($base, $m) = RT::Test->started_ok;
12
13 $m->warning_like(qr/If this is a new installation of RT/,
14                  "Got startup warning");
15
16 $m->get_ok($base);
17 like $m->uri, qr/Install/, 'at installer';
18
19 diag "Testing language change";
20 {
21     $m->submit_form_ok(
22         {
23             with_fields => {
24                 Lang => 'fr',
25             },
26             button => 'ChangeLang',
27         },
28         'change language to french'
29     );
30     $m->content_like(qr/RT\s+pour\s+example\.com/i);
31     $m->submit_form_ok(
32         {
33             with_fields => {
34                 Lang => 'en',
35             },
36             button => 'ChangeLang',
37         },
38         'change language to english'
39     );
40     $m->content_like(qr/RT\s+for\s+example\.com/i);
41 }
42
43 diag "Walking through install screens setting defaults";
44 {
45     $m->click_ok('Run');
46
47     # Database type
48     $m->content_contains('DatabaseType');
49     $m->content_contains($_, "found database $_")
50         for qw(MySQL PostgreSQL Oracle SQLite);
51     $m->submit();
52
53     # Database details
54     $m->content_contains('DatabaseName');
55     $m->submit();
56     $m->content_contains('Connection succeeded');
57     $m->submit_form_ok({ button => 'Next' });
58
59     # Basic options
60     $m->submit_form_ok({
61         with_fields => {
62             Password    => 'password',
63         }
64     }, 'set root password');
65
66     # Mail options
67     $m->submit_form_ok({
68         with_fields => {
69             OwnerEmail  => 'admin@example.com',
70         },
71     }, 'set admin email');
72
73     # Mail addresses
74     $m->submit_form_ok({
75         with_fields => {
76             CorrespondAddress   => 'rt@example.com',
77             CommentAddress      => 'rt-comment@example.com',
78         },
79     }, 'set addresses');
80
81     # Initialize database
82     $m->content_contains('database');
83     $m->submit();
84
85     # Finish
86     $m->content_contains('/RT_SiteConfig.pm');
87     $m->content_contains('Finish');
88     $m->submit();
89
90     $m->content_contains('Login');
91     ok $m->login(), 'logged in';
92 }
93
94 undef $m;
95 done_testing;