From 2ce850f7dbdc7759f250715f1e97036a93bc0ac1 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sun, 24 Nov 2013 12:41:09 +0100 Subject: [PATCH 1/3] fix overwrite host support and make the code a bit more readable --- lib/private/request.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/request.php b/lib/private/request.php index df33217f95..54e6d81484 100755 --- a/lib/private/request.php +++ b/lib/private/request.php @@ -99,7 +99,7 @@ class OC_Request { public static function scriptName() { $name = $_SERVER['SCRIPT_NAME']; if (OC_Config::getValue('overwritewebroot', '') !== '' and self::isOverwriteCondition()) { - $serverroot = str_replace("\\", '/', substr(__DIR__, 0, -4)); + $serverroot = str_replace("\\", '/', substr(__DIR__, 0, -strlen('lib/private/'))); $suburi = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen($serverroot))); $name = OC_Config::getValue('overwritewebroot', '') . $suburi; } From 6229f457d00e8abce59396af38b7800fe83e2986 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Sun, 24 Nov 2013 21:18:14 +0100 Subject: [PATCH 2/3] update PHPDoc --- lib/private/request.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/private/request.php b/lib/private/request.php index 54e6d81484..d11e5b16cf 100755 --- a/lib/private/request.php +++ b/lib/private/request.php @@ -9,6 +9,7 @@ class OC_Request { /** * @brief Check overwrite condition + * @param string $type * @returns bool */ private static function isOverwriteCondition($type = '') { From 229630f14c64c4a0889f567fc8ac2159a63cbb90 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Sun, 24 Nov 2013 21:19:06 +0100 Subject: [PATCH 3/3] adding simple unit test to test scriptName() under overwrite condition --- tests/lib/request.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/lib/request.php diff --git a/tests/lib/request.php b/tests/lib/request.php new file mode 100644 index 0000000000..2b2094a612 --- /dev/null +++ b/tests/lib/request.php @@ -0,0 +1,26 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +class Test_Request extends PHPUnit_Framework_TestCase { + + public function setUp() { + OC_Config::setValue('overwritewebroot', '/domain.tld/ownCloud'); + } + + public function tearDown() { + OC_Config::setValue('overwritewebroot', ''); + } + + public function testScriptNameOverWrite() { + $_SERVER['REMOTE_ADDR'] = '10.0.0.1'; + $_SERVER["SCRIPT_FILENAME"] = __FILE__; + + $scriptName = OC_Request::scriptName(); + $this->assertEquals('/domain.tld/ownCloud/tests/lib/request.php', $scriptName); + } +}