Skip to content
Browse files

Merge branch 'MDL-29161_21' of git://github.com/timhunt/moodle into M…

…OODLE_21_STABLE
  • Loading branch information...
2 parents 89c8b0a + 0f75136 commit 2f69c6159bd95ef79f5e57ade4d791545e48488c @stronk7 stronk7 committed
Showing with 26 additions and 1 deletion.
  1. +19 −0 lib/simpletest/testweblib.php
  2. +7 −1 lib/weblib.php
View
19 lib/simpletest/testweblib.php
@@ -105,6 +105,25 @@ function test_fix_non_standard_entities() {
$this->assertEqual(fix_non_standard_entities('£ä'), '£ä');
}
+ function test_moodle_url_round_trip() {
+ $strurl = 'http://moodle.org/course/view.php?id=5';
+ $url = new moodle_url($strurl);
+ $this->assertEqual($strurl, $url->out(false));
+
+ $strurl = 'http://moodle.org/user/index.php?contextid=53&sifirst=M&silast=D';
+ $url = new moodle_url($strurl);
+ $this->assertEqual($strurl, $url->out(false));
+ }
+
+ function test_moodle_url_round_trip_array_params() {
+ $strurl = 'http://example.com/?a%5B1%5D=1&a%5B2%5D=2';
+ $url = new moodle_url($strurl);
+ $this->assertEqual($strurl, $url->out(false));
+
+ $url = new moodle_url('http://example.com/?a[1]=1&a[2]=2');
+ $this->assertEqual($strurl, $url->out(false));
+ }
+
function test_compare_url() {
$url1 = new moodle_url('index.php', array('var1' => 1, 'var2' => 2));
$url2 = new moodle_url('index2.php', array('var1' => 1, 'var2' => 2, 'var3' => 3));
View
8 lib/weblib.php
@@ -494,7 +494,13 @@ public function get_query_string($escaped = true, array $overrideparams = null)
$params = $this->params;
}
foreach ($params as $key => $val) {
- $arr[] = rawurlencode($key)."=".rawurlencode($val);
+ if (is_array($val)) {
+ foreach ($val as $index => $value) {
+ $arr[] = rawurlencode($key.'['.$index.']')."=".rawurlencode($value);
+ }
+ } else {
+ $arr[] = rawurlencode($key)."=".rawurlencode($val);
+ }
}
if ($escaped) {
return implode('&', $arr);

0 comments on commit 2f69c61

Please sign in to comment.
Something went wrong with that request. Please try again.