1069 lines
33 KiB
Gherkin
1069 lines
33 KiB
Gherkin
Feature: Get help about WP-CLI commands
|
|
|
|
Scenario: Help for internal commands
|
|
Given an empty directory
|
|
|
|
When I run `wp help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Run 'wp help <command>' to get more information on a specific command.
|
|
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp help core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp help core download`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core download
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp help help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp help
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp help help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp post list --post_type=post --posts_per_page=5 --help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp post list
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp post list --post_type=post --posts_per_page=5 --help --prompt`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp post list
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
Scenario: Hide Global parameters when requested
|
|
Given an empty directory
|
|
|
|
When I run `wp help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
|
|
And STDOUT should contain:
|
|
"""
|
|
--path
|
|
"""
|
|
|
|
And STDOUT should contain:
|
|
"""
|
|
Path to the WordPress files.
|
|
"""
|
|
|
|
When I run `WP_CLI_SUPPRESS_GLOBAL_PARAMS=true wp help`
|
|
Then STDOUT should not contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
|
|
And STDOUT should not contain:
|
|
"""
|
|
--path
|
|
"""
|
|
And STDOUT should not contain:
|
|
"""
|
|
Path to the WordPress files.
|
|
"""
|
|
|
|
When I run `WP_CLI_SUPPRESS_GLOBAL_PARAMS=false wp help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
|
|
And STDOUT should contain:
|
|
"""
|
|
--path
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
Path to the WordPress files.
|
|
"""
|
|
|
|
# Prior to WP 4.3 widgets & others used PHP 4 style constructors and prior to WP 3.9 wpdb used the mysql extension which can all lead (depending on PHP version) to PHP Deprecated notices.
|
|
@require-wp-4.3
|
|
Scenario: Help for internal commands with WP
|
|
Given a WP installation
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Run 'wp help <command>' to get more information on a specific command.
|
|
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help core download`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core download
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp help
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
|
|
@require-php-5.6
|
|
Scenario: Help when WordPress is downloaded but not installed
|
|
Given an empty directory
|
|
|
|
When I run `wp core download`
|
|
And I run `wp help config create`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp config create
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp config create {CORE_CONFIG_SETTINGS}`
|
|
And I run `wp help core install`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core install
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
When I run `wp help core is-installed`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core is-installed
|
|
"""
|
|
And STDERR should be empty
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp core
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help config`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp config
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help db`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp db
|
|
"""
|
|
|
|
When I try `wp help non-existent-command`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error establishing a database connection
|
|
"""
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Help for nonexistent commands
|
|
Given a WP installation
|
|
|
|
When I try `wp help non-existent-command`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help non-existent-command --path=/nowhere`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'non-existent-command' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help non-existent-command non-existent-subcommand`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help non-existent-command non-existent-subcommand --path=/nowhere`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'non-existent-command non-existent-subcommand' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Help for nonexistent commands without a WP installation
|
|
Given an empty directory
|
|
|
|
When I try `wp help non-existent-command`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'non-existent-command' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-command' is not a registered wp command. See 'wp help' for available commands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Help for specially treated commands with nonexistent subcommands
|
|
Given a WP installation
|
|
|
|
When I try `wp help config non-existent-subcommand`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'config'. See 'wp help config' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help config non-existent-subcommand --path=/nowhere`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'config non-existent-subcommand' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'config'. See 'wp help config' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help core non-existent-subcommand`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'core'. See 'wp help core' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help core non-existent-subcommand --path=/nowhere`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'core non-existent-subcommand' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'core'. See 'wp help core' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help db non-existent-subcommand`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'db'. See 'wp help db' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help db non-existent-subcommand --path=/nowhere`
|
|
Then the return code should be 1
|
|
And STDERR should contain:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'db non-existent-subcommand' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'non-existent-subcommand' is not a registered subcommand of 'db'. See 'wp help db' for available subcommands.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Suggestions for command typos in help
|
|
Given an empty directory
|
|
|
|
When I try `wp help confi`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'confi' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'confi' is not a registered wp command. See 'wp help' for available commands.
|
|
Did you mean 'config'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help cor`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'cor' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'cor' is not a registered wp command. See 'wp help' for available commands.
|
|
Did you mean 'core'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help d`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'd' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'd' is not a registered wp command. See 'wp help' for available commands.
|
|
Did you mean 'db'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help packag`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'packag' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'packag' is not a registered wp command. See 'wp help' for available commands.
|
|
Did you mean 'package'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Suggestions for subcommand typos in help of specially treated commands
|
|
Given an empty directory
|
|
|
|
When I try `wp help config creat`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'config creat' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'creat' is not a registered subcommand of 'config'. See 'wp help config' for available subcommands.
|
|
Did you mean 'create'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help core versio`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'core versio' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'versio' is not a registered subcommand of 'core'. See 'wp help core' for available subcommands.
|
|
Did you mean 'version'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help db chec`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Warning: No WordPress installation found. If the command 'db chec' is in a plugin or theme, pass --path=`path/to/wordpress`.
|
|
Error: 'chec' is not a registered subcommand of 'db'. See 'wp help db' for available subcommands.
|
|
Did you mean 'check'?
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: No WordPress installation warning or suggestions for disabled commands
|
|
Given an empty directory
|
|
And a wp-cli.yml file:
|
|
"""
|
|
disabled_commands:
|
|
db
|
|
"""
|
|
|
|
When I try `wp help db`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Error: The 'db' command has been disabled from the config file.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
When I try `wp help db chec`
|
|
Then the return code should be 1
|
|
And STDERR should be:
|
|
"""
|
|
Error: The 'db' command has been disabled from the config file.
|
|
"""
|
|
And STDOUT should be empty
|
|
|
|
Scenario: Help for third-party commands
|
|
Given a WP installation
|
|
And a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Help
|
|
|
|
class Test_Help extends WP_CLI_Command {
|
|
/**
|
|
* A dummy command.
|
|
*/
|
|
function __invoke() {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'test-help', 'Test_Help' );
|
|
"""
|
|
And I run `wp plugin activate test-cli`
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
A dummy command.
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help test-help`
|
|
Then STDOUT should contain:
|
|
"""
|
|
wp test-help
|
|
"""
|
|
|
|
Scenario: Help for incomplete commands
|
|
Given an empty directory
|
|
|
|
When I run `wp core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
usage: wp core
|
|
"""
|
|
|
|
Scenario: Help for commands with magic methods
|
|
Given a WP installation
|
|
And a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Help
|
|
|
|
class Test_Magic_Methods extends WP_CLI_Command {
|
|
/**
|
|
* A dummy command.
|
|
*
|
|
* @subcommand my-command
|
|
*/
|
|
function my_command() {}
|
|
|
|
/**
|
|
* Magic methods should not appear as commands
|
|
*/
|
|
function __construct() {}
|
|
function __destruct() {}
|
|
function __call( $name, $arguments ) {}
|
|
function __get( $key ) {}
|
|
function __set( $key, $value ) {}
|
|
function __isset( $key ) {}
|
|
function __unset( $key ) {}
|
|
function __sleep() {}
|
|
function __wakeup() {}
|
|
function __toString() {}
|
|
static function __set_state( $properties ) {}
|
|
function __clone() {}
|
|
function __debugInfo() {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'test-magic-methods', 'Test_Magic_Methods' );
|
|
"""
|
|
And I run `wp plugin activate test-cli`
|
|
|
|
When I run `wp test-magic-methods`
|
|
Then STDOUT should contain:
|
|
"""
|
|
usage: wp test-magic-methods my-command
|
|
"""
|
|
And STDOUT should not contain:
|
|
"""
|
|
__destruct
|
|
"""
|
|
|
|
Scenario: Help for commands loaded into existing namespaces
|
|
Given a WP installation
|
|
And a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Extra Site Command
|
|
|
|
class Test_CLI_Extra_Site_Command extends WP_CLI_Command {
|
|
|
|
/**
|
|
* A dummy command.
|
|
*
|
|
* @subcommand my-command
|
|
*/
|
|
function my_command() {}
|
|
|
|
}
|
|
|
|
WP_CLI::add_command( 'site test-extra', 'Test_CLI_Extra_Site_Command' );
|
|
"""
|
|
And I run `wp plugin activate test-cli`
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help site`
|
|
Then STDOUT should contain:
|
|
"""
|
|
test-extra
|
|
"""
|
|
|
|
Given a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Extra Command
|
|
|
|
class Test_CLI_Extra_Command extends WP_CLI_Command {
|
|
|
|
/**
|
|
* A dummy command.
|
|
*
|
|
* @subcommand my-command
|
|
*/
|
|
function my_command() {}
|
|
|
|
}
|
|
|
|
WP_CLI::add_command( 'config test-extra-config', 'Test_CLI_Extra_Command' );
|
|
WP_CLI::add_command( 'core test-extra-core', 'Test_CLI_Extra_Command' );
|
|
WP_CLI::add_command( 'db test-extra-db', 'Test_CLI_Extra_Command' );
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help config`
|
|
Then STDOUT should contain:
|
|
"""
|
|
test-extra-config
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
test-extra-core
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help db`
|
|
Then STDOUT should contain:
|
|
"""
|
|
test-extra-db
|
|
"""
|
|
|
|
Scenario: Help renders global parameters correctly
|
|
Given a WP installation
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help core`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
And STDOUT should not contain:
|
|
"""
|
|
## GLOBAL PARAMETERS
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help option get`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
And STDOUT should not contain:
|
|
"""
|
|
## GLOBAL PARAMETERS
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `wp help option`
|
|
Then STDOUT should contain:
|
|
"""
|
|
GLOBAL PARAMETERS
|
|
"""
|
|
And STDOUT should not contain:
|
|
"""
|
|
## GLOBAL PARAMETERS
|
|
"""
|
|
|
|
Scenario: Display alias in man page
|
|
Given a WP installation
|
|
|
|
When I run `wp help plugin update`
|
|
Then STDOUT should contain:
|
|
"""
|
|
ALIAS
|
|
|
|
upgrade
|
|
"""
|
|
|
|
When I run `wp help plugin install`
|
|
Then STDOUT should not contain:
|
|
"""
|
|
ALIAS
|
|
"""
|
|
|
|
Scenario: Help for commands should wordwrap well
|
|
Given a WP installation
|
|
And a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Help
|
|
|
|
class Test_Wordwrap extends WP_CLI_Command {
|
|
/**
|
|
* 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345678
|
|
*
|
|
* ## OPTIONS
|
|
*
|
|
* [--skip-delete]
|
|
* : Skip deletion of the original thumbnails. If your thumbnails are linked from sources outside your control, it's likely best to leave them around. Defaults to false.
|
|
*
|
|
* [--eighty=<four initial spaces>]
|
|
* : 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456
|
|
*
|
|
* [--eighty-one=<four initial spaces>]
|
|
* : 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234567
|
|
*
|
|
* [--forty=<four initial spaces>]
|
|
* : 123456789 123456789 123456789 123456
|
|
*
|
|
* [--forty-one=<four initial spaces>]
|
|
* : 123456789 123456789 123456789 1234567
|
|
*
|
|
* ## EXAMPLES
|
|
*
|
|
* # Re-generate only the thumbnails of "large" image size for all images.
|
|
* $ wp media regenerate --image_size=large
|
|
* Do you really want to regenerate the "large" image size for all images? [y/n] y
|
|
* Found 3 images to regenerate.
|
|
* 1/3 Regenerated "large" thumbnail for "Yoogest Image Ever, Really" (ID 9999).
|
|
* 2/3 No "large" thumbnail regeneration needed for "Snowflake" (ID 9998).
|
|
* 3/3 Regenerated "large" thumbnail for "Even Yooger than the Yoogest Image Ever, Really" (ID 9997).
|
|
* Success: Regenerated 3 of 3 images.
|
|
*
|
|
* # 6 initial spaces + 74 = 80; 6 + 75 = 81
|
|
* # 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234
|
|
* # 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345
|
|
*
|
|
* # 6 initial spaces + 34 = 40; 6 + 35 = 41
|
|
* # 123456789 123456789 123456789 1234
|
|
* # 123456789 123456789 123456789 12345
|
|
*
|
|
*/
|
|
function my_command() {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'test-wordwrap', 'Test_Wordwrap' );
|
|
"""
|
|
And I run `wp plugin activate test-cli`
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `COLUMNS=80 wp help test-wordwrap my_command`
|
|
Then STDOUT should contain:
|
|
"""
|
|
123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345678
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--skip-delete]
|
|
Skip deletion of the original thumbnails. If your thumbnails are linked from
|
|
sources outside your control, it's likely best to leave them around.
|
|
Defaults to false.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--eighty=<four initial spaces>]
|
|
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--eighty-one=<four initial spaces>]
|
|
123456789 123456789 123456789 123456789 123456789 123456789 123456789
|
|
1234567
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
# Re-generate only the thumbnails of "large" image size for all images.
|
|
$ wp media regenerate --image_size=large
|
|
Do you really want to regenerate the "large" image size for all images?
|
|
[y/n] y
|
|
Found 3 images to regenerate.
|
|
1/3 Regenerated "large" thumbnail for "Yoogest Image Ever, Really" (ID
|
|
9999).
|
|
2/3 No "large" thumbnail regeneration needed for "Snowflake" (ID 9998).
|
|
3/3 Regenerated "large" thumbnail for "Even Yooger than the Yoogest Image
|
|
Ever, Really" (ID 9997).
|
|
Success: Regenerated 3 of 3 images.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
# 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234
|
|
# 123456789 123456789 123456789 123456789 123456789 123456789 123456789
|
|
12345
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
--url=<url>
|
|
Pretend request came from given URL. In multisite, this argument is how
|
|
the target site is specified.
|
|
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `COLUMNS=80 wp help test-wordwrap my_command | awk '{print length, $0}' | sort -nr | head -1 | cut -f1 -d" "`
|
|
Then STDOUT should be:
|
|
"""
|
|
80
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=40 wp help test-wordwrap my_command`
|
|
Then STDOUT should contain:
|
|
"""
|
|
123456789 123456789 123456789
|
|
123456789 123456789 123456789
|
|
123456789 12345678
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--skip-delete]
|
|
Skip deletion of the original
|
|
thumbnails. If your thumbnails are
|
|
linked from sources outside your
|
|
control, it's likely best to leave
|
|
them around. Defaults to false.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--forty=<four initial spaces>]
|
|
123456789 123456789 123456789 123456
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
[--forty-one=<four initial spaces>]
|
|
123456789 123456789 123456789
|
|
1234567
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
# Re-generate only the thumbnails of
|
|
"large" image size for all images.
|
|
$ wp media regenerate
|
|
--image_size=large
|
|
Do you really want to regenerate the
|
|
"large" image size for all images?
|
|
[y/n] y
|
|
Found 3 images to regenerate.
|
|
1/3 Regenerated "large" thumbnail
|
|
for "Yoogest Image Ever, Really" (ID
|
|
9999).
|
|
2/3 No "large" thumbnail
|
|
regeneration needed for "Snowflake"
|
|
(ID 9998).
|
|
3/3 Regenerated "large" thumbnail
|
|
for "Even Yooger than the Yoogest
|
|
Image Ever, Really" (ID 9997).
|
|
Success: Regenerated 3 of 3 images.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
# 123456789 123456789 123456789 1234
|
|
# 123456789 123456789 123456789
|
|
12345
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
--url=<url>
|
|
Pretend request came from given
|
|
URL. In multisite, this argument
|
|
is how the target site is
|
|
specified.
|
|
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=40 wp help test-wordwrap my_command | sed '/\-\-ssh/d' | awk '{print length, $0}' | sort -nr | head -1 | cut -f1 -d" "`
|
|
Then STDOUT should be:
|
|
"""
|
|
40
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=1000 wp help test-wordwrap my_command`
|
|
Then STDOUT should contain:
|
|
"""
|
|
[--skip-delete]
|
|
Skip deletion of the original thumbnails. If your thumbnails are linked from sources outside your control, it's likely best to leave them around. Defaults to false.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
# Re-generate only the thumbnails of "large" image size for all images.
|
|
$ wp media regenerate --image_size=large
|
|
Do you really want to regenerate the "large" image size for all images? [y/n] y
|
|
Found 3 images to regenerate.
|
|
1/3 Regenerated "large" thumbnail for "Yoogest Image Ever, Really" (ID 9999).
|
|
2/3 No "large" thumbnail regeneration needed for "Snowflake" (ID 9998).
|
|
3/3 Regenerated "large" thumbnail for "Even Yooger than the Yoogest Image Ever, Really" (ID 9997).
|
|
Success: Regenerated 3 of 3 images.
|
|
|
|
"""
|
|
And STDOUT should contain:
|
|
"""
|
|
--url=<url>
|
|
Pretend request came from given URL. In multisite, this argument is how the target site is specified.
|
|
|
|
"""
|
|
|
|
Scenario: Help for commands with subcommands should wordwrap well
|
|
Given a WP installation
|
|
And a wp-content/plugins/test-cli/command.php file:
|
|
"""
|
|
<?php
|
|
// Plugin Name: Test CLI Help
|
|
|
|
class Test_Wordwrap extends WP_CLI_Command {
|
|
/**
|
|
* Generate PHP code for registering a custom post type.
|
|
*
|
|
* @subcommand post-type
|
|
*
|
|
* @alias cpt
|
|
*/
|
|
public function post_type( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* Generate starter code for a theme based on _s.
|
|
*
|
|
* See the [Underscores website](http://underscores.me/) for more details.
|
|
*/
|
|
public function _s( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* Generate GitHub configuration files for your command.
|
|
*
|
|
* @when before_wp_load
|
|
* @subcommand package-github
|
|
*/
|
|
public function package_github( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* Generate files needed for writing Behat tests for your command.
|
|
*
|
|
* @when before_wp_load
|
|
* @subcommand package-tests
|
|
*/
|
|
public function package_tests( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* Generate files needed for running PHPUnit tests in a plugin.
|
|
*
|
|
* @subcommand plugin-tests
|
|
*/
|
|
public function plugin_tests( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* Generate files needed for running PHPUnit tests in a theme.
|
|
*
|
|
* @subcommand theme-tests
|
|
*/
|
|
public function theme_tests( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* 2 chars initial + 20 padded command + 58 these = 80 chars.
|
|
*
|
|
* @subcommand eighty
|
|
*/
|
|
public function eighty( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* 2 chars initial + 20 padded command + 59 these = 81 chars..
|
|
*
|
|
* @subcommand eighty-one
|
|
*/
|
|
public function eighty_one( $args, $assoc_args ) {}
|
|
|
|
/**
|
|
* A very long description a very longgggggggggg description a very longgggg description a very long description a very longgggggggggggggggg description a very long description a very long description a very long description a very longgg description.
|
|
*
|
|
* @subcommand very-long
|
|
*/
|
|
public function very_long( $args, $assoc_args ) {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'test-wordwrap', 'Test_Wordwrap' );
|
|
"""
|
|
And I run `wp plugin activate test-cli`
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=80 wp help test-wordwrap`
|
|
Then STDOUT should contain:
|
|
"""
|
|
SUBCOMMANDS
|
|
|
|
_s Generate starter code for a theme based on _s.
|
|
eighty 2 chars initial + 20 padded command + 58 these = 80 chars.
|
|
eighty-one 2 chars initial + 20 padded command + 59 these = 81
|
|
chars..
|
|
package-github Generate GitHub configuration files for your command.
|
|
package-tests Generate files needed for writing Behat tests for your
|
|
command.
|
|
plugin-tests Generate files needed for running PHPUnit tests in a
|
|
plugin.
|
|
post-type Generate PHP code for registering a custom post type.
|
|
theme-tests Generate files needed for running PHPUnit tests in a
|
|
theme.
|
|
very-long A very long description a very longgggggggggg description
|
|
a very longgggg description a very long description a very
|
|
longgggggggggggggggg description a very long description a
|
|
very long description a very long description a very
|
|
longgg description.
|
|
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=80 wp help test-wordwrap | awk '{print length, $0}' | sort -nr | head -1 | cut -f1 -d" "`
|
|
Then STDOUT should be:
|
|
"""
|
|
80
|
|
"""
|
|
|
|
Scenario: Long description for top-level command which has reference link display well
|
|
Given a WP installation
|
|
And a command.php file:
|
|
"""
|
|
<?php
|
|
|
|
if ( ! defined( 'WP_CLI' ) || ! WP_CLI ) {
|
|
return;
|
|
}
|
|
|
|
class WP_CLI_Foo_Bar_Command extends WP_CLI_Command {
|
|
/**
|
|
* A command that has a link in its long description.
|
|
*
|
|
* This is a [reference link](https://wordpress.org/).
|
|
* Also, there is a [second link](http://wp-cli.org/).
|
|
* They should be displayed nicely!
|
|
*
|
|
* @synopsis <constant-name>
|
|
*/
|
|
public function __invoke( $args, $assoc_args ) {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'reference-link', 'WP_CLI_Foo_Bar_Command' );
|
|
"""
|
|
And a wp-cli.yml file:
|
|
"""
|
|
require:
|
|
- command.php
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=80 wp help reference-link`
|
|
Then STDOUT should contain:
|
|
"""
|
|
This is a [reference link][1].
|
|
Also, there is a [second link][2].
|
|
They should be displayed nicely!
|
|
|
|
---
|
|
[1] https://wordpress.org/
|
|
[2] http://wp-cli.org/
|
|
"""
|
|
|
|
Scenario: Very long description for top-level command which has reference link display well
|
|
Given a WP installation
|
|
And a command.php file:
|
|
"""
|
|
<?php
|
|
|
|
if ( ! defined( 'WP_CLI' ) || ! WP_CLI ) {
|
|
return;
|
|
}
|
|
|
|
class WP_CLI_Foo_Bar_Command extends WP_CLI_Command {
|
|
/**
|
|
* A command that has a link in its long description.
|
|
*
|
|
* This is a [reference link](https://wordpress.org/). Also, there is a [second link](http://wp-cli.org/). They should be displayed nicely! Wow! This is a very, very long description.
|
|
*
|
|
* @synopsis <constant-name>
|
|
*/
|
|
public function __invoke( $args, $assoc_args ) {}
|
|
}
|
|
|
|
WP_CLI::add_command( 'reference-link', 'WP_CLI_Foo_Bar_Command' );
|
|
"""
|
|
And a wp-cli.yml file:
|
|
"""
|
|
require:
|
|
- command.php
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=80 wp help reference-link`
|
|
Then STDOUT should contain:
|
|
"""
|
|
This is a [reference link][1]. Also, there is a [second link][2]. They should
|
|
be displayed nicely! Wow! This is a very, very long description.
|
|
|
|
---
|
|
[1] https://wordpress.org/
|
|
[2] http://wp-cli.org/
|
|
"""
|
|
|
|
# TODO: Throwing deprecations with PHP 8.1+ and WP < 5.9
|
|
When I try `TERM=vt100 COLUMNS=60 wp help reference-link`
|
|
Then STDOUT should contain:
|
|
"""
|
|
This is a [reference link][1]. Also, there is a [second
|
|
link][2]. They should be displayed nicely! Wow! This is a
|
|
very, very long description.
|
|
|
|
---
|
|
[1] https://wordpress.org/
|
|
[2] http://wp-cli.org/
|
|
"""
|
|
|
|
Scenario Outline: Check that proc_open() and proc_close() aren't disabled for help pager
|
|
Given an empty directory
|
|
When I try `{INVOKE_WP_CLI_WITH_PHP_ARGS--ddisable_functions=<func>} help --debug`
|
|
Then STDERR should contain:
|
|
"""
|
|
Warning: check_proc_available() failed in pass_through_pager().
|
|
"""
|
|
And STDOUT should not be empty
|
|
And the return code should be 0
|
|
|
|
Examples:
|
|
| func |
|
|
| proc_open |
|
|
| proc_close |
|