示例#1
0
 /**
  * Register a conversion for a destination test
  *
  * @since 1.1.0
  *
  * @param int $group_id
  */
 public static function conversion($group_id)
 {
     $variant_id = cookie::get_cookie($group_id);
     if (is_numeric($variant_id)) {
         ingot_register_conversion($variant_id);
     }
 }
示例#2
0
 /**
  * Get variant ID, by group ID.
  *
  * If no variant chosen, makes selection
  *
  * @since 1.1.0
  *
  * @param int $group_id Group ID to get variant for
  *
  * @return int
  */
 public static function get_test($group_id)
 {
     if (!isset(self::$tests[$group_id])) {
         if (!cookie::get_cookie($group_id)) {
             $group = group::read($group_id);
             if (group::valid($group) && !empty($group['variants'])) {
                 $bandit = new content($group_id);
                 $variant = $bandit->choose();
                 if (is_a($variant, 'MaBandit\\Lever')) {
                     /** @var \MaBandit\Lever $variant */
                     $variant = $variant->getValue();
                 }
                 if (is_numeric($variant)) {
                     cookie::set_cookie($group_id, $variant);
                 }
             } else {
                 return false;
             }
         } else {
             $variant = cookie::get_cookie($group_id);
         }
         self::$tests[$group_id] = $variant;
     }
     return self::$tests[$group_id];
 }
 /**
  *
  *
  * @since 1.1.0
  *
  * @group group
  * @group destination
  * @group cookie
  * @group destination_cookie
  *
  * @covers \ingot\testing\tests\click\destination\init::get_test()
  * @covers \ingot\testing\tests\click\destination\init::set_tracking()
  * @covers \ingot\testing\tests\click\destination\cookie::get_cookie()
  */
 public function testCookieTracking()
 {
     $data = ingot_test_desitnation::create('page');
     $group_id = $data['group_ID'];
     $this->assertTrue(is_numeric($group_id));
     $group = \ingot\testing\crud\group::read($group_id);
     $this->assertInternalType('array', $group);
     $bandit = new \ingot\testing\bandit\content($group_id);
     $variant_id = $bandit->choose();
     $this->assertTrue(is_numeric($variant_id));
     \ingot\testing\tests\click\destination\init::set_tracking();
     \ingot\testing\tests\click\destination\init::get_test($group_id);
     $obj = new \ingot\testing\object\group($group_id);
     $levers = $obj->get_levers();
     $this->assertInternalType('array', $levers);
     $cookie_name = \ingot\testing\tests\click\destination\cookie::cookie_key($group_id);
     $variant_id = \ingot\testing\tests\click\destination\init::get_test($group_id);
     $this->assertTrue(is_numeric($variant_id));
     $_COOKIE[$cookie_name] = $variant_id;
     $this->assertEquals($variant_id, \ingot\testing\tests\click\destination\cookie::get_cookie($group_id));
     $obj = new \ingot\testing\object\group($group_id);
     $_levers = $obj->get_levers();
     for ($i = 0; $i <= 10; $i++) {
         \ingot\testing\tests\click\destination\init::set_tracking();
     }
     $obj = new \ingot\testing\object\group($group_id);
     $levers = $obj->get_levers();
     $this->assertEquals($levers, $_levers);
     $this->assertInternalType('array', $levers);
     $this->assertArrayHasKey($group_id, $levers);
     $this->assertArrayHasKey($variant_id, $levers[$group_id]);
     $lever = $levers[$variant_id];
     $this->assertInternalType('object', $lever);
     $this->assertEquals(0, $lever->getNumerator());
     $this->assertEquals(1, $lever->getDenominator());
 }