first pass RT4 merge, RT#13852
[freeside.git] / rt / t / api / cf_render_type.t
1 use strict;
2 use warnings;
3
4 use RT::Test tests => 13;
5
6 my $cf = RT::CustomField->new($RT::SystemUser);
7 my ( $id, $ret, $msg );
8
9 diag "single select";
10 ( $id, $msg ) = $cf->Create(
11     Name      => 'single_select',
12     Type      => 'Select',
13     MaxValues => '1',
14     Queue     => 0,
15 );
16 ok( $id, $msg );
17
18 is( $cf->RenderType, 'Select box', 'default render type is Select box' );
19 ( $ret, $msg ) = $cf->SetRenderType('Dropdown');
20 ok( $ret, 'changed to Dropdown' );
21 is( $cf->RenderType, 'Dropdown', 'render type is indeed updated' );
22
23 ( $ret, $msg ) = $cf->SetRenderType('List');
24 ok( $ret, 'changed to List' );
25 is( $cf->RenderType, 'List', 'render type is indeed updated' );
26
27 ( $ret, $msg ) = $cf->SetRenderType('fakeone');
28 ok( !$ret, 'failed to set an invalid render type' );
29 is( $cf->RenderType, 'List', 'render type is still List' );
30
31 diag "multiple select";
32 ( $id, $msg ) = $cf->Create(
33     Name       => 'multiple_select',
34     Type       => 'Select',
35     MaxValues  => '0',
36     Queue      => 0,
37     RenderType => 'List',
38 );
39
40 is( $cf->RenderType, 'List', 'set render type to List' );
41 ( $ret, $msg ) = $cf->SetRenderType('Dropdown');
42 ok( !$ret, 'Dropdown is invalid for multiple select' );
43
44 is( $cf->RenderType, 'List', 'render type is still List' );
45
46 ( $ret, $msg ) = $cf->SetRenderType('Select box');
47 ok( $ret, 'changed to Select box' );
48 is( $cf->RenderType, 'Select box', 'render type is indeed updated' );
49