public function WebformSubmissionListBuilderTest::testResults in Webform 8.5
Same name and namespace in other branches
- 6.x tests/src/Functional/WebformSubmissionListBuilderTest.php \Drupal\Tests\webform\Functional\WebformSubmissionListBuilderTest::testResults()
Tests results.
File
- tests/
src/ Functional/ WebformSubmissionListBuilderTest.php, line 31
Class
- WebformSubmissionListBuilderTest
- Tests for webform submission list builder.
Namespace
Drupal\Tests\webform\FunctionalCode
public function testResults() {
$own_submission_user = $this
->drupalCreateUser([
'view own webform submission',
'edit own webform submission',
'delete own webform submission',
'access webform submission user',
]);
$admin_submission_user = $this
->drupalCreateUser([
'administer webform submission',
]);
/** @var \Drupal\webform\WebformInterface $webform */
$webform = Webform::load('test_submissions');
/** @var \Drupal\webform\WebformSubmissionInterface[] $submissions */
$submissions = array_values(\Drupal::entityTypeManager()
->getStorage('webform_submission')
->loadByProperties([
'webform_id' => 'test_submissions',
]));
/**************************************************************************/
// Login the own submission user.
$this
->drupalLogin($own_submission_user);
// Make the second submission to be starred (aka sticky).
$submissions[1]
->setSticky(TRUE)
->save();
// Make the third submission to be locked.
$submissions[2]
->setLocked(TRUE)
->save();
$this
->drupalLogin($admin_submission_user);
/* Filter */
$this
->drupalGet('/admin/structure/webform/manage/' . $webform
->id() . '/results/submissions');
// Check state options with totals.
$this
->assertRaw('<select data-drupal-selector="edit-state" id="edit-state" name="state" class="form-select"><option value="" selected="selected">All [4]</option><option value="starred">Starred [1]</option><option value="unstarred">Unstarred [3]</option><option value="locked">Locked [1]</option><option value="unlocked">Unlocked [3]</option></select>');
// Check results with no filtering.
$this
->assertLinkByHref($submissions[0]
->toUrl()
->toString());
$this
->assertLinkByHref($submissions[1]
->toUrl()
->toString());
$this
->assertLinkByHref($submissions[2]
->toUrl()
->toString());
$this
->assertRaw($submissions[0]
->getElementData('first_name'));
$this
->assertRaw($submissions[1]
->getElementData('first_name'));
$this
->assertRaw($submissions[2]
->getElementData('first_name'));
$this
->assertNoFieldById('edit-reset', 'reset');
// Check results filtered by uuid.
$this
->drupalPostForm('/admin/structure/webform/manage/' . $webform
->id() . '/results/submissions', [
'search' => $submissions[0]
->get('uuid')->value,
], 'Filter');
$this
->assertUrl('admin/structure/webform/manage/' . $webform
->id() . '/results/submissions?search=' . $submissions[0]
->get('uuid')->value);
$this
->assertRaw($submissions[0]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[1]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[2]
->getElementData('first_name'));
// Check results filtered by key(word).
$this
->drupalPostForm('/admin/structure/webform/manage/' . $webform
->id() . '/results/submissions', [
'search' => $submissions[0]
->getElementData('first_name'),
], 'Filter');
$this
->assertUrl('admin/structure/webform/manage/' . $webform
->id() . '/results/submissions?search=' . $submissions[0]
->getElementData('first_name'));
$this
->assertRaw($submissions[0]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[1]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[2]
->getElementData('first_name'));
$this
->assertFieldById('edit-reset', 'Reset');
// Check results filtered by state:starred.
$this
->drupalPostForm('/admin/structure/webform/manage/' . $webform
->id() . '/results/submissions', [
'state' => 'starred',
], 'Filter');
$this
->assertUrl('admin/structure/webform/manage/' . $webform
->id() . '/results/submissions?state=starred');
$this
->assertRaw('<option value="starred" selected="selected">Starred [1]</option>');
$this
->assertNoRaw($submissions[0]
->getElementData('first_name'));
$this
->assertRaw($submissions[1]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[2]
->getElementData('first_name'));
$this
->assertFieldById('edit-reset', 'Reset');
// Check results filtered by state:starred.
$this
->drupalPostForm('/admin/structure/webform/manage/' . $webform
->id() . '/results/submissions', [
'state' => 'locked',
], 'Filter');
$this
->assertUrl('admin/structure/webform/manage/' . $webform
->id() . '/results/submissions?state=locked');
$this
->assertRaw('<option value="locked" selected="selected">Locked [1]</option>');
$this
->assertNoRaw($submissions[0]
->getElementData('first_name'));
$this
->assertNoRaw($submissions[1]
->getElementData('first_name'));
$this
->assertRaw($submissions[2]
->getElementData('first_name'));
$this
->assertFieldById('edit-reset', 'Reset');
}