From 2adeb979e2300f51ae16ebdbe01a54fc9e0e9e4a Mon Sep 17 00:00:00 2001 From: Lee Rowlands Date: Mon, 27 May 2019 17:06:18 +1000 Subject: [PATCH] Issue #3048434 by claudiu.cristea, Lendude: Convert FileManagedAccessTest into a Kernel test --- .../src/Functional/FileManagedAccessTest.php | 83 ------------------- .../src/Kernel/FileManagedAccessTest.php | 77 +++++++++++++++++ 2 files changed, 77 insertions(+), 83 deletions(-) delete mode 100644 core/modules/file/tests/src/Functional/FileManagedAccessTest.php create mode 100644 core/modules/file/tests/src/Kernel/FileManagedAccessTest.php diff --git a/core/modules/file/tests/src/Functional/FileManagedAccessTest.php b/core/modules/file/tests/src/Functional/FileManagedAccessTest.php deleted file mode 100644 index c62b1cbf1607..000000000000 --- a/core/modules/file/tests/src/Functional/FileManagedAccessTest.php +++ /dev/null @@ -1,83 +0,0 @@ -grantPermission('access content'); - $anonymous_role->save(); - } - - /** - * Tests if public file is always accessible. - */ - public function testFileAccess() { - // Create a new file entity. - $file = File::create([ - 'uid' => 1, - 'filename' => 'drupal.txt', - 'uri' => 'public://drupal.txt', - 'filemime' => 'text/plain', - 'status' => FILE_STATUS_PERMANENT, - ]); - file_put_contents($file->getFileUri(), 'hello world'); - - // Save it, inserting a new record. - $file->save(); - - // Create authenticated user to check file access. - $account = $this->createUser(['access site reports', 'access content']); - - $this->assertTrue($file->access('view', $account), 'Public file is viewable to authenticated user'); - $this->assertTrue($file->access('download', $account), 'Public file is downloadable to authenticated user'); - - // Create anonymous user to check file access. - $account = $this->createUser()->getAnonymousUser(); - - $this->assertTrue($file->access('view', $account), 'Public file is viewable to anonymous user'); - $this->assertTrue($file->access('download', $account), 'Public file is downloadable to anonymous user'); - - // Create a new file entity. - $file = File::create([ - 'uid' => 1, - 'filename' => 'drupal.txt', - 'uri' => 'private://drupal.txt', - 'filemime' => 'text/plain', - 'status' => FILE_STATUS_PERMANENT, - ]); - file_put_contents($file->getFileUri(), 'hello world'); - - // Save it, inserting a new record. - $file->save(); - - // Create authenticated user to check file access. - $account = $this->createUser(['access site reports', 'access content']); - - $this->assertFalse($file->access('view', $account), 'Private file is not viewable to authenticated user'); - $this->assertFalse($file->access('download', $account), 'Private file is not downloadable to authenticated user'); - - // Create anonymous user to check file access. - $account = $this->createUser()->getAnonymousUser(); - - $this->assertFalse($file->access('view', $account), 'Private file is not viewable to anonymous user'); - $this->assertFalse($file->access('download', $account), 'Private file is not downloadable to anonymous user'); - } - -} diff --git a/core/modules/file/tests/src/Kernel/FileManagedAccessTest.php b/core/modules/file/tests/src/Kernel/FileManagedAccessTest.php new file mode 100644 index 000000000000..87a11f789a60 --- /dev/null +++ b/core/modules/file/tests/src/Kernel/FileManagedAccessTest.php @@ -0,0 +1,77 @@ +installSchema('system', ['sequences']); + $this->installEntitySchema('user'); + $this->installEntitySchema('file'); + $this->installSchema('file', ['file_usage']); + $this->installConfig('user'); + + $anonymous = User::create(['uid' => 0, 'name' => '']); + $anonymous->save(); + user_role_grant_permissions(AccountInterface::ANONYMOUS_ROLE, ['access content']); + + // Create an authenticated user to check file access. + $account = $this->createUser(['access site reports', 'access content'], NULL, FALSE, ['uid' => 2]); + + // Create a new file entity in the public:// stream wrapper. + $file_public = File::create([ + 'uid' => 1, + 'filename' => 'drupal.txt', + 'uri' => 'public://drupal.txt', + 'status' => FILE_STATUS_PERMANENT, + ]); + $file_public->save(); + + $this->assertTrue($file_public->access('view', $account)); + $this->assertTrue($file_public->access('download', $account)); + + $this->assertTrue($file_public->access('view', $anonymous)); + $this->assertTrue($file_public->access('download', $anonymous)); + + // Create a new file entity in the private:// stream wrapper. + $file_private = File::create([ + 'uid' => 1, + 'filename' => 'drupal.txt', + 'uri' => 'private://drupal.txt', + 'status' => FILE_STATUS_PERMANENT, + ]); + $file_private->save(); + + $this->assertFalse($file_private->access('view', $account)); + $this->assertFalse($file_private->access('download', $account)); + + $this->assertFalse($file_private->access('view', $anonymous)); + $this->assertFalse($file_private->access('download', $anonymous)); + } + +}