Merge remote branch 'xvaara/master'

Conflicts:
	docs/changelog/7.x.x.txt
This commit is contained in:
Doug Bell 2010-12-07 18:28:24 -06:00
commit 886de768af
6 changed files with 36 additions and 3 deletions

View file

@ -1,4 +1,5 @@
7.10.7
- added #11968: use the language override in the registration form (Jukka Raimovaara / Mentalhouse Oy)
7.10.6
- fixed #11974: Toolbar icons unclickable in Webkit using HTML5

View file

@ -56,7 +56,7 @@ Contributing Developers..............C.J. Adams-Collier / <cjac@colliertech.org>
Stephen Opal / Plain Black
Tavis Parker / Plain Black
Daniel Quinlan
Jukka Raimovaara / Axxion Oy
Jukka Raimovaara / Mentalhouse Oy
Alan Ritari / DonorWare
Hal Roberts / Harvard
Luke Robinson / Orchard Solutions

View file

@ -310,6 +310,9 @@ sub createAccountSave {
my $userId = $u->userId;
$u->username($username);
$u->authMethod($self->authMethod);
if (!$profile->{'language'} && $self->session->scratch->getLanguageOverride) {
$profile->{'language'} = $self->session->scratch->getLanguageOverride;
}
$u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma"));
$u->updateProfileFields($profile) if ($profile);
$self->saveParams($userId,$self->authMethod,$properties);

View file

@ -335,6 +335,11 @@ sub formField {
if(!defined $properties->{value}) {
$properties->{value} = WebGUI::Operation::Shared::secureEval($session,$properties->{dataDefault});
}
if ($self->getId eq "language") {
if ($self->session->scratch->getLanguageOverride) {
$properties->{value} = $self->session->scratch->getLanguageOverride;
}
}
}
my $form = WebGUI::Form::DynamicField->new($session,%{$properties});
return $form if $returnObject;

View file

@ -33,7 +33,7 @@ my ($request, $oldRequest, $output);
#----------------------------------------------------------------------------
# Tests
plan tests => 3; # Increment this number for each test you create
plan tests => 4; # Increment this number for each test you create
#----------------------------------------------------------------------------
# Test createAccountSave and returnUrl together
@ -47,7 +47,9 @@ $session->{_request} = $request;
$auth = WebGUI::Auth->new( $session, $AUTH_METHOD );
my $username = $session->id->generate;
my $language = "German";
push @cleanupUsernames, $username;
$session->scratch->setLanguageOverride($language);
$output = $auth->createAccountSave( $username, { }, "PASSWORD" );
WebGUI::Test->addToCleanup(sub {
for my $username ( @cleanupUsernames ) {
@ -74,6 +76,8 @@ is(
"returnUrl field is used to set redirect after createAccountSave",
);
is $session->user->profileField('language'), $language, 'languageOverride is taken in to account in createAccountSave';
# Session Cleanup
$session->{_request} = $oldRequest;
@ -99,6 +103,7 @@ is(
);
is $output, undef, 'login returns undef when showMessageOnLogin is false';
# Session Cleanup
$session->{_request} = $oldRequest;

View file

@ -33,7 +33,7 @@ WebGUI::Test->addToCleanup($newUser);
#----------------------------------------------------------------------------
# Tests
plan tests => 50; # Increment this number for each test you create
plan tests => 56; # Increment this number for each test you create
#----------------------------------------------------------------------------
# Test the creation of ProfileField
@ -51,6 +51,11 @@ my $uilevelField;
ok( $uilevelField = WebGUI::ProfileField->new( $session, 'uiLevel' ), 'field "uiLevel instantiated' );
isa_ok( $uilevelField, 'WebGUI::ProfileField' );
my $langField;
ok( $langField = WebGUI::ProfileField->new( $session, 'language' ), 'field "language instantiated' );
isa_ok( $langField, 'WebGUI::ProfileField' );
#----------------------------------------------------------------------------
# Test the formField method
@ -79,6 +84,20 @@ ok( $ff = $uilevelField->formField(undef, undef, $newUser), 'formField method re
$ffvalue = $newUser->profileField('uiLevel');
like( $ff, qr/$ffvalue/, 'html returned contains value, uiLevel field, defaulted user' );
$ff = undef;
$ffvalue = undef;
ok( $ff = $langField->formField, 'formField method returns something, language field, session user' );
$ffvalue = $session->user->profileField('language');
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user' );
$ff = undef;
$ffvalue = "German";
$session->scratch->setLanguageOverride($ffvalue);
ok( $ff = $langField->formField, 'formField method returns something, language field, session user, languageOverride' );
like( $ff, qr/value="$ffvalue"[^>]+selected/, 'html returned contains value, language field, session user, languageOverride' );
###########################################################
#
# create