$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;
}
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();
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)
}
// 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);
}
/**
}
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) {
}
}
- // 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');
$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';
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);
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;
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')
* @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;
$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'],
<?php
}
-// Windows Warning
-if ($_['WindowsWarning']) {
- ?>
- <li>
- <?php p($l->t('Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience.')); ?>
- </li>
-<?php
-}
-
// Warning if memcache is outdated
foreach ($_['OutdatedCacheWarning'] as $php_module => $data) {
?>
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');
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');
$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');
}
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');
}
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');
}
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);
$cache->clear();
}
- if ($this->tempStorage && !\OC_Util::runningOnWindows()) {
+ if ($this->tempStorage) {
system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir()));
}
/*
* 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);
$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());
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 ],
+ ];
}
/**
}
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');
}
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');
* 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);
$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() {