]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add unit tests for convertToRelativePath
authorLukas Reschke <lukas@owncloud.com>
Wed, 15 Oct 2014 11:43:04 +0000 (13:43 +0200)
committerLukas Reschke <lukas@owncloud.com>
Mon, 20 Oct 2014 13:09:43 +0000 (15:09 +0200)
lib/private/request.php
tests/lib/templatelayout.php [new file with mode: 0644]

index fa446837a97464789b2b508c0756619d21c5a9bf..1cfa4a150c549237f911fd6c088fae3637b83224 100755 (executable)
@@ -245,7 +245,7 @@ class OC_Request {
         * @return string Path info or false when not found
         */
        public static function getRawPathInfo() {
-               $requestUri = $_SERVER['REQUEST_URI'];
+               $requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
                // remove too many leading slashes - can be caused by reverse proxy configuration
                if (strpos($requestUri, '/') === 0) {
                        $requestUri = '/' . ltrim($requestUri, '/');
diff --git a/tests/lib/templatelayout.php b/tests/lib/templatelayout.php
new file mode 100644 (file)
index 0000000..f87db4f
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Test;
+
+/**
+ * @package OC\Test
+ */
+class OC_TemplateLayout extends \PHPUnit_Framework_TestCase {
+
+       /**
+        * Contains valid file paths in the scheme array($absolutePath, $expectedPath)
+        * @return array
+        */
+       public function validFilePathProvider() {
+               return array(
+                       array(\OC::$SERVERROOT . '/apps/files/js/fancyJS.js', '/apps/files/js/fancyJS.js'),
+                       array(\OC::$SERVERROOT. '/test.js', '/test.js'),
+                       array(\OC::$SERVERROOT . '/core/test.js', '/core/test.js'),
+                       array(\OC::$SERVERROOT, ''),
+               );
+       }
+
+       /**
+        * @dataProvider validFilePathProvider
+        */
+       public function testConvertToRelativePath($absolutePath, $expected) {
+               $relativePath = \Test_Helper::invokePrivate(new \OC_TemplateLayout('user'), 'convertToRelativePath', array($absolutePath));
+               $this->assertEquals($expected, $relativePath);
+       }
+
+       /**
+        * @expectedException \Exception
+        * @expectedExceptionMessage $filePath is not under the \OC::$SERVERROOT
+        */
+       public function testInvalidConvertToRelativePath() {
+               \Test_Helper::invokePrivate(new \OC_TemplateLayout('user'), 'convertToRelativePath', array('/this/file/is/invalid'));
+       }
+}