[Rt-commit] rt 01/03: Add test for lifecycle statuses with accents

craig kaiser craig at bestpractical.com
Fri Jul 16 16:40:09 UTC 2021


This is an automated email from the git hooks/post-receive script.

craig pushed a commit to branch 5.0/lifecycle-status-accents
in repository rt.

commit 5f8fc9406915be96679d9158b2e16a58ae507c78
Author: craig kaiser <craig at bestpractical.com>
AuthorDate: Fri Jul 16 11:29:34 2021 -0400

    Add test for lifecycle statuses with accents
---
 t/lifecycles/basics.t | 16 ++++++++++++++++
 t/lifecycles/types.t  | 12 +++++++-----
 t/lifecycles/utils.pl |  5 +++++
 3 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/t/lifecycles/basics.t b/t/lifecycles/basics.t
index 00ba375db7..e6049652ad 100644
--- a/t/lifecycles/basics.t
+++ b/t/lifecycles/basics.t
@@ -307,4 +307,20 @@ diag "Role rights are checked for lifecycles at asset level";
     is $lifecycle->Name, 'assets', 'Test LifecycleObj method';
 }
 
+diag "Test that our French lifecycle is decoded correctly";
+{
+    # Without this we see lc('INGÉNIERIE') being converted to 'ingÉnierie' which is incorrect.
+    # We should expect the output to be 'ingénierie'.
+    use locale qw/:characters/;
+
+    my $lifecycles = RT->Config->Get('Lifecycles');
+    my $french = $lifecycles->{'français'};
+
+    foreach my $type ( qw/initial active inactive/ ) {
+        foreach my $status ( @{$lifecycles->{'français'}->{$type}} ) {
+            is $RT::Lifecycle::LIFECYCLES_CACHE{'français'}->{'canonical_case'}->{lc($status)}, $status, "Successfully converted accented status to lowercase.";
+        }
+    }
+}
+
 done_testing;
diff --git a/t/lifecycles/types.t b/t/lifecycles/types.t
index ed8e0b572d..25a090722e 100644
--- a/t/lifecycles/types.t
+++ b/t/lifecycles/types.t
@@ -1,15 +1,17 @@
 use strict;
 use warnings;
 
+use locale qw/:characters/;
+
 BEGIN {require  './t/lifecycles/utils.pl'};
 
-is_deeply( [ RT::Lifecycle->ListAll ], [qw/ approvals default delivery sales sales-engineering/],
+is_deeply( [ RT::Lifecycle->ListAll ], [qw/ approvals default delivery français sales sales-engineering/],
        "Get the list of all lifecycles (implicitly for for tickets)");
-is_deeply( [ RT::Lifecycle->ListAll('ticket') ],  [qw/ approvals default delivery sales sales-engineering/],
+is_deeply( [ RT::Lifecycle->ListAll('ticket') ],  [qw/ approvals default delivery français sales sales-engineering/],
        "Get the list of all lifecycles for tickets");
-is_deeply( [ RT::Lifecycle->List], [qw/ default delivery sales sales-engineering /],
+is_deeply( [ RT::Lifecycle->List], [qw/ default delivery français sales sales-engineering/],
        "Get the list of lifecycles without approvals (implicitly for for tickets)");
-is_deeply( [ RT::Lifecycle->List('ticket') ],  [qw/ default delivery sales sales-engineering/],
+is_deeply( [ RT::Lifecycle->List('ticket') ],  [qw/ default delivery français sales sales-engineering/],
        "Get the list of lifecycles without approvals for tickets");
 is_deeply( [ RT::Lifecycle->List('racecar') ], [qw/ racing /],
        "Get the list of lifecycles for other types");
@@ -19,7 +21,7 @@ ok($tickets, "Got a generalized lifecycle for tickets");
 isa_ok( $tickets, "RT::Lifecycle::Ticket", "Is the right subclass" );
 is_deeply( [ sort $tickets->Valid ],
            [ sort qw(new open stalled resolved rejected deleted ordered),
-             'on way', 'delayed', 'delivered', 'sales', 'engineering', 'initial', 'active', 'inactive'],
+             'on way', 'delayed', 'delivered', 'sales', 'engineering', 'initial', 'INGÉNIERIE', 'NOUVELLE', 'RÉSOLUE', 'active', 'inactive'],
            "Only gets ticket statuses" );
 
 
diff --git a/t/lifecycles/utils.pl b/t/lifecycles/utils.pl
index f832828a51..f324b673c5 100644
--- a/t/lifecycles/utils.pl
+++ b/t/lifecycles/utils.pl
@@ -84,6 +84,11 @@ Set(\%Lifecycles,
             "deleted"
         ],
     },
+    "français" => {
+      "initial" => ["NOUVELLE"],
+      "active"  => ["INGÉNIERIE"],
+      "inactive" => ["RÉSOLUE"],
+    }
 );
 END
 }

-- 
To stop receiving notification emails like this one, please contact
sysadmin at bestpractical.com.


More information about the rt-commit mailing list