summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-11-24 14:02:51 -0800
committerThomas Müller <thomas.mueller@tmit.eu>2013-11-24 14:02:51 -0800
commit45db67d1744a278c5a00d6432e03de36514eb26f (patch)
tree5b4bbe2b2e57be792365a74d9a80c634220837a7
parentaef34618de995316d60d699cbb9c6fb697658d12 (diff)
parent229630f14c64c4a0889f567fc8ac2159a63cbb90 (diff)
downloadnextcloud-server-45db67d1744a278c5a00d6432e03de36514eb26f.tar.gz
nextcloud-server-45db67d1744a278c5a00d6432e03de36514eb26f.zip
Merge pull request #6018 from owncloud/fix_overwritehost
fix overwrite host support and make the code a bit more readable
-rwxr-xr-xlib/private/request.php3
-rw-r--r--tests/lib/request.php26
2 files changed, 28 insertions, 1 deletions
diff --git a/lib/private/request.php b/lib/private/request.php
index df33217f95d..d11e5b16cfe 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 = '') {
@@ -99,7 +100,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;
}
diff --git a/tests/lib/request.php b/tests/lib/request.php
new file mode 100644
index 00000000000..2b2094a612d
--- /dev/null
+++ b/tests/lib/request.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu>
+ * 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);
+ }
+}