mirror of
https://gh.wpcy.net/https://github.com/wp-cli/entity-command.git
synced 2026-04-29 22:00:29 +08:00
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.org/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 url 1`
|
|
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 'https://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.org/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
|