You are here

function AcquiaLiftWebTestCampaignWizardVariations::testWhatLockStep in Acquia Lift Connector 7.2

Test lock-step combinations of variation sets.

File

tests/acquia_lift.test, line 3452
Integration tests for Acquia Lift module.

Class

AcquiaLiftWebTestCampaignWizardVariations

Code

function testWhatLockStep() {
  $error_heading = "Let's fix this";
  $error_message = 'Variation sets must contain an equal number of variations.';
  $this
    ->drupalLogin($this->managerUser);
  $agent = $this
    ->createTargetingAgent();

  // Create a personalized block from existing blocks.
  $this
    ->drupalGet('admin/structure/personalize/manage/' . $agent->machine_name . '/variations');
  $this
    ->assertNoText($error_heading);
  $this
    ->assertNoText($error_message);

  // Add two variation sets.
  $this
    ->drupalPostAJAX(NULL, array(), $this->addVariationSetElement);
  $this
    ->drupalPostAJAX(NULL, array(), $this->addVariationSetElement);
  $edit = array(
    'variations[editing][new][0][option_set_type]' => 'block',
  );
  $this
    ->drupalPostAJAX(NULL, $edit, 'variations[editing][new][0][option_set_type]');
  $edit = array(
    'variations[editing][new][1][option_set_type]' => 'block',
  );
  $this
    ->drupalPostAJAX(NULL, $edit, 'variations[editing][new][1][option_set_type]');
  $this
    ->drupalPostAJAX(NULL, array(), 'blocks_add_variation_add_1');
  $edit = array(
    'variations[editing][new][0][block][content][title]' => 'Muppets',
    'variations[editing][new][0][block][content][pblock_wrapper][blocks][0][option_label]' => 'Muppets variation 1',
    'variations[editing][new][0][block][content][pblock_wrapper][blocks][0][block][bid]' => 'comment_delta_recent',
    'variations[editing][new][0][block][content][pblock_wrapper][blocks][1][option_label]' => 'Muppets variation 2',
    'variations[editing][new][0][block][content][pblock_wrapper][blocks][1][block][bid]' => 'node_delta_recent',
    'variations[editing][new][1][block][content][title]' => 'Sesame',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][0][option_label]' => 'Sesame variation 1',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][0][block][bid]' => 'system_delta_powered-by',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][1][option_label]' => 'Sesme variation 2',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][1][block][bid]' => 'system_delta_help',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][2][option_label]' => 'Sesame variation 3',
    'variations[editing][new][1][block][content][pblock_wrapper][blocks][2][block][bid]' => 'user_delta_new',
  );
  $this
    ->drupalPost(NULL, $edit, $this
    ->getButton('wizard_next', array(
    'agent_name' => $agent->machine_name,
    'step' => 'variations',
  )));
  $this
    ->drupalGet('admin/structure/personalize/manage/' . $agent->machine_name . '/variations');

  // Should still be on the variations page only now there should be a
  // warning message.
  $this
    ->assertText($error_heading);
  $this
    ->assertText($error_message);

  // Remove the extra variation.
  $option_sets = personalize_option_set_load_by_agent($agent->machine_name);
  $second_os = end($option_sets);
  $edit = array(
    'variations[editing][option_sets][option_set_' . $second_os->osid . '][content][pblock_wrapper][blocks][2][block][bid]' => '',
  );
  $this
    ->drupalPost(NULL, $edit, $this
    ->getButton('wizard_save'));

  // Verify that the error message is gone.
  $this
    ->assertNoText($error_heading);
  $this
    ->assertNoText($error_message);
}