public function SimplenewsSynchronizeFieldsFormTest::testSubscriberFormFieldSync in Simplenews 8.2
Same name and namespace in other branches
- 3.x tests/src/Functional/SimplenewsSynchronizeFieldsFormTest.php \Drupal\Tests\simplenews\Functional\SimplenewsSynchronizeFieldsFormTest::testSubscriberFormFieldSync()
Tests that fields are synchronized using the Subscriber form.
File
- tests/
src/ Functional/ SimplenewsSynchronizeFieldsFormTest.php, line 52
Class
- SimplenewsSynchronizeFieldsFormTest
- Tests that shared fields are synchronized when using forms.
Namespace
Drupal\Tests\simplenews\FunctionalCode
public function testSubscriberFormFieldSync() {
// Create a subscriber for the user.
$subscriber = Subscriber::create([
// Subscribers are linked to users by the uid field.
'uid' => $this->user
->id(),
'mail' => 'anything@example.com',
]);
$subscriber
->save();
// Edit subscriber field and assert user field is changed accordingly.
$this
->drupalLogin($this->user);
$this
->drupalGet('admin/people/simplenews/edit/' . $subscriber
->id());
$this
->assertField('field_shared[0][value]');
$this
->assertRaw($this->user->field_shared->value);
$new_value = $this
->randomMachineName();
$this
->drupalPostForm(NULL, [
'field_shared[0][value]' => $new_value,
], t('Save'));
$this
->drupalGet('admin/people/simplenews/edit/' . $subscriber
->id());
$this
->assertRaw($new_value);
$this->user = User::load($this->user
->id());
$this
->assertEqual($this->user->field_shared->value, $new_value);
// Unset the sync setting and assert field is not synced.
$this
->drupalPostForm('admin/config/people/simplenews/settings/subscriber', [
'simplenews_sync_fields' => FALSE,
], t('Save configuration'));
$unsynced_value = $this
->randomMachineName();
$this
->drupalPostForm('admin/people/simplenews/edit/' . $subscriber
->id(), [
'field_shared[0][value]' => $unsynced_value,
], t('Save'));
$this
->drupalGet('admin/people/simplenews/edit/' . $subscriber
->id());
$this
->assertRaw($unsynced_value);
$this->user = User::load($this->user
->id());
$this
->assertEqual($this->user->field_shared->value, $new_value);
$this
->assertNotEqual($this->user->field_shared->value, $unsynced_value);
}