Store portal language in _language user session key (#1764)
This commit is contained in:
parent
eef82808a2
commit
1a66da30f9
|
@ -356,6 +356,9 @@ sub setSessionInfo {
|
|||
if $self->conf->{timeoutActivity};
|
||||
}
|
||||
|
||||
# Currently selected language
|
||||
$req->{sessionInfo}->{_language} = $req->cookies->{llnglanguage} || 'en';
|
||||
|
||||
# Store URL origin in session
|
||||
$req->{sessionInfo}->{_url} = $req->{urldc};
|
||||
|
||||
|
|
70
lemonldap-ng-portal/t/04-language-selection.t
Normal file
70
lemonldap-ng-portal/t/04-language-selection.t
Normal file
|
@ -0,0 +1,70 @@
|
|||
use Test::More;
|
||||
use strict;
|
||||
use IO::String;
|
||||
|
||||
BEGIN {
|
||||
require 't/test-lib.pm';
|
||||
}
|
||||
|
||||
my ( $client, $res, $id );
|
||||
|
||||
$client = LLNG::Manager::Test->new(
|
||||
{ ini => { logLevel => 'error', restSessionServer => 1, useSafeJail => 1 }, } );
|
||||
|
||||
# Try to authenticate
|
||||
# -------------------
|
||||
ok(
|
||||
$res = $client->_post(
|
||||
'/',
|
||||
IO::String->new('user=dwho&password=dwho'),
|
||||
length => 23
|
||||
),
|
||||
'Auth query without language cookie'
|
||||
);
|
||||
count(1);
|
||||
expectOK($res);
|
||||
$id = expectCookie($res);
|
||||
|
||||
ok( $res = $client->_get("/sessions/global/$id"), 'Get session' );
|
||||
count(1);
|
||||
expectOK($res);
|
||||
ok( $res = eval { JSON::from_json( $res->[2]->[0] ) }, ' GET JSON' )
|
||||
or print STDERR $@;
|
||||
count(1);
|
||||
ok( $res->{_language} eq 'en', 'Default value for _language' );
|
||||
count(1);
|
||||
|
||||
# Test logout
|
||||
$client->logout($id);
|
||||
|
||||
ok(
|
||||
$res = $client->_post(
|
||||
'/',
|
||||
IO::String->new('user=dwho&password=dwho'),
|
||||
cookie => "llnglanguage=fr",
|
||||
length => 23
|
||||
),
|
||||
'Auth query with language cookie'
|
||||
);
|
||||
count(1);
|
||||
expectOK($res);
|
||||
$id = expectCookie($res);
|
||||
|
||||
ok( $res = $client->_get("/sessions/global/$id"), 'Get session' );
|
||||
count(1);
|
||||
expectOK($res);
|
||||
ok( $res = eval { JSON::from_json( $res->[2]->[0] ) }, ' GET JSON' )
|
||||
or print STDERR $@;
|
||||
count(1);
|
||||
ok( $res->{_language} eq 'fr', 'Correct value for _language' );
|
||||
count(1);
|
||||
|
||||
|
||||
# Test logout
|
||||
$client->logout($id);
|
||||
|
||||
#print STDERR Dumper($res);
|
||||
|
||||
clean_sessions();
|
||||
|
||||
done_testing( count() );
|
Loading…
Reference in New Issue
Block a user