MDL-16919 - Convert uppercase to lowercase for param_username and updating test resul...
authorRossiani Wijaya <rossianiwijaya@gmail.com>
Thu, 14 Jan 2010 07:18:06 +0000 (07:18 +0000)
committerRossiani Wijaya <rossianiwijaya@gmail.com>
Thu, 14 Jan 2010 07:18:06 +0000 (07:18 +0000)
lib/moodlelib.php
lib/simpletest/testmoodlelib.php

index 0f32a0c5d8adc494e5f60efae213da25df496dc5..499256284fbfdb8f9361d88d43edf00f06fa711f 100644 (file)
@@ -745,13 +745,12 @@ function clean_param($param, $type) {
 
         case PARAM_USERNAME:
             $param = str_replace(" " , "", $param);
-            if (empty($CFG->extendedusernamechars)) {                                                              
+            $param = moodle_strtolower($param);  // Convert uppercase to lowercase MDL-16919
+            if (empty($CFG->extendedusernamechars)) {
                 // regular expression, eliminate all chars EXCEPT:
                 // alphanum, dash (-), underscore (_), at sign (@) and period (.) characters.
                 $param = preg_replace('/[^-\.@_a-z0-9]/', '', $param);
-            } else {
-                $param = preg_replace('/[A-Z]/', '', $param);
-            }
+            } 
             return $param;
 
         default:                 // throw error, switched parameters in optional_param or another serious problem
index 93f1654bafba22d1d2bafea8ab61ed2c385415a2..8ee0c2cb47fc58cd9c47ba55479de804e0c43157 100644 (file)
@@ -310,8 +310,8 @@ class moodlelib_test extends UnitTestCase {
         $this->assertEqual(clean_param('john~doe', PARAM_USERNAME), 'johndoe');
         $this->assertEqual(clean_param('john´doe', PARAM_USERNAME), 'johndoe');
         $this->assertEqual(clean_param('john#$%&() ', PARAM_USERNAME), 'john');
-        $this->assertEqual(clean_param('JOHNdóé ', PARAM_USERNAME), 'd');
-        $this->assertEqual(clean_param('john.,:;-_/|\ñÑ[]A_X-,D {} ~!@#$%^&*()_+ ?><[] ščřžžý ?ýá\9e?\9eý??\9adoe ', PARAM_USERNAME), 'john.-__-@_doe');
+        $this->assertEqual(clean_param('JOHNdóé ', PARAM_USERNAME), 'johnd');
+        $this->assertEqual(clean_param('john.,:;-_/|\ñÑ[]A_X-,D {} ~!@#$%^&*()_+ ?><[] ščřžžý ?ýá\9e?\9eý??\9adoe ', PARAM_USERNAME), 'john.-_a_x-d@_doe');
         
 
         // Test success condition, if extendedusernamechars == ENABLE;
@@ -320,8 +320,8 @@ class moodlelib_test extends UnitTestCase {
         $this->assertEqual(clean_param('john@doe', PARAM_USERNAME), 'john@doe');
         $this->assertEqual(clean_param('john# $%&()+_^', PARAM_USERNAME), 'john#$%&()+_^');
         $this->assertEqual(clean_param('john~doe', PARAM_USERNAME), 'john~doe');
-        $this->assertEqual(clean_param('joHN´doe', PARAM_USERNAME), 'jo´doe');
-        $this->assertEqual(clean_param('johnDOE', PARAM_USERNAME), 'john');
+        $this->assertEqual(clean_param('joHN´doe', PARAM_USERNAME), 'john´doe');
+        $this->assertEqual(clean_param('johnDOE', PARAM_USERNAME), 'johndoe');
         $this->assertEqual(clean_param('johndóé ', PARAM_USERNAME), 'johndóé');
                 
         $CFG->extendedusernamechars = $currentstatus;