6 use RT::Test tests => 56;
8 my ( $url, $m ) = RT::Test->started_ok;
11 my %class = map { $_ => '' } qw/foo bar/;
13 diag "create classes foo and bar" if $ENV{TEST_VERBOSE};
15 for my $name ( keys %class ) {
16 $m->get_ok( '/Admin/Articles/Classes/Modify.html?Create=1',
17 'class create page' );
21 fields => { Name => $name, HotList => 1 },
24 $m->content_contains( "Modify the Class $name",
25 'created class $name' );
26 my ($id) = ( $m->content =~ /name="id" value="(\d+)"/ );
27 ok( $id, "id of $name" );
31 diag "create articles in foo and bar" if $ENV{TEST_VERBOSE};
33 for my $name ( keys %class ) {
34 $m->get_ok( '/Articles/Article/Edit.html?Class=' . $class{$name},
35 'article create page' );
39 fields => { Name => "article $name" }
42 $m->content_like( qr/Article \d+ created/, "created article $name" );
45 diag "apply foo to queue General" if $ENV{TEST_VERBOSE};
47 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{foo},
51 fields => { 'AddClass-' . $class{foo} => 1 },
52 button => 'UpdateObjs',
54 $m->content_contains( 'Object created', 'applied foo to General' );
59 diag "create ticket in General" if $ENV{TEST_VERBOSE};
62 $m->get_ok( '/Ticket/Create.html?Queue=1', 'ticket create page' );
65 fields => { 'Subject' => 'test article', Content => 'test article' },
67 ($ticket_id) = ( $m->content =~ /Ticket \d+ created/ );
68 ok( $ticket_id, "id of ticket: $ticket_id" );
71 diag "update ticket to see if there is article foo"
72 if $ENV{TEST_VERBOSE};
75 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
76 'ticket update page' );
77 $m->content_contains( 'article foo:', 'got article foo in hotlist' );
78 $m->content_lacks( 'article bar:', 'no article bar in hotlist' );
82 fields => { 'Articles_Content' => 'article' },
85 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
86 $m->content_lacks( 'article bar', 'no article bar' );
88 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
89 'ticket update page' );
92 fields => { 'Articles-Include-Article-Named' => 'article foo' },
95 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
96 $m->content_lacks( 'article bar', 'no article bar' );
98 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
99 'ticket update page' );
102 fields => { 'Articles-Include-Article-Named' => 'articlei bar' },
105 $m->content_unlike( qr/article foo.*article foo/s, 'no article foo' );
106 $m->content_lacks( 'article bar', 'no article bar' );
109 diag "apply bar to globally" if $ENV{TEST_VERBOSE};
111 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{bar},
115 fields => { 'AddClass-' . $class{bar} => 0 },
116 button => 'UpdateObjs',
118 $m->content_contains( 'Object created', 'applied bar globally' );
121 diag "update ticket to see if there are both article foo and bar"
122 if $ENV{TEST_VERBOSE};
125 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
126 'ticket update page' );
127 $m->content_contains( 'article foo:', 'got article foo in hotlist' );
128 $m->content_contains( 'article bar:', 'got article bar in hotlist' );
132 fields => { 'Articles_Content' => 'article' },
135 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
136 $m->content_like( qr/article bar.*article bar/s, 'selected article bar' );
138 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
139 'ticket update page' );
142 fields => { 'Articles-Include-Article-Named' => 'article foo' },
145 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
146 $m->content_unlike( qr/article bar.*article bar/s, 'no article bar' );
148 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
149 'ticket update page' );
152 fields => { 'Articles-Include-Article-Named' => 'article bar' },
155 $m->content_like( qr/article bar.*article bar/s, 'selected article bar' );
156 $m->content_unlike( qr/article foo.*article foo/s, 'no article foo' );
160 diag "remove both foo and bar" if $ENV{TEST_VERBOSE};
162 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{foo},
166 fields => { 'RemoveClass-' . $class{foo} => 1 },
167 button => 'UpdateObjs',
169 $m->content_contains( 'Object deleted', 'removed foo' );
171 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{bar},
175 fields => { 'RemoveClass-' . $class{bar} => 0 },
176 button => 'UpdateObjs',
178 $m->content_contains( 'Object deleted', 'remoked bar' );
181 diag "update ticket to see if there are both article foo and bar"
182 if $ENV{TEST_VERBOSE};
185 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
186 'ticket update page' );
187 $m->content_lacks( 'article foo:', 'no article foo in hotlist' );
188 $m->content_lacks( 'article bar:', 'no article bar in hotlist' );
192 fields => { 'Articles_Content' => 'article' },
195 $m->content_lacks( 'article foo', 'no article foo' );
196 $m->content_lacks( 'article bar', 'no article bar' );
198 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
199 'ticket update page' );
202 fields => { 'Articles-Include-Article-Named' => 'article foo' },
205 $m->content_lacks( 'article foo', 'no article foo' );
206 $m->content_lacks( 'article bar', 'no article bar' );
208 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
209 'ticket update page' );
212 fields => { 'Articles-Include-Article-Named' => 'article bar' },
215 $m->content_lacks( 'article foo', 'no article foo' );
216 $m->content_lacks( 'article bar', 'no article bar' );