summaryrefslogtreecommitdiff
path: root/rt/t/web/installer.t
blob: a34cdcb4b0a8ee96a46472adf392c09256d80d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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');
    if (RT->Config->Get('DatabaseType') eq 'SQLite') {
        $m->submit;
    } else {
        $m->submit_form(with_fields => {
            DatabaseAdmin         => $ENV{RT_DBA_USER},
            DatabaseAdminPassword => $ENV{RT_DBA_PASSWORD},
        });
    }
    $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';
}

RT::Test::__drop_database();
undef $m;
done_testing;