summaryrefslogtreecommitdiff
path: root/rt/t/web/ticket_preserve_basics.t
diff options
context:
space:
mode:
Diffstat (limited to 'rt/t/web/ticket_preserve_basics.t')
-rw-r--r--rt/t/web/ticket_preserve_basics.t110
1 files changed, 110 insertions, 0 deletions
diff --git a/rt/t/web/ticket_preserve_basics.t b/rt/t/web/ticket_preserve_basics.t
new file mode 100644
index 0000000..1459414
--- /dev/null
+++ b/rt/t/web/ticket_preserve_basics.t
@@ -0,0 +1,110 @@
+use strict;
+use warnings;
+
+use RT::Test tests => undef;
+
+my $ticket = RT::Test->create_ticket(
+ Subject => 'test ticket basics',
+ Queue => 1,
+);
+
+my ( $url, $m ) = RT::Test->started_ok;
+ok( $m->login, 'logged in' );
+
+my $root = RT::Test->load_or_create_user( Name => 'root' );
+
+# Failing test where the time units are not preserved when you
+# click 'Add more files' on Display
+my @form_tries = (
+ {Subject => "hello rt"},
+ {Status => "open"},
+ {Owner => $root->id},
+
+ (
+ map +{
+ "Time$_" => undef,
+ "Time$_-TimeUnits" => 'hours',
+ }, qw/Estimated Worked Left/
+ ),
+ (
+ map +{
+ "Time$_" => '1',
+ "Time$_-TimeUnits" => 'hours',
+ }, qw/Estimated Worked Left/
+ ),
+
+ {InitialPriority => "10"},
+ {FinalPriority => "10"},
+);
+
+for my $try (@form_tries) {
+ $m->goto_create_ticket(1);
+ $m->form_name('TicketCreate');
+ $m->set_fields(%$try);
+ $m->click('AddMoreAttach');
+ $m->form_name('TicketCreate');
+ for my $field (keys %$try) {
+ is(
+ $m->value($field),
+ defined($try->{$field}) ? $try->{$field} : '',
+ "field $field is the same after the form was submitted"
+ );
+ }
+}
+
+# Test for time unit preservation in Jumbo
+for my $try (@form_tries) {
+ my $jumbo_ticket = RT::Test->create_ticket(
+ Subject => 'test jumbo ticket basics',
+ Queue => 1,
+ );
+
+ local($try->{Priority}) = delete local($try->{InitialPriority})
+ if exists $try->{InitialPriority};
+
+ $m->get( $url . "/Ticket/ModifyAll.html?id=" . $jumbo_ticket->id );
+ $m->form_name('TicketModifyAll');
+ $m->set_fields(%$try);
+ $m->click('AddMoreAttach');
+ $m->form_name('TicketModifyAll');
+ for my $field (keys %$try) {
+ is(
+ $m->value($field),
+ defined($try->{$field}) ? $try->{$field} : '',
+ "field $field is the same after the Jumbo form was submitted"
+ );
+ }
+}
+
+my $cf = RT::Test->load_or_create_custom_field(
+ Name => 'CF1',
+ Type => 'Freeform',
+ Pattern => '.', # mandatory
+ Queue => 'General',
+);
+
+# More time unit testing by a failing CF validation
+$m->get_ok($url.'/Admin/CustomFields/Objects.html?id='.$cf->id);
+$m->form_with_fields('UpdateObjs');
+$m->tick('AddCustomField-'.$cf->id => '0'); # Make CF global
+$m->click('UpdateObjs');
+$m->text_contains('Object created', 'CF applied globally');
+
+# Test for preservation when a ticket is submitted and CF validation fails
+for my $try (@form_tries) {
+ $m->goto_create_ticket(1);
+ $m->form_name('TicketCreate');
+ $m->set_fields(%$try);
+ $m->submit();
+ $m->form_name('TicketCreate');
+ for my $field (keys %$try) {
+ is(
+ $m->value($field),
+ defined($try->{$field}) ? $try->{$field} : '',
+ "field $field is the same after the form was submitted"
+ );
+ }
+}
+
+undef $m;
+done_testing();