<?php use WPDesk\Plugin\Flow\Initialization\Simple\TrackerInstanceAsFilterTrait; class Test_Plugin_Start_Using_Flow extends WP_UnitTestCase { const TESTED_PLUGIN_CLASS = 'Flexible_Checkout_Fields_Plugin'; /** * Start prepared plugin. * * @param string $flow_file Path to file with flow to use. */ private function plugin_start_from_flow_file($flow_file) { $plugin_name = 'Flexible Checkout Fields'; $plugin_class_name = self::TESTED_PLUGIN_CLASS; $plugin_text_domain = 'flexible-checkout-fields'; $plugin_release_timestamp = date( 'Y-m-d' ); $plugin_version = '1.0'; $product_id = 'Flexible Checkout Fields'; $plugin_file = DEPENDENT_PLUGINS_DIR . '/flexible-checkout-fields/flexible-checkout-fields.php'; $plugin_dir = dirname( $plugin_file ); $requirements = [ 'php' => '5.6', 'wp' => '4.5', ]; defined('FLEXIBLE_CHECKOUT_FIELDS_VERSION') || define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version ); require_once $plugin_dir . '/inc/wpdesk-woo27-functions.php'; // we need to inject Prefixed names as library is not prefixed and plugin libraries also are not prefixed if (!class_exists(\FcfVendor\WPDesk_Plugin_Info::class)) { class_alias( \WPDesk_Plugin_Info::class, \FcfVendor\WPDesk_Plugin_Info::class ); class_alias( \WPDesk\PluginBuilder\Plugin\AbstractPlugin::class, \FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin::class ); } require $flow_file; do_action( 'plugins_loaded' ); } /** * Assert that prepared plugin is running. */ private function assert_plugin_started() { /** @var \WPDesk\PluginBuilder\Storage\StorageFactory $storage */ $storage = new \WPDesk\PluginBuilder\Storage\StorageFactory(); $storage = $storage->create_storage(); $plugin = $storage->get_from_storage(self::TESTED_PLUGIN_CLASS); $this->assertInstanceOf( self::TESTED_PLUGIN_CLASS, $plugin, 'Plugin works.' ); } public function test_plugin_paid_can_start() { remove_all_actions('wpdesk_tracker_instance'); $this->plugin_start_from_flow_file(__DIR__ . '/../../src/plugin-init-php52.php'); $this->assert_plugin_started(); } // disabled until new builder loaded into tested FCF plugin // public function test_plugin_free_can_start() { // remove_all_actions('wpdesk_tracker_instance'); // $this->plugin_start_from_flow_file(__DIR__ . '/../../src/plugin-init-php52-free.php'); // $this->assert_plugin_started(); // } }