mirror of
https://ghproxy.net/https://github.com/wp-cli/entity-command.git
synced 2026-07-27 13:08:43 +08:00
WP-CLI now emits deprecation warnings when it rewrites legacy command syntax. Use the modern forms in the Behat scenarios so the standard run step can continue to require clean STDERR.
130 lines
4.2 KiB
Gherkin
130 lines
4.2 KiB
Gherkin
Feature: Empty a WordPress site of its data
|
|
|
|
@require-mysql
|
|
Scenario: Empty a site
|
|
Given a WP installation
|
|
And I run `wp option update uploads_use_yearmonth_folders 0`
|
|
And download:
|
|
| path | url |
|
|
| {CACHE_DIR}/large-image.jpg | http://wp-cli.github.io/behat-data/large-image.jpg |
|
|
And a insert_link_data.sql file:
|
|
"""
|
|
INSERT INTO `wp_links` (`link_url`, `link_name`, `link_image`, `link_target`, `link_description`, `link_visible`, `link_owner`, `link_rating`, `link_rel`, `link_notes`, `link_rss`)
|
|
VALUES ('http://wordpress.org/', 'test', '', '', 'test', 'Y', 1, 0, '', '', '')
|
|
"""
|
|
|
|
When I run `wp db query "SOURCE insert_link_data.sql;"`
|
|
Then STDERR should be empty
|
|
|
|
When I run `wp db query "SELECT COUNT(link_id) FROM wp_links;"`
|
|
Then STDOUT should be:
|
|
"""
|
|
COUNT(link_id)
|
|
1
|
|
"""
|
|
|
|
When I run `wp media import {CACHE_DIR}/large-image.jpg --post_id=1`
|
|
Then the wp-content/uploads/large-image.jpg file should exist
|
|
|
|
When I try `wp site list --site__in=1 --field=url`
|
|
Then STDERR should be:
|
|
"""
|
|
Error: This is not a multisite installation.
|
|
"""
|
|
And the return code should be 1
|
|
|
|
When I run `wp post create --post_title='Test post' --post_content='Test content.'`
|
|
Then STDOUT should contain:
|
|
"""
|
|
Success: Created post
|
|
"""
|
|
|
|
When I run `wp term create post_tag 'Test term' --slug=test --description='This is a test term'`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Created post_tag 2.
|
|
"""
|
|
|
|
When I run `wp post create --post_type=page --post_title='Sample Privacy Page' --post_content='Sample Privacy Terms' --porcelain`
|
|
Then save STDOUT as {PAGE_ID}
|
|
|
|
When I run `wp option set wp_page_for_privacy_policy {PAGE_ID}`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Updated 'wp_page_for_privacy_policy' option.
|
|
"""
|
|
|
|
When I run `wp option get wp_page_for_privacy_policy`
|
|
Then STDOUT should be:
|
|
"""
|
|
{PAGE_ID}
|
|
"""
|
|
|
|
When I run `wp post create --post_title='Sticky Post' --post_content='This is just a sticky post' --porcelain`
|
|
Then save STDOUT as {STICKY_POST_ID}
|
|
|
|
When I run `wp option set sticky_posts '[{STICKY_POST_ID}]' --format=json`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: Updated 'sticky_posts' option.
|
|
"""
|
|
|
|
When I run `wp site empty --yes`
|
|
Then STDOUT should be:
|
|
"""
|
|
Success: The site at 'http://example.com' was emptied.
|
|
"""
|
|
And the wp-content/uploads/large-image.jpg file should exist
|
|
|
|
When I run `wp post list --format=ids`
|
|
Then STDOUT should be empty
|
|
|
|
When I run `wp term list post_tag --format=ids`
|
|
Then STDOUT should be empty
|
|
|
|
When I run `wp option get wp_page_for_privacy_policy`
|
|
Then STDOUT should be:
|
|
"""
|
|
0
|
|
"""
|
|
|
|
When I run `wp option get sticky_posts --format=json`
|
|
Then STDOUT should be:
|
|
"""
|
|
[]
|
|
"""
|
|
|
|
When I run `wp db query "SELECT COUNT(link_id) FROM wp_links;"`
|
|
Then STDOUT should be:
|
|
"""
|
|
COUNT(link_id)
|
|
0
|
|
"""
|
|
|
|
Scenario: Empty a site and its uploads directory
|
|
Given a WP multisite installation
|
|
And I run `wp site create --slug=foo`
|
|
And I run `wp --url=example.com/foo option update uploads_use_yearmonth_folders 0`
|
|
And download:
|
|
| path | url |
|
|
| {CACHE_DIR}/large-image.jpg | http://wp-cli.github.io/behat-data/large-image.jpg |
|
|
|
|
When I run `wp --url=example.com/foo media import {CACHE_DIR}/large-image.jpg --post_id=1`
|
|
Then the wp-content/uploads/sites/2/large-image.jpg file should exist
|
|
|
|
When I run `wp site empty --uploads --yes`
|
|
Then STDOUT should not be empty
|
|
And the wp-content/uploads/sites/2/large-image.jpg file should exist
|
|
|
|
When I run `wp post list --format=ids`
|
|
Then STDOUT should be empty
|
|
|
|
When I run `wp --url=example.com/foo site empty --uploads --yes`
|
|
Then STDOUT should contain:
|
|
"""
|
|
://example.com/foo' was emptied.
|
|
"""
|
|
And the wp-content/uploads/sites/2/large-image.jpg file should not exist
|
|
|
|
When I run `wp --url=example.com/foo post list --format=ids`
|
|
Then STDOUT should be empty
|