From 7d3e22836575818348c7945a8304463afacfdc4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 3 Mar 2015 16:50:59 +0100 Subject: [PATCH 1/3] adding a windows smb config for testing --- .../tests/env/start-smb-windows.sh | 34 +++++++++++++++++++ .../tests/env/stop-smb-windows.sh | 18 ++++++++++ 2 files changed, 52 insertions(+) create mode 100755 apps/files_external/tests/env/start-smb-windows.sh create mode 100755 apps/files_external/tests/env/stop-smb-windows.sh diff --git a/apps/files_external/tests/env/start-smb-windows.sh b/apps/files_external/tests/env/start-smb-windows.sh new file mode 100755 index 00000000000..d56b0d4f0b5 --- /dev/null +++ b/apps/files_external/tests/env/start-smb-windows.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# ownCloud +# +# Set environment variable DEBUG to print config file +# +# @author Thomas Müller +# @copyright 2015 Thomas Müller +# + +# retrieve current folder to place the config in the parent folder +thisFolder=`echo $0 | replace "env/start-smb-windows.sh" ""` + +if [ -z "$thisFolder" ]; then + thisFolder="." +fi; + +user=smb-test +password=!owncloud123 +host=WIN-9GTFAS08C15 + +cat > $thisFolder/config.smb.php <true, + 'host'=>'$host', + 'user'=>'$user', + 'password'=>'$password', + 'share'=>'oc-test', + 'root'=>'', +); + +DELIM diff --git a/apps/files_external/tests/env/stop-smb-windows.sh b/apps/files_external/tests/env/stop-smb-windows.sh new file mode 100755 index 00000000000..8e9c82b9569 --- /dev/null +++ b/apps/files_external/tests/env/stop-smb-windows.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# ownCloud +# +# @author Thomas Müller +# @copyright 2015 Thomas Müller +# + +# retrieve current folder to remove the config from the parent folder +thisFolder=`echo $0 | replace "env/stop-smb-windows.sh" ""` + +if [ -z "$thisFolder" ]; then + thisFolder="." +fi; + + +# cleanup +rm $thisFolder/config.smb.php From d6b9b37ddb8c5442895f1c9d6e45a8d0a4422747 Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Mon, 2 Mar 2015 14:37:42 +0000 Subject: [PATCH 2/3] Use dummy storages instead of real storages in files_external unit tests We were using the SMB and SFTP backends, which since Icewind's new SMB library results in an actual attempted connection just by constructing the storage. This commit replaces all references to real storages (except when necessary) with a dummy storage class. --- apps/files_external/tests/mountconfig.php | 120 +++++++++++++++------- 1 file changed, 81 insertions(+), 39 deletions(-) diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php index f288d02705c..f00812c5671 100644 --- a/apps/files_external/tests/mountconfig.php +++ b/apps/files_external/tests/mountconfig.php @@ -3,6 +3,7 @@ * ownCloud * * @author Vincent Petry + * @author Robin McCorkell * Copyright (c) 2013 Vincent Petry * * This library is free software; you can redistribute it and/or @@ -20,18 +21,61 @@ * */ -class Test_Mount_Config_Dummy_Storage { +class Test_Mount_Config_Dummy_Storage extends \OC\Files\Storage\Common { public function __construct($params) { if (isset($params['simulateFail']) && $params['simulateFail'] == true) { throw new \Exception('Simulated config validation fail'); } } + public function getId() { + return 'dummy_storage'; + } + + public function mkdir($path) { + return false; + } + + public function rmdir($path) { + return false; + } + + public function opendir($path) { + return false; + } + + public function filetype($path) { + return false; + } + + public function file_exists($path) { + return false; + } + + public function unlink($path) { + return false; + } + + public function fopen($path, $mode) { + return false; + } + + public function touch($path, $mtime = null) { + return false; + } + + public function stat($path) { + return false; + } + public function test() { return true; } } +class Test_Mount_Config_Storage_No_Personal extends Test_Mount_Config_Dummy_Storage { +} + class Test_Mount_Config_Hook_Test { static $signal; static $params; @@ -94,6 +138,12 @@ class Test_Mount_Config extends \Test\TestCase { 'configuration' => array() ) ); + OC_Mount_Config::registerBackend('Test_Mount_Config_Storage_No_Personal', array( + 'backend' => 'dummy no personal', + 'priority' => 150, + 'configuration' => array() + ) + ); \OC_User::createUser(self::TEST_USER1, self::TEST_USER1); \OC_User::createUser(self::TEST_USER2, self::TEST_USER2); @@ -120,11 +170,10 @@ class Test_Mount_Config extends \Test\TestCase { 'user_mounting_backends', '' ); - $this->allBackends = OC_Mount_Config::getBackends(); OCP\Config::setAppValue( 'files_external', 'user_mounting_backends', - implode(',', array_keys($this->allBackends)) + 'Test_Mount_Config_Dummy_Storage' ); OC_Mount_Config::$skipTest = true; @@ -203,7 +252,7 @@ class Test_Mount_Config extends \Test\TestCase { 'password' => '12345', ); - $this->assertEquals(true, OC_Mount_Config::addMountPoint('/ext', '\OC\Files\Storage\SFTP', $storageOptions, $mountType, $applicable, $isPersonal)); + $this->assertEquals(true, OC_Mount_Config::addMountPoint('/ext', 'Test_Mount_Config_Dummy_Storage', $storageOptions, $mountType, $applicable, $isPersonal)); $config = $this->readGlobalConfig(); $this->assertEquals(1, count($config)); @@ -211,7 +260,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue(isset($config[$mountType][$applicable])); $this->assertTrue(isset($config[$mountType][$applicable]['/$user/files/ext'])); $this->assertEquals( - '\OC\Files\Storage\SFTP', + 'Test_Mount_Config_Dummy_Storage', $config[$mountType][$applicable]['/$user/files/ext']['class'] ); } @@ -230,7 +279,7 @@ class Test_Mount_Config extends \Test\TestCase { 'password' => '12345', ); - $this->assertEquals(true, OC_Mount_Config::addMountPoint('/ext', '\OC\Files\Storage\SFTP', $storageOptions, $mountType, $applicable, $isPersonal)); + $this->assertEquals(true, OC_Mount_Config::addMountPoint('/ext', 'Test_Mount_Config_Dummy_Storage', $storageOptions, $mountType, $applicable, $isPersonal)); $config = $this->readUserConfig(); $this->assertEquals(1, count($config)); @@ -238,7 +287,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue(isset($config[$mountType][$applicable])); $this->assertTrue(isset($config[$mountType][$applicable]['/' . self::TEST_USER1 . '/files/ext'])); $this->assertEquals( - '\OC\Files\Storage\SFTP', + 'Test_Mount_Config_Dummy_Storage', $config[$mountType][$applicable]['/' . self::TEST_USER1 . '/files/ext']['class'] ); } @@ -252,14 +301,7 @@ class Test_Mount_Config extends \Test\TestCase { $isPersonal = true; // local - $this->assertFalse(OC_Mount_Config::addMountPoint('/ext', '\OC\Files\storage\local', array(), $mountType, $applicable, $isPersonal)); - - unset($this->allBackends['\OC\Files\Storage\SFTP']); - OCP\Config::setAppValue( - 'files_external', - 'user_mounting_backends', - implode(',', array_keys($this->allBackends)) - ); + $this->assertFalse(OC_Mount_Config::addMountPoint('/ext', '\OC\Files\Storage\Local', array(), $mountType, $applicable, $isPersonal)); $storageOptions = array( 'host' => 'localhost', @@ -268,7 +310,7 @@ class Test_Mount_Config extends \Test\TestCase { ); // non-local but forbidden - $this->assertFalse(OC_Mount_Config::addMountPoint('/ext', '\OC\Files\Storage\SFTP', $storageOptions, $mountType, $applicable, $isPersonal)); + $this->assertFalse(OC_Mount_Config::addMountPoint('/ext', 'Test_Mount_Config_Storage_No_Personal', $storageOptions, $mountType, $applicable, $isPersonal)); $this->assertFalse(file_exists($this->userHome . '/mount.json')); } @@ -343,7 +385,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, $mountType, $applicable, @@ -354,7 +396,7 @@ class Test_Mount_Config extends \Test\TestCase { // re-read config $config = OC_Mount_Config::getSystemMountPoints(); $this->assertEquals(1, count($config)); - $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $config[0]['class']); $this->assertEquals('ext', $config[0]['mountpoint']); $this->assertEquals($expectApplicableArray, $config[0]['applicable']); $savedOptions = $config[0]['options']; @@ -383,7 +425,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, $mountType, $applicable, @@ -394,7 +436,7 @@ class Test_Mount_Config extends \Test\TestCase { // re-read config $config = OC_Mount_Config::getPersonalMountPoints(); $this->assertEquals(1, count($config)); - $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $config[0]['class']); $this->assertEquals('ext', $config[0]['mountpoint']); $savedOptions = $config[0]['options']; $this->assertEquals($options, $savedOptions); @@ -420,7 +462,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( $mountPoint, - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, $mountType, $applicable, @@ -453,7 +495,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( $mountPoint, - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, $mountType, $applicable, @@ -518,7 +560,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, $mountType, $applicable, @@ -559,7 +601,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, $mountType, $applicable, @@ -668,7 +710,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, $mountType, $applicable, @@ -683,7 +725,7 @@ class Test_Mount_Config extends \Test\TestCase { if ($expectVisible) { $this->assertEquals(1, count($mountPoints)); $this->assertTrue(isset($mountPoints['/' . self::TEST_USER1 . '/files/ext'])); - $this->assertEquals('\OC\Files\Storage\SMB', $mountPoints['/' . self::TEST_USER1 . '/files/ext']['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $mountPoints['/' . self::TEST_USER1 . '/files/ext']['class']); $this->assertEquals($mountConfig, $mountPoints['/' . self::TEST_USER1 . '/files/ext']['options']); } else { @@ -711,7 +753,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, OC_Mount_Config::MOUNT_TYPE_USER, self::TEST_USER1, @@ -722,7 +764,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, OC_Mount_Config::MOUNT_TYPE_USER, self::TEST_USER2, @@ -733,7 +775,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, OC_Mount_Config::MOUNT_TYPE_GROUP, self::TEST_GROUP2, @@ -744,7 +786,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options, OC_Mount_Config::MOUNT_TYPE_GROUP, self::TEST_GROUP1, @@ -755,7 +797,7 @@ class Test_Mount_Config extends \Test\TestCase { // re-read config $config = OC_Mount_Config::getSystemMountPoints(); $this->assertEquals(1, count($config)); - $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $config[0]['class']); $this->assertEquals('ext', $config[0]['mountpoint']); $this->assertEquals($options, $config[0]['options']); $this->assertEquals(array(self::TEST_USER1, self::TEST_USER2), $config[0]['applicable']['users']); @@ -782,7 +824,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options1, $mountType, self::TEST_USER1, @@ -800,7 +842,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $options2, $mountType, self::TEST_USER2, @@ -811,10 +853,10 @@ class Test_Mount_Config extends \Test\TestCase { // re-read config $config = OC_Mount_Config::getSystemMountPoints(); $this->assertEquals(2, count($config)); - $this->assertEquals('\OC\Files\Storage\SMB', $config[0]['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $config[0]['class']); $this->assertEquals('ext', $config[0]['mountpoint']); $this->assertEquals($options1, $config[0]['options']); - $this->assertEquals('\OC\Files\Storage\SMB', $config[1]['class']); + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $config[1]['class']); $this->assertEquals('ext', $config[1]['mountpoint']); $this->assertEquals($options2, $config[1]['options']); } @@ -913,7 +955,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig + array('id' => $i), $mount['mountType'], $mount['applicable'], @@ -935,7 +977,7 @@ class Test_Mount_Config extends \Test\TestCase { */ public function testPriorityPersistence() { - $class = '\OC\Files\Storage\SMB'; + $class = 'Test_Mount_Config_Dummy_Storage'; $priority = 123; $mountConfig = array( 'host' => 'somehost', @@ -996,7 +1038,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertTrue( OC_Mount_Config::addMountPoint( '/ext', - '\OC\Files\Storage\SMB', + 'Test_Mount_Config_Dummy_Storage', $mountConfig, OC_Mount_Config::MOUNT_TYPE_USER, self::TEST_USER1, @@ -1012,7 +1054,7 @@ class Test_Mount_Config extends \Test\TestCase { $this->assertEquals(0, count($mountPointsMe)); $this->assertEquals(1, count($mountPointsOther)); $this->assertTrue(isset($mountPointsOther['/'.self::TEST_USER1.'/files/ext'])); - $this->assertEquals('\OC\Files\Storage\SMB', + $this->assertEquals('Test_Mount_Config_Dummy_Storage', $mountPointsOther['/'.self::TEST_USER1.'/files/ext']['class']); $this->assertEquals($mountConfig, $mountPointsOther['/'.self::TEST_USER1.'/files/ext']['options']); From ed4dc4db077793c9897aaa676a87a8906225c38f Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Tue, 3 Mar 2015 09:42:25 +0000 Subject: [PATCH 3/3] Fix slash normalization error in AmazonS3Migration unit test Since aa821ecc00f11b6382f6e033db18445d9e51d6b9 leading and trailing slashes are trimmed in the file cache paths --- apps/files_external/tests/amazons3migration.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/files_external/tests/amazons3migration.php b/apps/files_external/tests/amazons3migration.php index 145213f5293..8c3ffbe521f 100644 --- a/apps/files_external/tests/amazons3migration.php +++ b/apps/files_external/tests/amazons3migration.php @@ -64,7 +64,7 @@ class AmazonS3Migration extends \Test\TestCase { $oldCache = new \OC\Files\Cache\Cache($this->oldId); // add file to old cache - $fileId = $oldCache->put('/', array('size' => 0, 'mtime' => time(), 'mimetype' => 'httpd/directory')); + $fileId = $oldCache->put('foobar', array('size' => 0, 'mtime' => time(), 'mimetype' => 'httpd/directory')); try { $this->instance = new \OC\Files\Storage\AmazonS3($this->params); @@ -80,7 +80,7 @@ class AmazonS3Migration extends \Test\TestCase { list($storageId, $path) = \OC\Files\Cache\Cache::getById($fileId); $this->assertSame($this->newId, $storageId); - $this->assertSame('/', $path); + $this->assertSame('foobar', $path); } public function testUpdateLegacyAndNewId () { @@ -127,4 +127,4 @@ class AmazonS3Migration extends \Test\TestCase { ); $stmt->execute(array($id)); } -} \ No newline at end of file +}