From bc9cbdc01898559df876c09d27e827f55323bb78 Mon Sep 17 00:00:00 2001 From: Artus Kolanowski Date: Thu, 21 Feb 2013 23:16:52 +0100 Subject: [PATCH] Resolve design flaws in core URL helper Reverts the helper in 'Mage_Core_Helper:.getCurrentUrl()' back, to use the core URL Model again. Sucessfully tested on a Magento instance with port 8080. related #228 --- app/code/core/Mage/Core/Helper/Url.php | 12 +----------- .../testsuite/Mage/Core/Helper/UrlTest.php | 8 +++----- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/app/code/core/Mage/Core/Helper/Url.php b/app/code/core/Mage/Core/Helper/Url.php index 97b1a1c8bd24b..a8099cfaad305 100644 --- a/app/code/core/Mage/Core/Helper/Url.php +++ b/app/code/core/Mage/Core/Helper/Url.php @@ -48,17 +48,7 @@ public function __construct(Mage_Core_Model_Translate $translate) */ public function getCurrentUrl() { - $request = $this->_getRequest(); - $port = $this->_getRequest()->getServer('SERVER_PORT'); - if ($port) { - $defaultPorts = array( - Mage_Core_Controller_Request_Http::DEFAULT_HTTP_PORT, - Mage_Core_Controller_Request_Http::DEFAULT_HTTPS_PORT - ); - $port = (in_array($port, $defaultPorts)) ? '' : ':' . $port; - } - $url = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI'); - return $url; + return $this->_getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true)); } /** diff --git a/dev/tests/integration/testsuite/Mage/Core/Helper/UrlTest.php b/dev/tests/integration/testsuite/Mage/Core/Helper/UrlTest.php index b5677dbdea26a..b953b3f09655c 100644 --- a/dev/tests/integration/testsuite/Mage/Core/Helper/UrlTest.php +++ b/dev/tests/integration/testsuite/Mage/Core/Helper/UrlTest.php @@ -44,19 +44,17 @@ protected function tearDown() public function testGetCurrentUrl() { - $_SERVER['HTTP_HOST'] = 'example.com'; - $_SERVER['REQUEST_URI'] = '/fancy_uri'; - $this->assertEquals('http://example.com/fancy_uri', $this->_helper->getCurrentUrl()); + $this->assertEquals('http://localhost/index.php/', $this->_helper->getCurrentUrl()); } public function testGetCurrentBase64Url() { - $this->assertEquals('aHR0cDovL2xvY2FsaG9zdA,,', $this->_helper->getCurrentBase64Url()); + $this->assertEquals('aHR0cDovL2xvY2FsaG9zdC9pbmRleC5waHAv', $this->_helper->getCurrentBase64Url()); } public function testGetEncodedUrl() { - $this->assertEquals('aHR0cDovL2xvY2FsaG9zdA,,', $this->_helper->getEncodedUrl()); + $this->assertEquals('aHR0cDovL2xvY2FsaG9zdC9pbmRleC5waHAv', $this->_helper->getEncodedUrl()); $this->assertEquals('aHR0cDovL2V4YW1wbGUuY29tLw,,', $this->_helper->getEncodedUrl('http://example.com/')); }