public function RateTypeAccessTest::testRateTypeAccess in Rate 8.2
Same name and namespace in other branches
- 8 tests/src/Kernel/RateTypeAccessTest.php \Drupal\Tests\rate\Kernel\RateTypeAccessTest::testRateTypeAccess()
Tests access handling for different rate types.
File
- tests/
src/ Kernel/ RateTypeAccessTest.php, line 97
Class
- RateTypeAccessTest
- Tests access control for vote_types defined in the Rate module.
Namespace
Drupal\Tests\rate\KernelCode
public function testRateTypeAccess() {
// The following rate types are defined by the Rate module.
// In rate_vote_type_access(), permission to view vote types with these
// IDs is granted for users with the 'view rate results page' permission.
$rate_types = [
'updown',
'fivestar',
];
$vote_type_storage = $this->container
->get('entity_type.manager')
->getStorage('vote_type');
// Create fake vote type.
$vote_type_storage
->create([
'id' => 'fake',
'label' => 'Fake vote type',
'value_type' => 'points',
'description' => 'A fake vote type for testing purposes.',
])
->save();
// Test each of the vote types that are defined by the Rate module.
foreach ($rate_types as $rate_type) {
$vote_type = $vote_type_storage
->load($rate_type);
// Confirm that the logged_user can access the vote type info.
$this
->assertTrue($this->accessHandler
->access($vote_type, 'view', $this->loggedInUser), 'Logged in user can see vote of type ' . $rate_type);
// Confirm that the anonymous_user cannot access the vote type info.
$this
->assertFalse($this->accessHandler
->access($vote_type, 'view', $this->anonymousUser), 'Anonymous user cannot see vote of type ' . $rate_type);
}
// Confirm that neither user may access the fake vote type,
// which is not in the list of vote types provided by the Rate module.
$fake_vote_type = $vote_type_storage
->load('fake');
$this
->assertFalse($this->accessHandler
->access($fake_vote_type, 'view', $this->loggedInUser), 'Logged in user cannot see vote of type ' . $fake_vote_type
->id());
$this
->assertFalse($this->accessHandler
->access($fake_vote_type, 'view', $this->anonymousUser), 'Anonymous user cannot see vote of type ' . $fake_vote_type
->id());
}