5 use RT::Test tests => 56;
7 my ( $url, $m ) = RT::Test->started_ok;
10 my %class = map { $_ => '' } qw/foo bar/;
12 diag "create classes foo and bar" if $ENV{TEST_VERBOSE};
14 for my $name ( keys %class ) {
15 $m->get_ok( '/Admin/Articles/Classes/Modify.html?Create=1',
16 'class create page' );
20 fields => { Name => $name, HotList => 1 },
23 $m->content_contains( "Modify the Class $name",
24 'created class $name' );
25 my ($id) = ( $m->content =~ /name="id" value="(\d+)"/ );
26 ok( $id, "id of $name" );
30 diag "create articles in foo and bar" if $ENV{TEST_VERBOSE};
32 for my $name ( keys %class ) {
33 $m->get_ok( '/Articles/Article/Edit.html?Class=' . $class{$name},
34 'article create page' );
38 fields => { Name => "article $name" }
41 $m->content_like( qr/Article \d+ created/, "created article $name" );
44 diag "apply foo to queue General" if $ENV{TEST_VERBOSE};
46 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{foo},
50 fields => { 'AddClass-' . $class{foo} => 1 },
51 button => 'UpdateObjs',
53 $m->content_contains( 'Object created', 'applied foo to General' );
58 diag "create ticket in General" if $ENV{TEST_VERBOSE};
61 $m->get_ok( '/Ticket/Create.html?Queue=1', 'ticket create page' );
64 fields => { 'Subject' => 'test article', Content => 'test article' },
66 ($ticket_id) = ( $m->content =~ /Ticket \d+ created/ );
67 ok( $ticket_id, "id of ticket: $ticket_id" );
70 diag "update ticket to see if there is article foo"
71 if $ENV{TEST_VERBOSE};
74 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
75 'ticket update page' );
76 $m->content_contains( 'article foo:', 'got article foo in hotlist' );
77 $m->content_lacks( 'article bar:', 'no article bar in hotlist' );
81 fields => { 'Articles_Content' => 'article' },
84 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
85 $m->content_lacks( 'article bar', 'no article bar' );
87 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
88 'ticket update page' );
91 fields => { 'Articles-Include-Article-Named' => 'article foo' },
94 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
95 $m->content_lacks( 'article bar', 'no article bar' );
97 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
98 'ticket update page' );
101 fields => { 'Articles-Include-Article-Named' => 'articlei bar' },
104 $m->content_unlike( qr/article foo.*article foo/s, 'no article foo' );
105 $m->content_lacks( 'article bar', 'no article bar' );
108 diag "apply bar to globally" if $ENV{TEST_VERBOSE};
110 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{bar},
114 fields => { 'AddClass-' . $class{bar} => 0 },
115 button => 'UpdateObjs',
117 $m->content_contains( 'Object created', 'applied bar globally' );
120 diag "update ticket to see if there are both article foo and bar"
121 if $ENV{TEST_VERBOSE};
124 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
125 'ticket update page' );
126 $m->content_contains( 'article foo:', 'got article foo in hotlist' );
127 $m->content_contains( 'article bar:', 'got article bar in hotlist' );
131 fields => { 'Articles_Content' => 'article' },
134 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
135 $m->content_like( qr/article bar.*article bar/s, 'selected article bar' );
137 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
138 'ticket update page' );
141 fields => { 'Articles-Include-Article-Named' => 'article foo' },
144 $m->content_like( qr/article foo.*article foo/s, 'selected article foo' );
145 $m->content_unlike( qr/article bar.*article bar/s, 'no article bar' );
147 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
148 'ticket update page' );
151 fields => { 'Articles-Include-Article-Named' => 'article bar' },
154 $m->content_like( qr/article bar.*article bar/s, 'selected article bar' );
155 $m->content_unlike( qr/article foo.*article foo/s, 'no article foo' );
159 diag "remove both foo and bar" if $ENV{TEST_VERBOSE};
161 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{foo},
165 fields => { 'RemoveClass-' . $class{foo} => 1 },
166 button => 'UpdateObjs',
168 $m->content_contains( 'Object deleted', 'removed foo' );
170 $m->get_ok( '/Admin/Articles/Classes/Objects.html?id=' . $class{bar},
174 fields => { 'RemoveClass-' . $class{bar} => 0 },
175 button => 'UpdateObjs',
177 $m->content_contains( 'Object deleted', 'remoked bar' );
180 diag "update ticket to see if there are both article foo and bar"
181 if $ENV{TEST_VERBOSE};
184 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
185 'ticket update page' );
186 $m->content_lacks( 'article foo:', 'no article foo in hotlist' );
187 $m->content_lacks( 'article bar:', 'no article bar in hotlist' );
191 fields => { 'Articles_Content' => 'article' },
194 $m->content_lacks( 'article foo', 'no article foo' );
195 $m->content_lacks( 'article bar', 'no article bar' );
197 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
198 'ticket update page' );
201 fields => { 'Articles-Include-Article-Named' => 'article foo' },
204 $m->content_lacks( 'article foo', 'no article foo' );
205 $m->content_lacks( 'article bar', 'no article bar' );
207 $m->get_ok( '/Ticket/Update.html?Action=Comment&id=' . $ticket_id,
208 'ticket update page' );
211 fields => { 'Articles-Include-Article-Named' => 'article bar' },
214 $m->content_lacks( 'article foo', 'no article foo' );
215 $m->content_lacks( 'article bar', 'no article bar' );