public function VoteTest::testAnonymousVoting in Voting API 8.3
Test voting by anonymous users.
File
- tests/
src/ Functional/ VoteTest.php, line 137
Class
- VoteTest
- Tests the Voting API basics.
Namespace
Drupal\Tests\votingapi\FunctionalCode
public function testAnonymousVoting() {
$vote_storage = $this->container
->get('entity_type.manager')
->getStorage('vote');
$node = $this
->drupalCreateNode();
// Save a few votes from different anonymous users.
$values = [
10 => 'source_1',
20 => 'source_2',
60 => 'source_2',
];
foreach ($values as $value => $source) {
$vote_storage
->create([
'type' => 'vote',
'entity_id' => $node
->id(),
'entity_type' => 'node',
'user_id' => 0,
'value' => $value,
'vote_source' => $source,
])
->save();
}
// Retrieve the votes. For now, just count them.
$votes_from_source_1 = $vote_storage
->getUserVotes(0, 'vote', 'node', 1, 'source_1');
$votes_from_source_2 = $vote_storage
->getUserVotes(0, 'vote', 'node', 1, 'source_2');
$this
->assertCount(1, $votes_from_source_1, 'There is 1 vote from the first source.');
$this
->assertCount(2, $votes_from_source_2, 'There are 2 votes from the second source.');
// Delete the votes from source_2 and repeat the test.
$vote_storage
->deleteUserVotes(0, 'vote', 'node', 1, 'source_2');
$votes_from_source_1 = $vote_storage
->getUserVotes(0, 'vote', 'node', 1, 'source_1');
$votes_from_source_2 = $vote_storage
->getUserVotes(0, 'vote', 'node', 1, 'source_2');
$this
->assertCount(1, $votes_from_source_1, 'There is still 1 vote from the first source.');
$this
->assertCount(0, $votes_from_source_2, 'There are now 0 votes from the second source.');
}