From 5ad8fa76756801eee2aac18459aed60d03b4d4bc Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Wed, 1 Jun 2016 12:20:38 +0200
Subject: Add keepUnicode value in the cache key of normalizedPathCache

---
 tests/lib/Files/FilesystemTest.php | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

(limited to 'tests')

diff --git a/tests/lib/Files/FilesystemTest.php b/tests/lib/Files/FilesystemTest.php
index a4a4345d2f9..76e3f471633 100644
--- a/tests/lib/Files/FilesystemTest.php
+++ b/tests/lib/Files/FilesystemTest.php
@@ -92,6 +92,7 @@ class FilesystemTest extends \Test\TestCase {
 		}
 
 		$this->logout();
+		$this->invokePrivate('\OC\Files\Filesystem', 'normalizedPathCache', [null]);
 		parent::tearDown();
 	}
 
@@ -190,6 +191,32 @@ class FilesystemTest extends \Test\TestCase {
 		$this->assertEquals($expected, \OC\Files\Filesystem::normalizePath($path, $stripTrailingSlash));
 	}
 
+	public function normalizePathKeepUnicodeData() {
+		$nfdName = 'ümlaut';
+		$nfcName = 'ümlaut';
+		return [
+			['/' . $nfcName, $nfcName, true],
+			['/' . $nfcName, $nfcName, false],
+			['/' . $nfdName, $nfdName, true],
+			['/' . $nfcName, $nfdName, false],
+		];
+	}
+
+	/**
+	 * @dataProvider normalizePathKeepUnicodeData
+	 */
+	public function testNormalizePathKeepUnicode($expected, $path, $keepUnicode = false) {
+		$this->assertEquals($expected, \OC\Files\Filesystem::normalizePath($path, true, false, $keepUnicode));
+	}
+
+	public function testNormalizePathKeepUnicodeCache() {
+		$nfdName = 'ümlaut';
+		$nfcName = 'ümlaut';
+		// call in succession due to cache
+		$this->assertEquals('/' . $nfcName, \OC\Files\Filesystem::normalizePath($nfdName, true, false, false));
+		$this->assertEquals('/' . $nfdName, \OC\Files\Filesystem::normalizePath($nfdName, true, false, true));
+	}
+
 	public function isValidPathData() {
 		return array(
 			array('/', true),
-- 
cgit v1.2.3