function AcquiaLiftWebTestTarget::testAudienceChanges in Acquia Lift Connector 7.2
File
- tests/acquia_lift.test, line 2804
- Integration tests for Acquia Lift module.
Class
- AcquiaLiftWebTestTarget
Code
function testAudienceChanges() {
module_load_include('inc', 'acquia_lift', 'acquia_lift.admin');
$agent = $this
->createTargetingAgent();
$parent_option_set = $this
->createPersonalizedBlock(0, $agent, 3);
$option_ids = array();
foreach ($parent_option_set->options as $option) {
$option_ids[] = $option['option_id'];
}
$this
->resetAll();
$first_audience = personalize_generate_machine_name($this
->randomName(), NULL, '-');
$this
->createTargetAudience($parent_option_set, $first_audience);
$second_audience = personalize_generate_machine_name($this
->randomName(), NULL, '-');
$this
->createTargetAudience($parent_option_set, $second_audience);
$targeting = array(
$first_audience => array(
$option_ids[1],
$option_ids[2],
),
$second_audience => array(
$option_ids[0],
),
);
acquia_lift_save_targeting_structure($agent, $targeting);
AcquiaLiftAPI::setTestInstance();
acquia_lift_implement_targeting($agent);
$this
->resetAll();
$os = acquia_lift_get_option_set_for_targeting($agent->machine_name);
$this
->assertEqual(3, count(array_keys($os->targeting)));
$this
->assertTrue(isset($os->targeting[$first_audience]));
$this
->assertTrue(isset($os->targeting[$first_audience]['osid']));
$this
->assertFalse(isset($os->targeting[$first_audience]['option_id']));
$this
->assertTrue(isset($os->targeting[$second_audience]));
$this
->assertFalse(isset($os->targeting[$second_audience]['osid']));
$this
->assertTrue(isset($os->targeting[$second_audience]['option_id']));
$targeting2 = array(
$first_audience => array(
$option_ids[0],
),
$second_audience => array(
$option_ids[1],
$option_ids[2],
),
);
acquia_lift_save_targeting_structure($agent, $targeting2);
AcquiaLiftAPI::setTestInstance();
acquia_lift_implement_targeting($agent);
$this
->resetAll();
$os = acquia_lift_get_option_set_for_targeting($agent->machine_name);
$this
->assertEqual(3, count(array_keys($os->targeting)));
$this
->assertFalse(isset($os->targeting[$first_audience]));
$new_first_audience = $first_audience . '-2';
$this
->assertTrue(isset($os->targeting[$new_first_audience]));
$this
->assertFalse(isset($os->targeting[$new_first_audience]['osid']));
$this
->assertTrue(isset($os->targeting[$new_first_audience]['option_id']));
$this
->assertEqual('option-1', $os->targeting[$new_first_audience]['option_id']);
$this
->assertFalse(isset($os->targeting[$second_audience]));
$new_second_audience = $second_audience . '-2';
$this
->assertTrue(isset($os->targeting[$new_second_audience]));
$this
->assertTrue(isset($os->targeting[$new_second_audience]['osid']));
$this
->assertFalse(isset($os->targeting[$new_second_audience]['option_id']));
$retired = acquia_lift_get_retired_tests($agent->machine_name);
$this
->assertEqual(1, count($retired));
$this
->assertEqual($first_audience, $retired[0]->data['lift_audience']);
$targeting3 = array(
$new_first_audience => array(
$option_ids[1],
),
$new_second_audience => array(
$option_ids[1],
$option_ids[2],
),
);
acquia_lift_save_targeting_structure($agent, $targeting3);
AcquiaLiftAPI::setTestInstance();
acquia_lift_implement_targeting($agent);
$this
->resetAll();
$os = acquia_lift_get_option_set_for_targeting($agent->machine_name);
$this
->assertEqual(3, count(array_keys($os->targeting)));
$this
->assertTrue(isset($os->targeting[$new_first_audience]));
$this
->assertFalse(isset($os->targeting[$new_first_audience]['osid']));
$this
->assertTrue(isset($os->targeting[$new_first_audience]['option_id']));
$this
->assertEqual('option-2', $os->targeting[$new_first_audience]['option_id']);
$this
->assertTrue(isset($os->targeting[$new_second_audience]));
$this
->assertTrue(isset($os->targeting[$new_second_audience]['osid']));
$this
->assertFalse(isset($os->targeting[$new_second_audience]['option_id']));
}