Store portal language in _language user session key (#1764)

This commit is contained in:
Maxime Besson 2019-06-13 09:25:32 +02:00
parent eef82808a2
commit 1a66da30f9
2 changed files with 73 additions and 0 deletions

View File

@ -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};

View 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() );