[Rt-commit] rt branch, 4.0/loose-cf-name-in-rest, updated. rt-4.0.5-63-g6554592

? sunnavy sunnavy at bestpractical.com
Tue Feb 14 04:34:32 EST 2012


The branch, 4.0/loose-cf-name-in-rest has been updated
       via  6554592f75c000d3660da9a044fe2e19ea323d63 (commit)
      from  c6970ddd7f22a3113091b65c9c970ef733894630 (commit)

Summary of changes:
 t/web/command_line_cf_edge_cases.t |   87 ++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)
 create mode 100644 t/web/command_line_cf_edge_cases.t

- Log -----------------------------------------------------------------
commit 6554592f75c000d3660da9a044fe2e19ea323d63
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Tue Feb 14 17:33:12 2012 +0800

    test cf name edge cases in rest

diff --git a/t/web/command_line_cf_edge_cases.t b/t/web/command_line_cf_edge_cases.t
new file mode 100644
index 0000000..9abfec8
--- /dev/null
+++ b/t/web/command_line_cf_edge_cases.t
@@ -0,0 +1,87 @@
+use strict;
+use warnings;
+use Test::Expect;
+use RT::Test tests => 100, actual_server => 1;
+my ( $baseurl, $m ) = RT::Test->started_ok;
+
+my $rt_tool_path = "$RT::BinPath/rt";
+
+$ENV{'RTUSER'}   = 'root';
+$ENV{'RTPASSWD'} = 'password';
+$ENV{'RTSERVER'} = RT->Config->Get('WebBaseURL');
+$ENV{'RTDEBUG'}  = '1';
+$ENV{'RTCONFIG'} = '/dev/null';
+
+my @cfs = (
+    'foo=bar',  'foo.bar', 'foo:bar', 'foo bar',
+    'foo{bar}', 'foo-bar', 'foo()bar',
+);
+for my $name (@cfs) {
+    RT::Test->load_or_create_custom_field(
+        Name      => $name,
+        Type      => 'Freeform',
+        MaxValues => 1,
+        Queue     => 0,
+    );
+}
+
+expect_run(
+    command => "$rt_tool_path shell",
+    prompt  => 'rt> ',
+    quit    => 'quit',
+);
+
+# create a ticket
+for my $name (@cfs) {
+    expect_send(
+qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo:b a.r=baz'},
+        "creating a ticket for cf $name"
+    );
+
+    expect_handle->before() =~ /Ticket (\d+) created/;
+    my $ticket_id = $1;
+
+    expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
+        'checking new value' );
+    expect_like( qr/CF\.{\Q$name\E}: foo:b a\.r=baz/i, 'verified change' );
+
+    expect_send( "edit ticket/$ticket_id set 'CF.{$name}=bar'",
+        "changing cf $name to bar" );
+    expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
+    expect_send( "show ticket/$ticket_id -f 'CF.{$name}'",
+        'checking new value' );
+    expect_like( qr/CF\.{\Q$name\E}: bar/i, 'verified change' );
+
+    expect_send(
+qq{create -t ticket set subject='test cf $name' 'CF-$name=foo:b a.r=baz'},
+        "creating a ticket for cf $name"
+    );
+    expect_handle->before() =~ /Ticket (\d+) created/;
+    $ticket_id = $1;
+
+    expect_send( "show ticket/$ticket_id -f 'CF-$name'", 'checking new value' );
+    if ( $name eq 'foo=bar' ) {
+        expect_like( qr/CF\.{\Q$name\E}: $/mi,
+            "can't use = in cf name with old style" );
+    }
+    else {
+        expect_like( qr/CF\.{\Q$name\E}: foo:b a\.r=baz/i, 'verified change' );
+        expect_send( "edit ticket/$ticket_id set 'CF-$name=bar'",
+            "changing cf $name to bar" );
+        expect_like( qr/Ticket $ticket_id updated/, 'changed cf' );
+        expect_send( "show ticket/$ticket_id -f 'CF-$name'",
+            'checking new value' );
+        expect_like( qr/CF\.{\Q$name\E}: bar/i, 'verified change' );
+    }
+}
+
+my @invalid = ('foo,bar');
+for my $name (@invalid) {
+    expect_send(
+        qq{create -t ticket set subject='test cf $name' 'CF.{$name}=foo'},
+        "creating a ticket for cf $name" );
+    expect_like( qr/Unrecognised argument 'CF\.{foo,bar}=foo'/i,
+        '$name is not a valid cf name' );
+}
+
+expect_quit();

-----------------------------------------------------------------------


More information about the Rt-commit mailing list