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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
use strict;
use warnings;
use RT::Test tests => 24;
my ($baseurl, $agent) = RT::Test->started_ok;
my $url = $agent->rt_base_url;
# get the top page
{
$agent->get($url);
is ($agent->status, 200, "Loaded a page");
}
# test a login
{
$agent->login('root' => 'password');
# the field isn't named, so we have to click link 0
is( $agent->status, 200, "Fetched the page ok");
$agent->content_contains("Logout", "Found a logout link");
}
{
$agent->goto_create_ticket(1);
is ($agent->status, 200, "Loaded Create.html");
$agent->form_name('TicketCreate');
my $string = Encode::decode("UTF-8","I18N Web Testing æøå");
$agent->field('Subject' => "Ticket with utf8 body");
$agent->field('Content' => $string);
ok($agent->submit, "Created new ticket with $string as Content");
$agent->content_contains($string, "Found the content");
ok($agent->{redirected_uri}, "Did redirection");
{
my $ticket = RT::Test->last_ticket;
my $content = $ticket->Transactions->First->Content;
like(
$content, qr{$string},
'content is there, API check'
);
}
}
{
$agent->goto_create_ticket(1);
is ($agent->status, 200, "Loaded Create.html");
$agent->form_name('TicketCreate');
my $string = Encode::decode( "UTF-8","I18N Web Testing æøå");
$agent->field('Subject' => $string);
$agent->field('Content' => "Ticket with utf8 subject");
ok($agent->submit, "Created new ticket with $string as Content");
$agent->content_contains($string, "Found the content");
ok($agent->{redirected_uri}, "Did redirection");
{
my $ticket = RT::Test->last_ticket;
is(
$ticket->Subject, $string,
'subject is correct, API check'
);
}
}
# Update time worked in hours
{
$agent->follow_link( text_regex => qr/Basics/ );
$agent->submit_form( form_name => 'TicketModify',
fields => { TimeWorked => 5, 'TimeWorked-TimeUnits' => "hours" }
);
$agent->content_contains("5 hours", "5 hours is displayed");
$agent->content_contains("300 min", "but minutes is also");
}
$agent->get( $url."static/images/test.png" );
my $file = RT::Test::get_relocatable_file(
File::Spec->catfile(
qw(.. .. share static images test.png)
)
);
is(
length($agent->content),
-s $file,
"got a file of the correct size ($file)",
);
#
# XXX: hey-ho, we have these tests in t/web/query-builder
# TODO: move everything about QB there
my $response = $agent->get($url."Search/Build.html");
ok( $response->is_success, "Fetched " . $url."Search/Build.html" );
# Parsing TicketSQL
#
# Adding items
# set the first value
ok($agent->form_name('BuildQuery'));
$agent->field("AttachmentField", "Subject");
$agent->field("AttachmentOp", "LIKE");
$agent->field("ValueOfAttachment", "aaa");
$agent->submit("AddClause");
# set the next value
ok($agent->form_name('BuildQuery'));
$agent->field("AttachmentField", "Subject");
$agent->field("AttachmentOp", "LIKE");
$agent->field("ValueOfAttachment", "bbb");
$agent->submit("AddClause");
ok($agent->form_name('BuildQuery'));
# get the query
my $query = $agent->current_form->find_input("Query")->value;
# strip whitespace from ends
$query =~ s/^\s*//g;
$query =~ s/\s*$//g;
# collapse other whitespace
$query =~ s/\s+/ /g;
is ($query, "Subject LIKE 'aaa' AND Subject LIKE 'bbb'");
|