Merge pull request #24629 from nextcloud/enh/noid/optional-before-required

Make $vars and $secureRandom required.
This commit is contained in:
Christoph Wurst 2020-12-16 12:43:06 +01:00 committed by GitHub
commit 820f9f4f63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 9 deletions

View File

@ -29,17 +29,20 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre; namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OC\AppFramework\Http\Request;
use OC\Files\Filesystem; use OC\Files\Filesystem;
use OC\Files\Storage\Local; use OC\Files\Storage\Local;
use OC\Files\Storage\Temporary; use OC\Files\Storage\Temporary;
use OC\Files\Storage\Wrapper\PermissionsMask; use OC\Files\Storage\Wrapper\PermissionsMask;
use OC\Files\View; use OC\Files\View;
use OC\Security\SecureRandom;
use OCA\DAV\Connector\Sabre\File; use OCA\DAV\Connector\Sabre\File;
use OCP\Constants; use OCP\Constants;
use OCP\Files\ForbiddenException; use OCP\Files\ForbiddenException;
use OCP\Files\Storage; use OCP\Files\Storage;
use OCP\IConfig; use OCP\IConfig;
use OCP\Lock\ILockingProvider; use OCP\Lock\ILockingProvider;
use OCP\Security\ISecureRandom;
use Test\HookHelper; use Test\HookHelper;
use Test\TestCase; use Test\TestCase;
use Test\Traits\MountProviderTrait; use Test\Traits\MountProviderTrait;
@ -64,6 +67,9 @@ class FileTest extends TestCase {
/** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */ /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
protected $config; protected $config;
/** @var ISecureRandom */
protected $secureRandom;
protected function setUp(): void { protected function setUp(): void {
parent::setUp(); parent::setUp();
unset($_SERVER['HTTP_OC_CHUNKED']); unset($_SERVER['HTTP_OC_CHUNKED']);
@ -78,6 +84,7 @@ class FileTest extends TestCase {
$this->loginAsUser($this->user); $this->loginAsUser($this->user);
$this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock();
$this->secureRandom = new SecureRandom();
} }
protected function tearDown(): void { protected function tearDown(): void {
@ -303,11 +310,11 @@ class FileTest extends TestCase {
* *
* @param string $path path to put the file into * @param string $path path to put the file into
* @param string $viewRoot root to use for the view * @param string $viewRoot root to use for the view
* @param null|\OC\AppFramework\Http\Request $request the HTTP request * @param null|Request $request the HTTP request
* *
* @return null|string of the PUT operaiton which is usually the etag * @return null|string of the PUT operaiton which is usually the etag
*/ */
private function doPut($path, $viewRoot = null, \OC\AppFramework\Http\Request $request = null) { private function doPut($path, $viewRoot = null, Request $request = null) {
$view = \OC\Files\Filesystem::getView(); $view = \OC\Files\Filesystem::getView();
if (!is_null($viewRoot)) { if (!is_null($viewRoot)) {
$view = new \OC\Files\View($viewRoot); $view = new \OC\Files\View($viewRoot);
@ -405,11 +412,11 @@ class FileTest extends TestCase {
* @dataProvider legalMtimeProvider * @dataProvider legalMtimeProvider
*/ */
public function testPutSingleFileLegalMtime($requestMtime, $resultMtime) { public function testPutSingleFileLegalMtime($requestMtime, $resultMtime) {
$request = new \OC\AppFramework\Http\Request([ $request = new Request([
'server' => [ 'server' => [
'HTTP_X_OC_MTIME' => $requestMtime, 'HTTP_X_OC_MTIME' => $requestMtime,
] ]
], null, $this->config, null); ], $this->secureRandom, $this->config, null);
$file = 'foo.txt'; $file = 'foo.txt';
if ($resultMtime === null) { if ($resultMtime === null) {
@ -429,11 +436,11 @@ class FileTest extends TestCase {
* @dataProvider legalMtimeProvider * @dataProvider legalMtimeProvider
*/ */
public function testChunkedPutLegalMtime($requestMtime, $resultMtime) { public function testChunkedPutLegalMtime($requestMtime, $resultMtime) {
$request = new \OC\AppFramework\Http\Request([ $request = new Request([
'server' => [ 'server' => [
'HTTP_X_OC_MTIME' => $requestMtime, 'HTTP_X_OC_MTIME' => $requestMtime,
] ]
], null, $this->config, null); ], $this->secureRandom, $this->config, null);
$_SERVER['HTTP_OC_CHUNKED'] = true; $_SERVER['HTTP_OC_CHUNKED'] = true;
$file = 'foo.txt'; $file = 'foo.txt';

View File

@ -159,7 +159,7 @@ class OC {
'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'], 'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'],
], ],
]; ];
$fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig(self::$config))); $fakeRequest = new \OC\AppFramework\Http\Request($params, new \OC\Security\SecureRandom(), new \OC\AllConfig(new \OC\SystemConfig(self::$config)));
$scriptName = $fakeRequest->getScriptName(); $scriptName = $fakeRequest->getScriptName();
if (substr($scriptName, -1) == '/') { if (substr($scriptName, -1) == '/') {
$scriptName .= 'index.php'; $scriptName .= 'index.php';

View File

@ -136,8 +136,8 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* @param string $stream * @param string $stream
* @see http://www.php.net/manual/en/reserved.variables.php * @see http://www.php.net/manual/en/reserved.variables.php
*/ */
public function __construct(array $vars = [], public function __construct(array $vars,
ISecureRandom $secureRandom = null, ISecureRandom $secureRandom,
IConfig $config, IConfig $config,
CsrfTokenManager $csrfTokenManager = null, CsrfTokenManager $csrfTokenManager = null,
string $stream = 'php://input') { string $stream = 'php://input') {