diff --git a/tests/tests/class-plugin-functions.php b/tests/tests/class-plugin-functions.php index 1df43c6b13d4de936a14eb07ba9af4e7134d275a..e4cf636062a5b48f40afc9f8dfb55c96b19f73ec 100644 --- a/tests/tests/class-plugin-functions.php +++ b/tests/tests/class-plugin-functions.php @@ -90,4 +90,17 @@ class Plugin_Functions extends WP_UnitTestCase { // 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' ) ) ); } + + /** + * Test each blocked bash operator + */ + 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' ) ) ); + } }