From 4dcfa691191292eed2e9df4be3bddf2c11ffeb46 Mon Sep 17 00:00:00 2001 From: Josh Pollock Date: Fri, 14 Dec 2018 18:13:17 -0500 Subject: [PATCH 1/3] #2830 test that container was setup --- tests/Integration/FunctionsTest.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/Integration/FunctionsTest.php b/tests/Integration/FunctionsTest.php index 5f70e5e15..bc8854a56 100644 --- a/tests/Integration/FunctionsTest.php +++ b/tests/Integration/FunctionsTest.php @@ -28,4 +28,14 @@ public function testContainerFunctionReturnsInstance(){ $this->assertInstanceOf(CalderaFormsV2::class,caldera_forms_get_v2_container() ); } -} \ No newline at end of file + + /** + * @since 1.8.0 + * + * @covers \caldera_forms_get_v2_container() + */ + public function testContainerGetsSetupOnFirstCall(){ + $container = caldera_forms_get_v2_container(); + $this->assertTrue( is_object( $container->getService( \calderawp\calderaforms\cf2\Services\QueueService::class))); + } +} From b92299637cc78db9039c61d801826384a8d3429a Mon Sep 17 00:00:00 2001 From: Josh Pollock Date: Fri, 14 Dec 2018 18:19:22 -0500 Subject: [PATCH 2/3] Add test for upgrade of file field type #2830 --- tests/Integration/FunctionsTest.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/Integration/FunctionsTest.php b/tests/Integration/FunctionsTest.php index bc8854a56..fe4d8bde4 100644 --- a/tests/Integration/FunctionsTest.php +++ b/tests/Integration/FunctionsTest.php @@ -38,4 +38,28 @@ public function testContainerGetsSetupOnFirstCall(){ $container = caldera_forms_get_v2_container(); $this->assertTrue( is_object( $container->getService( \calderawp\calderaforms\cf2\Services\QueueService::class))); } + + /** + * @since 1.8.0 + * + * @covers \caldera_forms_get_v2_container() + */ + public function testUpgradesAdvancedFileFields(){ + $id = 'fld1'; + $fieldConfig = [ + 'id' => $id, + 'slug' => 'roy', + 'type' => 'advanced_file', + 'conditions' => [ + 'type' => 'IS' + ] + ]; + $field = \Caldera_Forms_Field_Util::get_field($id,[ + 'fields' => [ + $id => $fieldConfig + ], + 'conditional_groups' => [] + ], true); + $this->assertSame(\calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType::getCf1Identifier(), $field['type'] ); + } } From cf5255867029c0acc61322891c2e2c43f23ccc0e Mon Sep 17 00:00:00 2001 From: Josh Pollock Date: Fri, 14 Dec 2018 18:24:44 -0500 Subject: [PATCH 3/3] Move init functions for CF2 to PHP 5.2 sage location #2830 --- caldera-core.php | 50 ++++++---------------------------------- cf2/functions.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 44 deletions(-) diff --git a/caldera-core.php b/caldera-core.php index 9b63b9eef..3f5d9cbac 100755 --- a/caldera-core.php +++ b/caldera-core.php @@ -122,6 +122,13 @@ function caldera_forms_load() */ do_action('caldera_forms_includes_complete'); + /** + * Start cf2 system + * + * @since 1.8.0 + */ + add_filter('caldera_forms_render_get_field', 'caldera_forms_v2_field_upgrades', 1, 2); + add_action('caldera_forms_v2_init', 'caldera_forms_v2_container_setup' ); caldera_forms_get_v2_container(); } @@ -155,50 +162,7 @@ function caldera_forms_fallback_shortcode() } -/** - * Switch advanced file fields to new type - * - * @since 1.8.0 - * - */ -add_filter('caldera_forms_render_get_field', function ($field, $form) { - if ( 'advanced_file' === Caldera_Forms_Field_Util::get_type($field, $form) ) { - $field[ 'type' ] = \calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType::getCf1Identifier(); - } - return $field; -}, 1, 2); - -/** - * Setup Cf2 con - * - * @since 1.8.0 - * - */ -add_action('caldera_forms_v2_init', function (\calderawp\calderaforms\cf2\CalderaFormsV2Contract $container) { - - $container - //Set paths - ->setCoreDir(CFCORE_PATH) - ->setCoreUrl(CFCORE_URL) - //Setup field types - ->getFieldTypeFactory() - ->add(new \calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType()); - - //Add hooks - $container->getHooks()->subscribe(); - - //Register other services - $container - ->registerService(new \calderawp\calderaforms\cf2\Services\QueueService(), true) - ->registerService(new \calderawp\calderaforms\cf2\Services\QueueSchedulerService(), true); - - //Run the scheduler with CRON - /** @var \calderawp\calderaforms\cf2\Jobs\Scheduler $scheduler */ - $scheduler = $container->getService(\calderawp\calderaforms\cf2\Services\QueueSchedulerService::class); - $running = $scheduler->runWithCron(); - -}); diff --git a/cf2/functions.php b/cf2/functions.php index cb70d9a3d..bead7e39f 100644 --- a/cf2/functions.php +++ b/cf2/functions.php @@ -1,6 +1,10 @@ setCoreDir(CFCORE_PATH) + ->setCoreUrl(CFCORE_URL) + //Setup field types + ->getFieldTypeFactory() + ->add(new \calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType()); + + //Add hooks + $container->getHooks()->subscribe(); + + //Register other services + $container + ->registerService(new \calderawp\calderaforms\cf2\Services\QueueService(), true) + ->registerService(new \calderawp\calderaforms\cf2\Services\QueueSchedulerService(), true); + + //Run the scheduler with CRON + /** @var \calderawp\calderaforms\cf2\Jobs\Scheduler $scheduler */ + $scheduler = $container->getService(\calderawp\calderaforms\cf2\Services\QueueSchedulerService::class); + $running = $scheduler->runWithCron(); +} + +/** + * Convert Advanced File v1 fields to v2 + * + * @since 1.8.0 + * + * @uses "caldera_forms_render_get_field" filter + * + * @param array $field + * @param array $form + * + * @return array + */ +function caldera_forms_v2_field_upgrades($field, $form){ + if ( 'advanced_file' === Caldera_Forms_Field_Util::get_type($field, $form) ) { + $field[ 'type' ] = \calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType::getCf1Identifier(); + } + return $field; +}