Skip to content
Snippets Groups Projects
Commit 247335f0 authored by Aaron Bauman's avatar Aaron Bauman
Browse files

Adds better test coverage for fields form. This will be failing now. Need to fix elsewhere

parent c6aae3f8
No related branches found
No related tags found
No related merge requests found
......@@ -73,11 +73,8 @@ class SalesforceMappingCrudFormTest extends BrowserTestBase {
'salesforce_object_type' => 'Contact',
];
$this->drupalPostForm('admin/structure/salesforce/mappings/add', $post, $this->t('Save'));
$newurl = parse_url($this->getUrl());
$this->assertSession()->pageTextContainsOnce($this->t('The mapping has been successfully saved.'));
// Make sure the redirect was correct (and therefore form was submitted
// successfully).
$this->assertEqual($newurl['path'], $base_path . 'admin/structure/salesforce/mappings/manage/' . $mapping_name . '/fields');
$mapping = $mappingStorage->load($mapping_name);
// Make sure mapping was saved correctly.
$this->assertEqual($mapping->id(), $mapping_name);
......@@ -103,25 +100,41 @@ class SalesforceMappingCrudFormTest extends BrowserTestBase {
$post = [];
$i = 0;
$this->drupalGet('admin/structure/salesforce/mappings/manage/' . $mapping_name . '/fields');
foreach ($field_plugins as $definition) {
if (call_user_func([$definition['class'], 'isAllowed'], $mapping)) {
// Add a new field:
$post['field_type'] = $definition['id'];
$this->drupalPostForm('admin/structure/salesforce/mappings/manage/' . $mapping_name . '/fields', $post, $this->t('Add a field mapping to get started'));
$post['buttons[field_type]'] = $definition['id'];
$this->drupalPostForm(NULL, $post, $this->t('Add a field mapping to get started'));
// Confirm that the new field shows up:
$this->assertText($definition['label']);
// @TODO need an interface for field plugins that will tell us which config values are applicable.
// Add all components of this field plugin to our post array to build up the mapping.
$this->assertField("field_mappings[$i][config][drupal_field_value]");
$this->assertField("field_mappings[$i][config][salesforce_field]");
$this->assertElementPresent("[name='field_mappings[$i][config][drupal_field_value]'], [name='field_mappings[$i][config][drupal_field_value][setting]']");
$this->assertElementPresent("[name='field_mappings[$i][config][salesforce_field]'], [name='field_mappings[$i][config][drupal_constant]']");
$this->assertField("field_mappings[$i][config][description]");
$this->assertSession()->hiddenFieldExists("field_mappings[$i][drupal_field_type]");
$this->assertField("field_mappings[$i][config][direction]");
// $post[$field] = '';
// $i++;
$this->assertSession()->hiddenFieldExists("field_mappings[$i][drupal_field_type]");
if ($this->getSession()->getPage()->find('css', "select[name='field_mappings[$i][config][salesforce_field]'] option[value='LastName']")) {
$post["field_mappings[$i][config][salesforce_field]"] = 'LastName';
}
if ($this->getSession()->getPage()->find('css', "select[name='field_mappings[$i][config][drupal_field_value]'] option[value='title']")) {
$post["field_mappings[$i][config][drupal_field_value]"] = 'title';
}
$i++;
}
}
// Confirm that form saves correctly.
$this->drupalPostForm(NULL, $post, $this->t('Save'));
$this->assertSession()->pageTextContainsOnce($this->t('The mapping has been successfully saved.'));
// Confirm that the changes are stored properly by reloading and counting the fields.
$this->drupalGet('admin/structure/salesforce/mappings/manage/' . $mapping_name . '/fields');
for ($j = 0; $j < $i; $j++) {
$this->assertSession()->elementExists('css', "#edit-field-mappings-$j");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment