From c2d88a08b796ca19c8b5ec63bfd34ac32ead4208 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 8 Jul 2016 15:55:17 +0200 Subject: [PATCH] Remove unneeded checks if it runs on a Windows machine * the setup check is still there --- .../lib/AppInfo/Application.php | 7 ++-- console.php | 26 +++++++-------- cron.php | 24 +++++++------- lib/private/Files/Storage/Common.php | 20 +---------- lib/private/PreviewManager.php | 8 ++--- lib/private/Setup.php | 4 --- lib/private/legacy/helper.php | 2 +- lib/private/legacy/util.php | 33 +++++++------------ settings/admin.php | 3 -- settings/templates/admin.php | 9 ----- tests/lib/Archive/TARTest.php | 8 ----- tests/lib/Archive/ZIPTest.php | 8 ----- tests/lib/Files/FilesystemTest.php | 22 ------------- tests/lib/Files/Storage/LocalTest.php | 8 ----- tests/lib/Files/Type/DetectionTest.php | 4 --- tests/lib/Files/ViewTest.php | 8 ++--- tests/lib/ImageTest.php | 4 --- tests/lib/LargeFileHelperGetFileSizeTest.php | 10 +++--- tests/lib/TempManagerTest.php | 6 ---- tests/lib/UtilCheckServerTest.php | 3 -- tests/lib/UtilTest.php | 6 ++-- 21 files changed, 50 insertions(+), 173 deletions(-) diff --git a/apps/files_external/lib/AppInfo/Application.php b/apps/files_external/lib/AppInfo/Application.php index 0ee4e9b3d5..c3c1b764c5 100644 --- a/apps/files_external/lib/AppInfo/Application.php +++ b/apps/files_external/lib/AppInfo/Application.php @@ -90,13 +90,10 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide $container->query('OCA\Files_External\Lib\Backend\Google'), $container->query('OCA\Files_External\Lib\Backend\Swift'), $container->query('OCA\Files_External\Lib\Backend\SFTP_Key'), + $container->query('OCA\Files_External\Lib\Backend\SMB'), + $container->query('OCA\Files_External\Lib\Backend\SMB_OC'), ]; - if (!\OC_Util::runningOnWindows()) { - $backends[] = $container->query('OCA\Files_External\Lib\Backend\SMB'); - $backends[] = $container->query('OCA\Files_External\Lib\Backend\SMB_OC'); - } - return $backends; } diff --git a/console.php b/console.php index ed19d41d48..4576cce885 100644 --- a/console.php +++ b/console.php @@ -59,20 +59,18 @@ try { set_exception_handler('exceptionHandler'); - if (!OC_Util::runningOnWindows()) { - if (!function_exists('posix_getuid')) { - echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; - exit(0); - } - $user = posix_getpwuid(posix_getuid()); - $configUser = posix_getpwuid(fileowner(OC::$configDir . 'config.php')); - if ($user['name'] !== $configUser['name']) { - echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL; - echo "Current user: " . $user['name'] . PHP_EOL; - echo "Owner of config.php: " . $configUser['name'] . PHP_EOL; - echo "Try adding 'sudo -u " . $configUser['name'] . " ' to the beginning of the command (without the single quotes)" . PHP_EOL; - exit(0); - } + if (!function_exists('posix_getuid')) { + echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; + exit(0); + } + $user = posix_getpwuid(posix_getuid()); + $configUser = posix_getpwuid(fileowner(OC::$configDir . 'config.php')); + if ($user['name'] !== $configUser['name']) { + echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL; + echo "Current user: " . $user['name'] . PHP_EOL; + echo "Owner of config.php: " . $configUser['name'] . PHP_EOL; + echo "Try adding 'sudo -u " . $configUser['name'] . " ' to the beginning of the command (without the single quotes)" . PHP_EOL; + exit(0); } $oldWorkingDir = getcwd(); diff --git a/cron.php b/cron.php index bf258932a0..5be52a302a 100644 --- a/cron.php +++ b/cron.php @@ -84,19 +84,17 @@ try { set_time_limit(0); // the cron job must be executed with the right user - if (!OC_Util::runningOnWindows()) { - if (!function_exists('posix_getuid')) { - echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; - exit(0); - } - $user = posix_getpwuid(posix_getuid()); - $configUser = posix_getpwuid(fileowner(OC::$SERVERROOT . '/config/config.php')); - if ($user['name'] !== $configUser['name']) { - echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL; - echo "Current user: " . $user['name'] . PHP_EOL; - echo "Web server user: " . $configUser['name'] . PHP_EOL; - exit(0); - } + if (!function_exists('posix_getuid')) { + echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL; + exit(0); + } + $user = posix_getpwuid(posix_getuid()); + $configUser = posix_getpwuid(fileowner(OC::$SERVERROOT . '/config/config.php')); + if ($user['name'] !== $configUser['name']) { + echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL; + echo "Current user: " . $user['name'] . PHP_EOL; + echo "Web server user: " . $configUser['name'] . PHP_EOL; + exit(0); } // We call ownCloud from the CLI (aka cron) diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php index 0c1b69108d..6c4013d2ac 100644 --- a/lib/private/Files/Storage/Common.php +++ b/lib/private/Files/Storage/Common.php @@ -489,25 +489,7 @@ abstract class Common implements Storage, ILockingStorage { } // NOTE: $path will remain unverified for now - if (\OC_Util::runningOnWindows()) { - $this->verifyWindowsPath($fileName); - } else { - $this->verifyPosixPath($fileName); - } - } - - /** - * https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx - * @param string $fileName - * @throws InvalidPathException - */ - protected function verifyWindowsPath($fileName) { - $fileName = trim($fileName); - $this->scanForInvalidCharacters($fileName, "\\/<>:\"|?*"); - $reservedNames = ['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9']; - if (in_array(strtoupper($fileName), $reservedNames)) { - throw new ReservedWordException(); - } + $this->verifyPosixPath($fileName); } /** diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index f3c7a4de0d..43c414ccb6 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -299,8 +299,7 @@ class PreviewManager implements IPreview { } if (count($checkImagick->queryFormats('PDF')) === 1) { - // Office previews are currently not supported on Windows - if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) { + if (\OC_Helper::is_function_enabled('shell_exec')) { $officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null)); if (!$officeFound) { @@ -324,9 +323,8 @@ class PreviewManager implements IPreview { } } - // Video requires avconv or ffmpeg and is therefor - // currently not supported on Windows. - if (in_array('OC\Preview\Movie', $this->getEnabledDefaultProvider()) && !\OC_Util::runningOnWindows()) { + // Video requires avconv or ffmpeg + if (in_array('OC\Preview\Movie', $this->getEnabledDefaultProvider())) { $avconvBinary = \OC_Helper::findBinaryPath('avconv'); $ffmpegBinary = ($avconvBinary) ? null : \OC_Helper::findBinaryPath('ffmpeg'); diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 46969f50fa..f1454805a0 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -305,10 +305,6 @@ class Setup { $trustedDomains = [$request->getInsecureServerHost()]; } - if (\OC_Util::runningOnWindows()) { - $dataDir = rtrim(realpath($dataDir), '\\'); - } - //use sqlite3 when available, otherwise sqlite2 will be used. if($dbType=='sqlite' and class_exists('SQLite3')) { $dbType='sqlite3'; diff --git a/lib/private/legacy/helper.php b/lib/private/legacy/helper.php index 21fb3cbc5a..06cffe8083 100644 --- a/lib/private/legacy/helper.php +++ b/lib/private/legacy/helper.php @@ -534,7 +534,7 @@ class OC_Helper { return $memcache->get($program); } $result = null; - if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) { + if (self::is_function_enabled('exec')) { $exeSniffer = new ExecutableFinder(); // Returns null if nothing is found $result = $exeSniffer->find($program); diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 3c56008a48..2a876eda4d 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -902,22 +902,18 @@ class OC_Util { public static function checkDataDirectoryPermissions($dataDirectory) { $l = \OC::$server->getL10N('lib'); $errors = array(); - if (self::runningOnWindows()) { - //TODO: permissions checks for windows hosts - } else { - $permissionsModHint = $l->t('Please change the permissions to 0770 so that the directory' - . ' cannot be listed by other users.'); + $permissionsModHint = $l->t('Please change the permissions to 0770 so that the directory' + . ' cannot be listed by other users.'); + $perms = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($perms, -1) != '0') { + chmod($dataDirectory, 0770); + clearstatcache(); $perms = substr(decoct(@fileperms($dataDirectory)), -3); - if (substr($perms, -1) != '0') { - chmod($dataDirectory, 0770); - clearstatcache(); - $perms = substr(decoct(@fileperms($dataDirectory)), -3); - if (substr($perms, 2, 1) != '0') { - $errors[] = array( - 'error' => $l->t('Data directory (%s) is readable by other users', array($dataDirectory)), - 'hint' => $permissionsModHint - ); - } + if (substr($perms, 2, 1) != '0') { + $errors[] = array( + 'error' => $l->t('Data directory (%s) is readable by other users', array($dataDirectory)), + 'hint' => $permissionsModHint + ); } } return $errors; @@ -933,7 +929,7 @@ class OC_Util { public static function checkDataDirectoryValidity($dataDirectory) { $l = \OC::$server->getL10N('lib'); $errors = []; - if (!self::runningOnWindows() && $dataDirectory[0] !== '/') { + if ($dataDirectory[0] !== '/') { $errors[] = [ 'error' => $l->t('Data directory (%s) must be an absolute path', [$dataDirectory]), 'hint' => $l->t('Check the value of "datadirectory" in your configuration') @@ -1203,11 +1199,6 @@ class OC_Util { * @return bool */ public static function isSetLocaleWorking() { - // setlocale test is pointless on Windows - if (OC_Util::runningOnWindows()) { - return true; - } - \Patchwork\Utf8\Bootup::initLocale(); if ('' === basename('§')) { return false; diff --git a/settings/admin.php b/settings/admin.php index 3ae7455b2e..81267ddef1 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -154,9 +154,6 @@ $template->assign('cronErrors', $appConfig->getValue('core', 'cronErrors')); $path = getenv('PATH'); $template->assign('getenvServerNotWorking', empty($path)); -// warn if Windows is used -$template->assign('WindowsWarning', OC_Util::runningOnWindows()); - // warn if outdated version of a memcache module is used $caches = [ 'apcu' => ['name' => $l->t('APCu'), 'version' => '4.0.6'], diff --git a/settings/templates/admin.php b/settings/templates/admin.php index f41c0d3c10..93c9dca715 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -106,15 +106,6 @@ if ($_['invalidTransactionIsolationLevel']) { -
  • - t('Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience.')); ?> -
  • - $data) { ?> diff --git a/tests/lib/Archive/TARTest.php b/tests/lib/Archive/TARTest.php index 998ce201e7..7575f6c517 100644 --- a/tests/lib/Archive/TARTest.php +++ b/tests/lib/Archive/TARTest.php @@ -12,14 +12,6 @@ namespace Test\Archive; use OC\Archive\TAR; class TARTest extends TestBase { - protected function setUp() { - parent::setUp(); - - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] tar archives are not supported on Windows'); - } - } - protected function getExisting() { $dir = \OC::$SERVERROOT . '/tests/data'; return new TAR($dir . '/data.tar.gz'); diff --git a/tests/lib/Archive/ZIPTest.php b/tests/lib/Archive/ZIPTest.php index 8d639e0d68..ff0155f3d0 100644 --- a/tests/lib/Archive/ZIPTest.php +++ b/tests/lib/Archive/ZIPTest.php @@ -12,14 +12,6 @@ namespace Test\Archive; use OC\Archive\ZIP; class ZIPTest extends TestBase { - protected function setUp() { - parent::setUp(); - - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] '); - } - } - protected function getExisting() { $dir = \OC::$SERVERROOT . '/tests/data'; return new ZIP($dir . '/data.zip'); diff --git a/tests/lib/Files/FilesystemTest.php b/tests/lib/Files/FilesystemTest.php index 76e3f47163..210ce4edc6 100644 --- a/tests/lib/Files/FilesystemTest.php +++ b/tests/lib/Files/FilesystemTest.php @@ -272,28 +272,6 @@ class FilesystemTest extends \Test\TestCase { $this->assertSame($expected, \OC\Files\Filesystem::isFileBlacklisted($path)); } - public function normalizePathWindowsAbsolutePathData() { - return array( - array('C:/', 'C:\\'), - array('C:/', 'C:\\', false), - array('C:/tests', 'C:\\tests'), - array('C:/tests', 'C:\\tests', false), - array('C:/tests', 'C:\\tests\\'), - array('C:/tests/', 'C:\\tests\\', false), - ); - } - - /** - * @dataProvider normalizePathWindowsAbsolutePathData - */ - public function testNormalizePathWindowsAbsolutePath($expected, $path, $stripTrailingSlash = true) { - if (!\OC_Util::runningOnWindows()) { - $this->markTestSkipped('This test is Windows only'); - } - - $this->assertEquals($expected, \OC\Files\Filesystem::normalizePath($path, $stripTrailingSlash, true)); - } - public function testNormalizePathUTF8() { if (!class_exists('Patchwork\PHP\Shim\Normalizer')) { $this->markTestSkipped('UTF8 normalizer Patchwork was not found'); diff --git a/tests/lib/Files/Storage/LocalTest.php b/tests/lib/Files/Storage/LocalTest.php index cca4d6a667..89dd2f0786 100644 --- a/tests/lib/Files/Storage/LocalTest.php +++ b/tests/lib/Files/Storage/LocalTest.php @@ -48,10 +48,6 @@ class LocalTest extends Storage { } public function testStableEtag() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] On Windows platform we have no stable etag generation - yet'); - } - $this->instance->file_put_contents('test.txt', 'foobar'); $etag1 = $this->instance->getETag('test.txt'); $etag2 = $this->instance->getETag('test.txt'); @@ -59,10 +55,6 @@ class LocalTest extends Storage { } public function testEtagChange() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] On Windows platform we have no stable etag generation - yet'); - } - $this->instance->file_put_contents('test.txt', 'foo'); $this->instance->touch('test.txt', time() - 2); $etag1 = $this->instance->getETag('test.txt'); diff --git a/tests/lib/Files/Type/DetectionTest.php b/tests/lib/Files/Type/DetectionTest.php index 5800f4eb8e..7b9dc1b3e4 100644 --- a/tests/lib/Files/Type/DetectionTest.php +++ b/tests/lib/Files/Type/DetectionTest.php @@ -80,10 +80,6 @@ class DetectionTest extends \Test\TestCase { } public function testDetectString() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] Strings have mimetype application/octet-stream on Windows'); - } - $result = $this->detection->detectString("/data/data.tar.gz"); $expected = 'text/plain; charset=us-ascii'; $this->assertEquals($expected, $result); diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php index 87feb63888..72a9161410 100644 --- a/tests/lib/Files/ViewTest.php +++ b/tests/lib/Files/ViewTest.php @@ -104,7 +104,7 @@ class ViewTest extends \Test\TestCase { $cache->clear(); } - if ($this->tempStorage && !\OC_Util::runningOnWindows()) { + if ($this->tempStorage) { system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir())); } @@ -761,14 +761,10 @@ class ViewTest extends \Test\TestCase { /* * 4096 is the maximum path length in file_cache.path in *nix * 1024 is the max path length in mac - * 228 is the max path length in windows */ $folderName = 'abcdefghijklmnopqrstuvwxyz012345678901234567890123456789'; $tmpdirLength = strlen(\OC::$server->getTempManager()->getTemporaryFolder()); - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] '); - $depth = ((260 - $tmpdirLength) / 57); - } elseif (\OC_Util::runningOnMac()) { + if (\OC_Util::runningOnMac()) { $depth = ((1024 - $tmpdirLength) / 57); } else { $depth = ((4000 - $tmpdirLength) / 57); diff --git a/tests/lib/ImageTest.php b/tests/lib/ImageTest.php index 9dba7e3739..9176b8cf6c 100644 --- a/tests/lib/ImageTest.php +++ b/tests/lib/ImageTest.php @@ -75,10 +75,6 @@ class ImageTest extends \Test\TestCase { $img = new \OC_Image(null); $this->assertEquals('', $img->mimeType()); - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] Images created with imagecreate() are pngs on windows'); - } - $img = new \OC_Image(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); $this->assertEquals('image/jpeg', $img->mimeType()); diff --git a/tests/lib/LargeFileHelperGetFileSizeTest.php b/tests/lib/LargeFileHelperGetFileSizeTest.php index ac81a31819..0c3a11e971 100644 --- a/tests/lib/LargeFileHelperGetFileSizeTest.php +++ b/tests/lib/LargeFileHelperGetFileSizeTest.php @@ -28,12 +28,10 @@ class LargeFileHelperGetFileSizeTest extends TestCase { public function dataFileNameProvider() { $path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR; - $filePaths = array(array($path . 'lorem.txt', 446)); - if (!\OC_Util::runningOnWindows()) { - $filePaths[] = array($path . 'strängé filename (duplicate #2).txt', 446); - } - - return $filePaths; + return [ + [ $path . 'lorem.txt', 446 ], + [ $path . 'strängé filename (duplicate #2).txt', 446 ], + ]; } /** diff --git a/tests/lib/TempManagerTest.php b/tests/lib/TempManagerTest.php index c4b88469b8..d3f6ee1dc4 100644 --- a/tests/lib/TempManagerTest.php +++ b/tests/lib/TempManagerTest.php @@ -138,9 +138,6 @@ class TempManagerTest extends \Test\TestCase { } public function testLogCantCreateFile() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.'); - } $this->markTestSkipped('TODO: Disable because fails on drone'); $logger = $this->getMock('\Test\NullLogger'); @@ -153,9 +150,6 @@ class TempManagerTest extends \Test\TestCase { } public function testLogCantCreateFolder() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.'); - } $this->markTestSkipped('TODO: Disable because fails on drone'); $logger = $this->getMock('\Test\NullLogger'); diff --git a/tests/lib/UtilCheckServerTest.php b/tests/lib/UtilCheckServerTest.php index 6465f8dd42..b1152e9725 100644 --- a/tests/lib/UtilCheckServerTest.php +++ b/tests/lib/UtilCheckServerTest.php @@ -145,9 +145,6 @@ class UtilCheckServerTest extends \Test\TestCase { * Tests an error is given when the datadir is not writable */ public function testDataDirNotWritable() { - if (\OC_Util::runningOnWindows()) { - $this->markTestSkipped('[Windows] chmod() does not work as intended on Windows.'); - } $this->markTestSkipped('TODO: Disable because fails on drone'); chmod($this->datadir, 0300); diff --git a/tests/lib/UtilTest.php b/tests/lib/UtilTest.php index 7da7db0291..c68f8d00a4 100644 --- a/tests/lib/UtilTest.php +++ b/tests/lib/UtilTest.php @@ -396,10 +396,8 @@ class UtilTest extends \Test\TestCase { $this->assertNotEmpty($errors); \OCP\Files::rmdirr($dataDir); - if (!\OC_Util::runningOnWindows()) { - $errors = \OC_Util::checkDataDirectoryValidity('relative/path'); - $this->assertNotEmpty($errors); - } + $errors = \OC_Util::checkDataDirectoryValidity('relative/path'); + $this->assertNotEmpty($errors); } protected function setUp() {