function MediaAccessControlHandlerTest::providerAccess

Same name and namespace in other branches
  1. 9 core/modules/media/tests/src/Kernel/MediaAccessControlHandlerTest.php \Drupal\Tests\media\Kernel\MediaAccessControlHandlerTest::providerAccess()
  2. 8.9.x core/modules/media/tests/src/Kernel/MediaAccessControlHandlerTest.php \Drupal\Tests\media\Kernel\MediaAccessControlHandlerTest::providerAccess()
  3. 11.x core/modules/media/tests/src/Kernel/MediaAccessControlHandlerTest.php \Drupal\Tests\media\Kernel\MediaAccessControlHandlerTest::providerAccess()

Data provider for testAccess().

Return value

array The data sets to test.

File

core/modules/media/tests/src/Kernel/MediaAccessControlHandlerTest.php, line 138

Class

MediaAccessControlHandlerTest
Tests the media access control handler.

Namespace

Drupal\Tests\media\Kernel

Code

public static function providerAccess() {
  $test_data = [];
  // Check published / unpublished media access for a user owning the media
  // item without permissions.
  $test_data['owner, no permissions / published / view'] = [
    [],
    [
      'status' => TRUE,
    ],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, no permissions / published / update'] = [
    [],
    [
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, no permissions / published / delete'] = [
    [],
    [
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, no permissions / unpublished / view'] = [
    [],
    [],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, no permissions / unpublished / update'] = [
    [],
    [],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, no permissions / unpublished / delete'] = [
    [],
    [],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // Check published / unpublished media access for a user not owning the
  // media item without permissions.
  $test_data['not owner, no permissions / published / view'] = [
    [],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, no permissions / published / update'] = [
    [],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, no permissions / published / delete'] = [
    [],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, no permissions / unpublished / view'] = [
    [],
    [
      'uid' => 0,
    ],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, no permissions / unpublished / update'] = [
    [],
    [
      'uid' => 0,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, no permissions / unpublished / delete'] = [
    [],
    [
      'uid' => 0,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // Check published / unpublished media access for a user owning the media
  // item with only the 'view media' permission.
  $test_data['owner, can view media / published / view'] = [
    [
      'view media',
    ],
    [
      'status' => TRUE,
    ],
    'view',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, can view media / published / update'] = [
    [
      'view media',
    ],
    [
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view media / published / delete'] = [
    [
      'view media',
    ],
    [
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view media / unpublished / view'] = [
    [
      'view media',
    ],
    [],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, can view media / unpublished / update'] = [
    [
      'view media',
    ],
    [],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view media / unpublished / delete'] = [
    [
      'view media',
    ],
    [],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // Check published / unpublished media access for a user not owning the
  // media item with only the 'view media' permission.
  $test_data['not owner, can view media / published / view'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'view',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, can view media / published / update'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view media / published / delete'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view media / unpublished / view'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
    ],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, can view media / unpublished / update'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view media / unpublished / delete'] = [
    [
      'view media',
    ],
    [
      'uid' => 0,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // Check published / unpublished media access for a user owning the media
  // item with the 'view media' and 'view own unpublished' permission.
  $test_data['owner, can view own unpublished media / published / view'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'status' => TRUE,
    ],
    'view',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, can view own unpublished media / published / update'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view own unpublished media / published / delete'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view own unpublished media / unpublished / view'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [],
    'view',
    AccessResult::allowed(),
    [
      'user.permissions',
      'user',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['owner, can view own unpublished media / unpublished / update'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['owner, can view own unpublished media / unpublished / delete'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // Check published / unpublished media access for a user not owning the
  // media item with the 'view media' and 'view own unpublished' permission.
  $test_data['not owner, can view own unpublished media / published / view'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'view',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, can view own unpublished media / published / update'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view own unpublished media / published / delete'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
      'status' => TRUE,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view own unpublished media / unpublished / view'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
    ],
    'view',
    AccessResult::neutral(),
    [
      'user.permissions',
      'user',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  $test_data['not owner, can view own unpublished media / unpublished / update'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
    ],
    'update',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['not owner, can view own unpublished media / unpublished / delete'] = [
    [
      'view media',
      'view own unpublished media',
    ],
    [
      'uid' => 0,
    ],
    'delete',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  // View all revisions:
  $test_data['view all revisions:none'] = [
    [],
    [],
    'view all revisions',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['admins can view all revisions'] = [
    [
      'administer media',
    ],
    [],
    'view all revisions',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [],
    TRUE,
  ];
  $test_data['view all revisions with view bundle permission'] = [
    [
      'view any test media revisions',
      'view media',
    ],
    [
      'status' => TRUE,
    ],
    'view all revisions',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    TRUE,
  ];
  // Revert revisions:
  $test_data['revert a latest revision with no permissions'] = [
    [],
    [],
    'revert',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['revert a historical revision with no permissions'] = [
    [],
    [],
    'revert',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    FALSE,
  ];
  $test_data['revert latest revision with administer media permission'] = [
    [
      'administer media',
    ],
    [],
    'revert',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['revert a historical revision with administer media permission'] = [
    [
      'administer media',
    ],
    [],
    'revert',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [],
    FALSE,
  ];
  $test_data['revert a latest revision with revert bundle permission'] = [
    [
      'revert any test media revisions',
    ],
    [],
    'revert',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['revert a historical revision with revert bundle permission'] = [
    [
      'revert any test media revisions',
    ],
    [],
    'revert',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    FALSE,
  ];
  // Delete revisions:
  $test_data['delete a latest revision with no permission'] = [
    [],
    [],
    'delete revision',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['delete a historical revision with no permission'] = [
    [],
    [],
    'delete revision',
    AccessResult::neutral(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    FALSE,
  ];
  $test_data['delete a latest revision with administer media permission'] = [
    [
      'administer media',
    ],
    [],
    'delete revision',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['delete a historical revision with administer media permission'] = [
    [
      'administer media',
    ],
    [],
    'delete revision',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [],
    FALSE,
  ];
  $test_data['delete a latest revision with delete bundle permission'] = [
    [
      'delete any test media revisions',
    ],
    [],
    'delete revision',
    AccessResult::forbidden(),
    [],
    [],
    TRUE,
  ];
  $test_data['delete a historical revision with delete bundle permission'] = [
    [
      'delete any test media revisions',
    ],
    [],
    'delete revision',
    AccessResult::allowed(),
    [
      'user.permissions',
    ],
    [
      'media:1',
    ],
    FALSE,
  ];
  return $test_data;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.