diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/output.php | 4 | ||||
-rw-r--r-- | engine/tests/api/helpers.php | 20 |
2 files changed, 22 insertions, 2 deletions
diff --git a/engine/lib/output.php b/engine/lib/output.php index 84b012631..cac7eeb5b 100644 --- a/engine/lib/output.php +++ b/engine/lib/output.php @@ -161,11 +161,11 @@ function elgg_normalize_url($url) { } // 'example.com', 'example.com/subpage' - elseif (preg_match("#[^/]*\.[^/]*/?#i", $url)) { + elseif (preg_match("#^[^/]*\.#i", $url)) { return "http://$url"; } - // 'pg/page/handler' + // 'pg/page/handler', 'mod/plugin/file.php' else { return elgg_get_site_url().$url; } diff --git a/engine/tests/api/helpers.php b/engine/tests/api/helpers.php index b8c7f048d..8dab74ff8 100644 --- a/engine/tests/api/helpers.php +++ b/engine/tests/api/helpers.php @@ -65,6 +65,26 @@ class ElggCoreHelpersTest extends ElggCoreUnitTest { } /** + * Test elgg_normalize_url() + */ + public function testElggNormalizeURL() { + $conversions = array( + 'http://example.com' => 'http://example.com', + 'https://example.com' => 'https://example.com', + '//example.com' => '//example.com', + 'example.com' => 'http://example.com', + 'example.com/subpage' => 'http://example.com/subpage', + 'pg/page/handler' => elgg_get_site_url().'pg/page/handler', + 'mod/plugin/file.php' => elgg_get_site_url().'mod/plugin/file.php', + ); + + foreach ($conversions as $input => $output) { + $this->assertIdentical($output, elgg_normalize_url($input)); + } + } + + + /** * Test elgg_register_js() */ public function testElggRegisterJS() { |