summaryrefslogtreecommitdiffstats
path: root/settings/personal.php
Commit message (Expand)AuthorAgeFilesLines
* Move some common code to OC_UtilBart Visscher2011-09-181-4/+1
* allow apps to register form for the settings and admin pagesRobin Appelman2011-08-231-1/+6
* Show language names in PersonalRobin Appelman2011-08-141-3/+8
* merged admin, help and settings to settingsJan-Christoph Borchardt2011-08-131-0/+40
href='#n70'>70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
<?php
/**
 * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

namespace Test;

use bantu\IniGetWrapper\IniGetWrapper;

/**
 * Tests whether LargeFileHelper is able to determine file size at all.
 * Large files are not considered yet.
 */
class LargeFileHelperGetFileSizeTest extends TestCase {
	/** @var string */
	protected $filename;
	/** @var int */
	protected $fileSize;
	/** @var \OC\LargeFileHelper */
	protected $helper;

	protected function setUp(): void {
		parent::setUp();
		$this->helper = new \OC\LargeFileHelper();
	}

	public function dataFileNameProvider() {
		$path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR;

		return [
			[ $path . 'lorem.txt', 446 ],
			[ $path . 'strängé filename (duplicate #2).txt', 446 ],
		];
	}

	/**
	 * @dataProvider dataFileNameProvider
	 */
	public function XtestGetFileSizeViaCurl($filename, $fileSize) {
		if (!extension_loaded('curl')) {
			$this->markTestSkipped(
				'The PHP curl extension is required for this test.'
			);
		}
		if (\OC::$server->get(IniGetWrapper::class)->getString('open_basedir') !== '') {
			$this->markTestSkipped(
				'The PHP curl extension does not work with the file:// protocol when open_basedir is enabled.'
			);
		}
		$this->assertSame(
			$fileSize,
			$this->helper->getFileSizeViaCurl($filename)
		);
	}

	/**
	 * @dataProvider dataFileNameProvider
	 */
	public function testGetFileSizeViaExec($filename, $fileSize) {
		if (escapeshellarg('strängé') !== '\'strängé\'') {
			$this->markTestSkipped('Your escapeshell args removes accents');
		}
		if (!\OCP\Util::isFunctionEnabled('exec')) {
			$this->markTestSkipped(
				'The exec() function needs to be enabled for this test.'
			);
		}
		$this->assertSame(
			$fileSize,
			$this->helper->getFileSizeViaExec($filename)
		);
	}

	/**
	 * @dataProvider dataFileNameProvider
	 */
	public function testGetFileSizeNative($filename, $fileSize) {
		$this->assertSame(
			$fileSize,
			$this->helper->getFileSizeNative($filename)
		);
	}
}