/**
  * Test that we can query for these tests properly
  *
  * @since 1.1.0
  *
  * @group group
  * @group destination
  * @group cookie
  * @group destination_cookie
  *
  * @covers \ingot\testing\tests\click\destination\init::get_destination_tests()
  */
 public function testQuery()
 {
     ingot_test_data_price::edd_tests();
     ingot_tests_data::make_groups();
     $x = 0;
     foreach (\ingot\testing\tests\click\destination\types::destination_types() as $type) {
         if ('hook' == $type) {
             continue;
         }
         $data = ingot_test_desitnation::create($type);
         $this->assertTrue(is_numeric($data['group_ID']));
         $the_groups[] = $data['group_ID'];
         $x++;
     }
     $groups = \ingot\testing\tests\click\destination\init::get_destination_tests();
     $this->assertSame($x, count($groups));
     $this->assertEquals($the_groups, $groups);
 }
示例#2
0
 /**
  * Prepare the meta in group config array
  *
  * @since 1.1.0
  *
  * @param array $group Group config
  *
  * @return array|\WP_Error
  */
 public static function prepare_meta(array $group)
 {
     if (!isset($group['meta']) || !is_array($group['meta'])) {
         $group['meta'] = [];
     }
     $meta = $group['meta'];
     if (!isset($meta['destination']) || !types::allowed_destination_type($meta['destination'])) {
         return new \WP_Error('ingot-invalid-destination-type', __('Invalid destination', 'ingot'), ['destination' => helpers::v('destination', $meta, false), 'meta' => $meta]);
     }
     if ('page' == $meta['destination']) {
         if (!isset($meta['page'])) {
             return new \WP_Error('ingot-invalid-destination-page', __('Page destination types need a page ID', 'ingot'));
         } else {
             $meta['page'] = absint($meta['page']);
         }
     }
     if ('hook' == $meta['destination']) {
         if (!isset($meta['hook'])) {
             return new \WP_Error('ingot-invalid-destination-hook', __('Hook destination types need a hook.', 'ingot'));
         } else {
             $meta['hook'] = trim($meta['hook']);
         }
     }
     if (!isset($meta['is_tagline'])) {
         $meta['is_tagline'] = false;
     }
     $meta['is_tagline'] = (bool) $meta['is_tagline'];
     $group['meta'] = $meta;
     return $group;
 }
示例#3
0
 /**
  * Data needed in app
  *
  * @since 0.2.0
  *
  * @access protected
  *
  * @return array
  */
 protected function vars()
 {
     return array('api' => esc_url_raw(util::get_url()), 'nonce' => wp_create_nonce('wp_rest'), 'partials' => esc_url_raw(INGOT_URL . 'assets/admin/partials/'), 'spinner_url' => trailingslashit(INGOT_URL) . 'assets/img/loading.gif', 'edd_active' => esc_attr(ingot_is_edd_active()), 'woo_active' => esc_attr(ingot_is_woo_active()), 'price_tests_enabled' => esc_attr(ingot_enable_price_testing()), 'click_type_options' => types::allowed_click_types(true), 'price_type_options' => types::allowed_price_types(), 'destinations' => \ingot\testing\tests\click\destination\types::destination_types(true, true), 'dev_mode' => INGOT_DEV_MODE);
 }
 /**
  * Cehck getting destination from meta
  *
  * @since 1.1.0
  *
  * @group group
  * @group destination
  *
  * @covers \ingot\testing\utility\destination::get_destination()
  */
 public function testGetDestination()
 {
     foreach (\ingot\testing\tests\click\destination\types::destination_types() as $type) {
         if ('hook' == $type) {
             continue;
         }
         $args = ingot_test_desitnation::group_args($type);
         $data = ingot_test_desitnation::create($type);
         $group = \ingot\testing\crud\group::read($data['group_ID']);
         $this->assertEquals($type, \ingot\testing\utility\destination::get_destination($group));
     }
 }
 /**
  * Track EDD sale conversions
  *
  * @since 1.1.0
  *
  * @group group
  * @group destination
  * @group edd
  *
  * @covers  \ingot\testing\tests\click\destination\hooks::edd_complete_purchase()
  * @covers  \ingot\testing\tests\click\destination\hooks::add_hooks()
  */
 public function testEDDConversionsSale()
 {
     if (ingot_is_edd_active()) {
         $this->assertTrue(\ingot\testing\tests\click\destination\types::allowed_destination_type('sale_edd'));
         $product = ingot_test_data_price::edd_create_simple_download(10);
         $data = ingot_test_desitnation::create('sale_edd');
         $group_id = $data['group_ID'];
         $this->assertTrue(is_numeric($group_id));
         $variants = $data['variants'];
         new \ingot\testing\bandit\content($group_id);
         $variant_id = \ingot\testing\tests\click\destination\init::get_test($group_id);
         $this->assertTrue(is_numeric($variant_id));
         \ingot\testing\tests\click\destination\init::set_tracking();
         $this->assertTrue(in_array(\ingot\testing\tests\click\destination\init::get_test($group_id), $variants));
         $variant_id = \ingot\testing\tests\click\destination\init::get_test($group_id);
         $hooks = new \ingot\testing\tests\click\destination\hooks([$group_id]);
         $payment_id = ingot_test_data_price::edd_create_simple_payment($product);
         edd_complete_purchase($payment_id, 'publish', 'pending');
         $group = \ingot\testing\crud\group::read($group_id);
         $totals = \ingot\testing\utility\group::get_total($group);
         $this->assertEquals(3, $totals['total']);
         $this->assertEquals(2, $totals['conversions']);
     }
 }
示例#6
0
 /**
  * Test that we can create all sorts of destination tests
  *
  * @since 1.1.0
  *
  * @group group
  * @group group_crud
  * @group destination
  *
  * @covers  \ingot\testing\crud\group::create()
  * @covers \ingot\testing\crud\crud::save()
  * @covers \ingot\testing\tests\click\destination\types::destination_types()
  * @covers \ingot\testing\utility\destination::prepare_meta()
  */
 public function testCreateDestinationTest()
 {
     foreach (\ingot\testing\tests\click\destination\types::destination_types() as $type) {
         if ('hook' == $type) {
             continue;
         }
         $args = ingot_test_desitnation::group_args($type);
         $id = \ingot\testing\crud\group::create($args);
         $this->assertTrue(is_numeric($id));
         $group = \ingot\testing\crud\group::read($id);
         $this->assertInternalType('array', $group);
         $this->assertTrue(\ingot\testing\crud\group::valid($group));
     }
 }