RT 4.0.22
[freeside.git] / rt / t / web / login.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 34;
5
6 my ( $baseurl, $m ) = RT::Test->started_ok;
7
8 my $ticket = RT::Test->create_ticket(
9     Subject => 'ticket_foo',
10     Queue   => 'General',
11 );
12
13 my ( $user, $pass ) = ( 'root', 'password' );
14
15 diag "normal login";
16 {
17     $m->get($baseurl);
18     $m->title_is('Login');
19     is( $m->uri, $baseurl, "right url" );
20
21     $m->submit_form(
22         form_id => 'login',
23         fields  => {
24             user => $user,
25             pass => 'wrong pass',
26         }
27     );
28     $m->content_contains( "Your username or password is incorrect",
29         'login error message' );
30     $m->warning_like( qr/FAILED LOGIN for root/,
31         "got failed login warning" );
32
33     $m->submit_form(
34         form_id => 'login',
35         fields  => {
36             user => $user,
37             pass => $pass,
38         }
39     );
40
41     $m->title_is( 'RT at a glance', 'logged in' );
42
43     $m->follow_link_ok( { text => 'Logout' }, 'follow logout' );
44     $m->title_is( 'Logout', 'logout' );
45 }
46
47 diag "tangent login";
48
49 {
50     $m->get( $baseurl . '/Ticket/Display.html?id=1' );
51     $m->title_is('Login');
52     $m->submit_form(
53         form_id => 'login',
54         fields  => {
55             user => $user,
56             pass => $pass,
57         }
58     );
59     like( $m->uri, qr{/Ticket/Display\.html}, 'normal ticket page' );
60     $m->follow_link_ok( { text => 'Logout' }, 'follow logout' );
61 }
62
63 diag "mobile login with not mobile client";
64 {
65     $m->get( $baseurl . '/m' );
66     is( $m->uri, $baseurl . '/m', "right url" );
67     $m->content_contains( "/m/index.html?NotMobile=1", 'mobile login' );
68
69     $m->submit_form(
70         form_id => 'login',
71         fields  => {
72             user => $user,
73             pass => 'wrong pass',
74         }
75     );
76     $m->content_contains( "Your username or password is incorrect",
77         'login error message' );
78     $m->warning_like( qr/FAILED LOGIN for root/,
79         "got failed login warning" );
80
81     $m->submit_form(
82         form_id => 'login',
83         fields  => {
84             user => $user,
85             pass => $pass,
86         }
87     );
88     like( $m->uri, qr{\Q$baseurl/m\E}, "mobile url" );
89     $m->follow_link_ok( { text => 'Logout' }, 'follow logout' );
90     $m->content_contains( "/m/index.html?NotMobile=1",
91         'back to mobile login page' );
92     $m->content_lacks( 'Logout', 'really logout' );
93 }
94
95
96 diag "mobile normal login";
97 {
98
99     # default browser in android 2.3.6
100     $m->agent(
101 "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
102     );
103
104     $m->get($baseurl);
105     is( $m->uri, $baseurl, "right url" );
106     $m->content_contains( "/m/index.html?NotMobile=1", 'mobile login' );
107     $m->submit_form(
108         form_id => 'login',
109         fields  => {
110             user => $user,
111             pass => $pass,
112         }
113     );
114     is( $m->uri, $baseurl . '/m/', "mobile url" );
115     $m->follow_link_ok( { text => 'Logout' }, 'follow logout' );
116     $m->content_contains( "/m/index.html?NotMobile=1", 'back to mobile login page' );
117     $m->content_lacks( 'Logout', 'really logout' );
118 }
119
120 diag "mobile tangent login";
121 {
122     $m->get( $baseurl . '/Ticket/Display.html?id=1' );
123     $m->content_contains( "/m/index.html?NotMobile=1", 'mobile login' );
124     $m->submit_form(
125         form_id => 'login',
126         fields  => {
127             user => $user,
128             pass => $pass,
129         }
130     );
131     like( $m->uri, qr{/m/ticket/show}, 'mobile ticket page' );
132 }
133