From 60f6fe13b3b6066ecf2ecf0b3e44d692e854e555 Mon Sep 17 00:00:00 2001 From: inc2734 Date: Wed, 7 Feb 2024 11:07:50 +0900 Subject: [PATCH] Add tests #163 --- .phpcs.xml.dist | 1 - tests/test-control.php | 165 +++++++++++++++++++++++++++++++++ tests/test-custom-mail-tag.php | 18 ++-- tests/test-mailer-headers.php | 108 +++++++++++---------- 4 files changed, 228 insertions(+), 64 deletions(-) create mode 100644 tests/test-control.php diff --git a/.phpcs.xml.dist b/.phpcs.xml.dist index e2be169..9e451aa 100644 --- a/.phpcs.xml.dist +++ b/.phpcs.xml.dist @@ -52,7 +52,6 @@ /node_modules/* /.export/* /dist/* - /tests/* diff --git a/tests/test-control.php b/tests/test-control.php new file mode 100644 index 0000000..ee63d1c --- /dev/null +++ b/tests/test-control.php @@ -0,0 +1,165 @@ +factory->post->create( + array( + 'post_type' => 'snow-monkey-forms', + 'post_content' => ' + + + + +', + ) + ); + } + + public function tear_down() { + parent::tear_down(); + _delete_all_data(); + } + + /** + * @test + */ + public function should_set_default_value() { + add_filter( + 'snow_monkey_forms/control/attributes', + function( $attributes ) { + if ( isset( $attributes['name'] ) && 'text' === $attributes['name'] ) { + $attributes['value'] = 'foo'; + } + return $attributes; + } + ); + + $form_id = $this->_create_form(); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $validator = new Validator( $responser, $setting ); + $controller = Dispatcher::dispatch( 'input', $responser, $setting, $validator ); + + $this->assertTrue( false !== strpos( json_decode( $controller->send(), true )['controls']['text'], 'value="foo"' ) ); + } + + /** + * @test + */ + public function should_not_be_set_default_value() { + add_filter( + 'snow_monkey_forms/control/attributes', + function( $attributes ) { + if ( isset( $attributes['name'] ) && 'text' === $attributes['name'] ) { + $attributes['value'] = 'foo'; + } + return $attributes; + } + ); + + $form_id = $this->_create_form(); + $responser = new Responser( array( 'text' => 'bar' ) ); + $setting = DataStore::get( $form_id ); + $validator = new Validator( $responser, $setting ); + $controller = Dispatcher::dispatch( 'confirm', $responser, $setting, $validator ); + + // When data is posted (when the Responder has the data), it is used. + $this->assertTrue( false !== strpos( json_decode( $controller->send(), true )['controls']['text'], 'value="bar"' ) ); + } + + /** + * @test + */ + public function set_selectbox_options() { + add_filter( + 'snow_monkey_forms/select/options', + function( $options, $name ) { + if ( 'select' === $name ) { + return array( + 'custom1' => 'custom1', + 'custom2' => 'custom2', + 'custom3' => 'custom3', + ); + } + return $options; + }, + 10, + 2 + ); + + $form_id = $this->_create_form(); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $validator = new Validator( $responser, $setting ); + $controller = Dispatcher::dispatch( 'input', $responser, $setting, $validator ); + + $this->assertTrue( false !== strpos( json_decode( $controller->send(), true )['controls']['select'], 'value="custom1"' ) ); + $this->assertTrue( false === strpos( json_decode( $controller->send(), true )['controls']['select'], 'value="value1"' ) ); + } + + /** + * @test + */ + public function set_checkboxes_options() { + add_filter( + 'snow_monkey_forms/checkboxes/options', + function( $options, $name ) { + if ( 'checkboxes' === $name ) { + return array( + 'custom1' => 'custom1', + 'custom2' => 'custom2', + 'custom3' => 'custom3', + ); + } + return $options; + }, + 10, + 2 + ); + + $form_id = $this->_create_form(); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $validator = new Validator( $responser, $setting ); + $controller = Dispatcher::dispatch( 'input', $responser, $setting, $validator ); + + $this->assertTrue( false !== strpos( json_decode( $controller->send(), true )['controls']['checkboxes'], 'value="custom1"' ) ); + $this->assertTrue( false === strpos( json_decode( $controller->send(), true )['controls']['checkboxes'], 'value="value1"' ) ); + } + + /** + * @test + */ + public function set_radio_buttons_options() { + add_filter( + 'snow_monkey_forms/radio_buttons/options', + function( $options, $name ) { + if ( 'radio-buttons' === $name ) { + return array( + 'custom1' => 'custom1', + 'custom2' => 'custom2', + 'custom3' => 'custom3', + ); + } + return $options; + }, + 10, + 2 + ); + + $form_id = $this->_create_form(); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $validator = new Validator( $responser, $setting ); + $controller = Dispatcher::dispatch( 'input', $responser, $setting, $validator ); + + $this->assertTrue( false !== strpos( json_decode( $controller->send(), true )['controls']['radio-buttons'], 'value="custom1"' ) ); + $this->assertTrue( false === strpos( json_decode( $controller->send(), true )['controls']['radio-buttons'], 'value="value1"' ) ); + } +} diff --git a/tests/test-custom-mail-tag.php b/tests/test-custom-mail-tag.php index 6918c14..09dfa7a 100644 --- a/tests/test-custom-mail-tag.php +++ b/tests/test-custom-mail-tag.php @@ -1,10 +1,14 @@ factory->post->create( array( - 'post_type' => 'snow-monkey-form', + 'post_type' => 'snow-monkey-forms', ) ); } @@ -33,9 +37,9 @@ function( $value, $name ) use ( $expected ) { ); $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting( $form_id ); - $mail_parser = new \Snow_Monkey\Plugin\Forms\App\Model\MailParser( $responser, $setting ); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mail_parser = new MailParser( $responser, $setting ); $this->assertEquals( $expected, $mail_parser->parse( '{test}' ) ); } @@ -45,9 +49,9 @@ function( $value, $name ) use ( $expected ) { */ public function no_exist_custom_mail_tag() { $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting( $form_id ); - $mail_parser = new \Snow_Monkey\Plugin\Forms\App\Model\MailParser( $responser, $setting ); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mail_parser = new MailParser( $responser, $setting ); $this->assertEquals( '', $mail_parser->parse( '{test}' ) ); } diff --git a/tests/test-mailer-headers.php b/tests/test-mailer-headers.php index 1dec0ff..336a94e 100644 --- a/tests/test-mailer-headers.php +++ b/tests/test-mailer-headers.php @@ -1,11 +1,16 @@ factory->post->create( array( - 'post_type' => 'snow-monkey-form', + 'post_type' => 'snow-monkey-forms', ) ); } @@ -15,126 +20,117 @@ public function tear_down() { _delete_all_data(); } - public function test_administrator_mailer_default_headers() - { - $expected = []; - + public function test_administrator_mailer_default_headers() { + $expected = array(); $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting($form_id); - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\AdministratorMailer($responser, $setting); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mailer = new AdministratorMailer( $responser, $setting ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } - public function test_add_headers_to_administrator_mailer() - { - $expected = [ + public function test_add_headers_to_administrator_mailer() { + $expected = array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); add_filter( 'snow_monkey_forms/administrator_mailer/headers', - function ($headers) { - return [ + function ( $headers ) { + return array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); }, 10, 1 ); $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting($form_id); - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\AdministratorMailer($responser, $setting); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mailer = new AdministratorMailer( $responser, $setting ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } - public function test_auto_reply_mailer_default_headers() - { - $expected = []; - + public function test_auto_reply_mailer_default_headers() { + $expected = array(); $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting($form_id); - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\AutoReplyMailer($responser, $setting); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mailer = new AutoReplyMailer( $responser, $setting ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } - public function test_add_headers_to_auto_reply_mailer() - { - $expected = [ + public function test_add_headers_to_auto_reply_mailer() { + $expected = array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); add_filter( 'snow_monkey_forms/auto_reply_mailer/headers', - function ($headers) { - return [ + function ( $headers ) { + return array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); }, 10, 1 ); $form_id = $this->_create_form(); - $responser = new \Snow_Monkey\Plugin\Forms\App\Model\Responser(); - $setting = new \Snow_Monkey\Plugin\Forms\App\Model\Setting($form_id); - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\AutoReplyMailer($responser, $setting); + $responser = new Responser(); + $setting = DataStore::get( $form_id ); + $mailer = new AutoReplyMailer( $responser, $setting ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } - public function test_default_headers() - { - $expected = []; - - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\Mailer([]); + public function test_default_headers() { + $expected = array(); + $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\Mailer( array() ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } - public function test_add_headers() - { - $expected = [ + public function test_add_headers() { + $expected = array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); add_filter( 'snow_monkey_forms/mailer/headers', - function ($headers) { - return [ + function ( $headers ) { + return array( 'Cc: cc_test_1@example.com', 'Cc: cc_test_2@example.com', 'Bcc: bcc_test_1@example.com', 'Bcc: bcc_test_2@example.com', - ]; + ); }, 10, 1 ); - $mailer = new \Snow_Monkey\Plugin\Forms\App\Model\Mailer([]); + $mailer = new Mailer( array() ); - $this->assertSame($expected, $mailer->_get_headers()); + $this->assertSame( $expected, $mailer->_get_headers() ); } }