]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add test for having utf8 filenames in the cache
authorRobin Appelman <icewind@owncloud.com>
Thu, 12 Dec 2013 12:43:55 +0000 (13:43 +0100)
committerRobin Appelman <icewind@owncloud.com>
Thu, 12 Dec 2013 12:43:55 +0000 (13:43 +0100)
tests/lib/files/view.php

index f358c15dd501c8c5e88e2f9e9f8997927df08401..a73a3f9d25245b6793866b55d2bc8499f40c931e 100644 (file)
@@ -15,7 +15,7 @@ class TemporaryNoTouch extends \OC\Files\Storage\Temporary {
 
 class View extends \PHPUnit_Framework_TestCase {
        /**
-        * @var \OC\Files\Storage\Storage[] $storages;
+        * @var \OC\Files\Storage\Storage[] $storages ;
         */
        private $storages = array();
 
@@ -473,4 +473,34 @@ class View extends \PHPUnit_Framework_TestCase {
                        array('', '/'),
                );
        }
+
+       public function testUTF8Names() {
+               $names = array('虚', '和知しゃ和で', 'regular ascii', 'sɨˈrɪlɪk', 'ѨѬ', 'أنا أحب القراءة كثيرا');
+
+               $storage = new \OC\Files\Storage\Temporary(array());
+               \OC\Files\Filesystem::mount($storage, array(), '/');
+
+               $rootView = new \OC\Files\View('');
+               foreach ($names as $name) {
+                       $rootView->file_put_contents('/' . $name, 'dummy content');
+               }
+
+               $list = $rootView->getDirectoryContent('/');
+
+               $this->assertCount(count($names), $list);
+               foreach ($list as $item) {
+                       $this->assertContains($item['name'], $names);
+               }
+
+               $cache = $storage->getCache();
+               $scanner = $storage->getScanner();
+               $scanner->scan('');
+
+               $list = $cache->getFolderContents('');
+
+               $this->assertCount(count($names), $list);
+               foreach ($list as $item) {
+                       $this->assertContains($item['name'], $names);
+               }
+       }
 }