[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