diff --git a/tests/tests/class-plugin-functions.php b/tests/tests/class-plugin-functions.php index e4cf636062a5b48f40afc9f8dfb55c96b19f73ec..506ddc7f537401501a497d71d571ac7e565c2a6b 100644 --- a/tests/tests/class-plugin-functions.php +++ b/tests/tests/class-plugin-functions.php @@ -49,18 +49,34 @@ class Plugin_Functions extends WP_UnitTestCase { /** * Test whitelisted command validation + * + * @dataProvider whitelisted_command_provider */ - function test_whitelist_using_validate_command() { - $this->assertTrue( is_string( WP_CLI_Cron_Control_Offload\validate_command( 'wp post list' ) ) ); - $this->assertTrue( is_string( WP_CLI_Cron_Control_Offload\validate_command( 'post list' ) ) ); + function test_whitelist_using_validate_command( $command ) { + $this->assertTrue( is_string( WP_CLI_Cron_Control_Offload\validate_command( $command ) ) ); + } + + function whitelisted_command_provider() { + return array( + array( 'wp post list' ), + array( 'post list' ), + ); } /** * Test blacklisted command validation + * + * @dataProvider blacklisted_command_provider */ - function test_blacklist_using_validate_command() { - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'wp cli info' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'cli info' ) ) ); + function test_blacklist_using_validate_command( $command ) { + $this->assertWPError( WP_CLI_Cron_Control_Offload\validate_command( $command ) ); + } + + function blacklisted_command_provider() { + return array( + array( 'wp cli info' ), + array( 'cli info' ), + ); } /** @@ -71,36 +87,47 @@ class Plugin_Functions extends WP_UnitTestCase { $this->assertTrue( is_int( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'wp post list' ) ) ); // Should be blocked as a duplicate, thanks to Core's 10-minute lookahead. - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'wp post list' ) ) ); + $this->assertWPError( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'wp post list' ) ); // Should also fail as normalization makes it a duplicate. - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'post list' ) ) ); + $this->assertWPError( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'post list' ) ); } /** * Test scheduling several of the same blocked event + * + * @dataProvider blocked_events_provider */ - function test_blocked_event_scheduling() { - // Should fail, is a blocked event. - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'wp cli info' ) ) ); - - // Should fail as a blocked event, would otherwise fail as a duplicate. - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'wp cli info' ) ) ); + function test_blocked_event_scheduling( $command ) { + $this->assertWPError( WP_CLI_Cron_Control_Offload\schedule_cli_command( $command ) ); + } - // Should also fail as a blocked event, though normalization would also block it as a duplicate. - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\schedule_cli_command( 'cli info' ) ) ); + function blocked_events_provider() { + return array( + array( 'wp cli info' ), // Should fail, is a blocked event. + array( 'wp cli info' ), // Should fail as a blocked event, would otherwise fail as a duplicate. + array( 'cli info'), // Should also fail as a blocked event, though normalization would also block it as a duplicate. + ); } /** * Test each blocked bash operator + * + * @dataProvider invalid_bash_operators_provider */ - function test_for_invalid_bash_operators() { - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list & date' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list | date' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list > /tmp/nope' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list 2> /tmp/nope' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list 1>&2 /tmp/nope' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list 2>&1 /tmp/nope' ) ) ); - $this->assertTrue( is_wp_error( WP_CLI_Cron_Control_Offload\validate_command( 'post list &> /tmp/nope' ) ) ); + function test_for_invalid_bash_operators( $command ) { + $this->assertWPError( WP_CLI_Cron_Control_Offload\validate_command( $command ) ); + } + + function invalid_bash_operators_provider() { + return array( + array( 'post list & date' ), + array( 'post list | date' ), + array( 'post list > /tmp/nope' ), + array( 'post list 2> /tmp/nope' ), + array( 'post list 1>&2 /tmp/nope' ), + array( 'post list 2>&1 /tmp/nope' ), + array( 'post list &> /tmp/nope' ), + ); } }