Domain: amberpublishers.in
Server Adress: 86.38.243.169

privdayz.com

/opt/.wp-cli/packages/vendor/wp-cli/entity-command/features/
Dosya Yükle :
Current File : //opt/.wp-cli/packages/vendor/wp-cli/entity-command/features/post.feature

Feature: Manage WordPress posts

  Background:
    Given a WP install

  Scenario: Creating/updating/deleting posts
    When I run `wp post create --post_title='Test post' --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `wp post create --post_title='Test post' --post_type="test" --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {CUSTOM_POST_ID}

    When I run `wp post exists {CUSTOM_POST_ID}`
    Then STDOUT should be:
      """
      Success: Post with ID {CUSTOM_POST_ID} exists.
      """
    And the return code should be 0

    When I try `wp post exists 1000`
    And STDOUT should be empty
    And the return code should be 1

    When I run `wp post update {POST_ID} --post_title='Updated post'`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post delete {POST_ID}`
    Then STDOUT should be:
      """
      Success: Trashed post {POST_ID}.
      """

    When I run the previous command again
    Then STDOUT should be:
      """
      Success: Deleted post {POST_ID}.
      """

    When I try `wp post delete {CUSTOM_POST_ID}`
    Then STDERR should be:
      """
      Warning: Posts of type 'test' do not support being sent to trash.
      Please use the --force flag to skip trash and delete them permanently.
      """

    When I run `wp post delete {CUSTOM_POST_ID} --force`
    Then STDOUT should be:
      """
      Success: Deleted post {CUSTOM_POST_ID}.
      """

    When I try the previous command again
    Then the return code should be 1

  Scenario: Setting post categories
    When I run `wp term create category "First Category" --porcelain`
    And save STDOUT as {TERM_ID}
    And I run `wp term create category "Second Category" --porcelain`
    And save STDOUT as {SECOND_TERM_ID}

    When I run `wp post create --post_title="Test category" --post_category="First Category" --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be:
      """
      {TERM_ID}
      """

    When I run `wp post update {POST_ID} --post_category={SECOND_TERM_ID}`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be:
      """
      {SECOND_TERM_ID}
      """

    When I run `wp post update {POST_ID} --post_category='Uncategorized,{TERM_ID},Second Category'`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    And save STDOUT as {MULTI_CATEGORIES_STDOUT}
    Then STDOUT should contain:
      """
      {TERM_ID}
      """
    And STDOUT should contain:
      """
      {SECOND_TERM_ID}
      """
    And STDOUT should contain:
      """
      1
      """

    # Blank categories with non-blank ignored.
    When I run `wp post update {POST_ID} --post_category='Uncategorized, ,{TERM_ID},Second Category,'`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be:
      """
      {MULTI_CATEGORIES_STDOUT}
      """

    # Zero category same as default Uncategorized (1) category.
    When I try `wp post update {POST_ID} --post_category=0`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be:
      """
      1
      """

    # Blank category/categories same as default Uncategorized (1) category.
    When I try `wp post update {POST_ID} --post_category=,`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be:
      """
      1
      """

    # Null category same as no categories.
    When I try `wp post update {POST_ID} --post_category=' '`
    Then STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post term list {POST_ID} category --field=term_id`
    Then STDOUT should be empty

    # Non-existent category.
    When I try `wp post update {POST_ID} --post_category=test`
    Then STDERR should be:
      """
      Error: No such post category 'test'.
      """

    When I try `wp post create --post_title="Non-existent Category" --post_category={SECOND_TERM_ID},Test --porcelain`
    Then STDERR should be:
      """
      Error: No such post category 'Test'.
      """

    # Error on first non-existent category found.
    When I try `wp post create --post_title="More than one non-existent Category" --post_category={SECOND_TERM_ID},Test,Bad --porcelain`
    Then STDERR should be:
      """
      Error: No such post category 'Test'.
      """

  Scenario: Creating/getting/editing posts
    Given a content.html file:
      """
      This is some content.

      <script>
      alert('This should not be stripped.');
      </script>
      """
    And a create-post.sh file:
      """
      cat content.html | wp post create --post_title='Test post' --post_excerpt="A multiline
      excerpt" --porcelain -
      """

    When I run `bash create-post.sh`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `wp post get --field=excerpt {POST_ID}`
    Then STDOUT should be:
      """
      A multiline
      excerpt
      """

    When I run `wp post get --field=content {POST_ID} | diff -Bu content.html -`
    Then STDOUT should be empty

    When I run `wp post get --format=table {POST_ID}`
    Then STDOUT should be a table containing rows:
      | Field      | Value     |
      | ID         | {POST_ID} |
      | post_title | Test post |
      | post_name  |           |
      | post_type  | post      |

    When I run `wp post get {POST_ID} --format=csv --fields=post_title,type | wc -l | tr -d ' '`
    Then STDOUT should be:
      """
      3
      """

    When I run `wp post get --format=json {POST_ID}`
    Then STDOUT should be JSON containing:
      """
      {
        "ID": {POST_ID},
        "post_title": "Test post"
      }
      """

    When I try `EDITOR='ex -i NONE -c q!' wp post edit {POST_ID}`
    Then STDERR should contain:
      """
      No change made to post content.
      """
    And the return code should be 0

    When I run `EDITOR='ex -i NONE -c %s/content/bunkum -c wq' wp post edit {POST_ID}`
    Then STDERR should be empty
    Then STDOUT should contain:
      """
      Updated post {POST_ID}.
      """

    When I run `wp post get --field=content {POST_ID}`
    Then STDOUT should contain:
      """
      This is some bunkum.
      """

    When I run `wp post url 1 {POST_ID}`
    Then STDOUT should be:
      """
      https://example.com/?p=1
      https://example.com/?p={POST_ID}
      """

    When I run `wp post get 1 --field=url`
    Then STDOUT should be:
      """
      https://example.com/?p=1
      """

  Scenario: Update a post from file or STDIN
    Given a content.html file:
      """
      Oh glorious CLI
      """
    And a content-2.html file:
      """
      Let it be the weekend
      """

    When I run `wp post create --post_title="Testing update via STDIN" --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `cat content.html | wp post update {POST_ID} -`
    Then STDOUT should contain:
      """
      Success: Updated post {POST_ID}
      """

    When I run `wp post get --field=post_content {POST_ID}`
    Then STDOUT should be:
      """
      Oh glorious CLI
      """

    When I run `wp post create --post_title="Testing update via STDIN. Again!" --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID_TWO}

    When I run `wp post update {POST_ID} {POST_ID_TWO} content-2.html`
    Then STDOUT should contain:
      """
      Success: Updated post {POST_ID_TWO}
      """

    When I run `wp post get --field=post_content {POST_ID_TWO}`
    Then STDOUT should be:
      """
      Let it be the weekend
      """

    When I try `wp post update {POST_ID} invalid-file.html`
    Then STDERR should be:
      """
      Error: Unable to read content from 'invalid-file.html'.
      """
    And the return code should be 1

  Scenario: Creating/listing posts
    When I run `wp post create --post_title='Publish post' --post_content='Publish post content' --post_status='publish' --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `wp post create --post_title='Draft post' --post_content='Draft post content' --post_status='draft' --porcelain`
    Then STDOUT should be a number

    When I run `wp post list --post_type='post' --fields=post_title,post_name,post_status --format=csv`
    Then STDOUT should be CSV containing:
      | post_title   | post_name    | post_status  |
      | Publish post | publish-post | publish      |
      | Draft post   |              | draft        |

    When I run `wp post list --post_type='post' --fields=title,name,status --format=csv`
    Then STDOUT should be CSV containing:
      | post_title   | post_name    | post_status  |
      | Publish post | publish-post | publish      |
      | Draft post   |              | draft        |

    When I run `wp post list --post_type='post' --fields="title, name, status" --format=csv`
    Then STDOUT should be CSV containing:
      | post_title   | post_name    | post_status  |
      | Publish post | publish-post | publish      |
      | Draft post   |              | draft        |

    When I run `wp post list --post__in={POST_ID} --format=count`
    Then STDOUT should be:
      """
      1
      """

    When I run `wp post list --post_type='page' --field=title`
    Then STDOUT should contain:
      """
      Sample Page
      """

    When I run `wp post list --post_type=any --fields=post_title,post_name,post_status --format=csv --orderby=post_title --order=ASC`
    Then STDOUT should be CSV containing:
      | post_title   | post_name    | post_status  |
      | Draft post   |              | draft        |
      | Hello world! | hello-world  | publish      |
      | Publish post | publish-post | publish      |
      | Sample Page  | sample-page  | publish      |

  Scenario: Update categories on a post
    When I run `wp term create category "Test Category" --porcelain`
    Then save STDOUT as {TERM_ID}

    When I run `wp post update 1 --post_category={TERM_ID}`
    And I run `wp post term list 1 category --format=json --fields=name`
    Then STDOUT should be:
      """
      [{"name":"Test Category"}]
      """

  Scenario: Make sure WordPress receives the slashed data it expects
    When I run `wp post create --post_title='My\Post' --porcelain`
    Then save STDOUT as {POST_ID}

    When I run `wp post get {POST_ID} --field=title`
    Then STDOUT should be:
      """
      My\Post
      """

    When I run `wp post update {POST_ID} --post_content='var isEmailValid = /^\S+@\S+.\S+$/.test(email);'`
    Then STDOUT should not be empty

    When I run `wp post get {POST_ID} --field=content`
    Then STDOUT should be:
      """
      var isEmailValid = /^\S+@\S+.\S+$/.test(email);
      """

  @require-wp-4.4
  Scenario: Creating/updating posts with meta keys
    When I run `wp post create --post_title='Test Post' --post_content='Test post content' --meta_input='{"key1":"value1","key2":"value2"}' --porcelain`
    Then STDOUT should be a number
    And save STDOUT as {POST_ID}

    When I run `wp post meta list {POST_ID} --format=table`
    Then STDOUT should be a table containing rows:
      | post_id   | meta_key | meta_value |
      | {POST_ID} | key1     | value1     |
      | {POST_ID} | key2     | value2     |

    When I run `wp post update {POST_ID} --meta_input='{"key2":"value2b","key3":"value3"}'`
    And I run `wp post meta list {POST_ID} --format=table`
    Then STDOUT should be a table containing rows:
      | post_id   | meta_key | meta_value |
      | {POST_ID} | key1     | value1     |
      | {POST_ID} | key2     | value2b    |
      | {POST_ID} | key3     | value3     |

  @less-than-wp-4.4
  Scenario: Creating/updating posts with meta keys for WP < 4.4 has no effect so should give warning
    When I try `wp post create --post_title='Test Post' --post_content='Test post content' --meta_input='{"key1":"value1","key2":"value2"}' --porcelain`
    Then the return code should be 0
    And STDOUT should be a number
    And save STDOUT as {POST_ID}
    And STDERR should be:
      """
      Warning: The 'meta_input' field was only introduced in WordPress 4.4 so will have no effect.
      """

    When I run `wp post meta list {POST_ID} --format=count`
    Then STDOUT should be:
      """
      0
      """

    When I try `wp post update {POST_ID} --meta_input='{"key2":"value2b","key3":"value3"}'`
    Then the return code should be 0
    And STDERR should be:
      """
      Warning: The 'meta_input' field was only introduced in WordPress 4.4 so will have no effect.
      """
    And STDOUT should be:
      """
      Success: Updated post {POST_ID}.
      """

    When I run `wp post meta list {POST_ID} --format=count`
    Then STDOUT should be:
      """
      0
      """

  Scenario: Publishing a post and setting a date fails if the edit_date flag is not passed.
    Given a WP install

    When I run `wp post create --post_title='test' --porcelain`
    Then save STDOUT as {POST_ID}

    When I run `wp post update {POST_ID} --post_date='2005-01-24T09:52:00.000Z' --post_status='publish'`
    Then STDOUT should contain:
      """
      Success:
      """

    When I run `wp post get {POST_ID} --field=post_date`
    Then STDOUT should not contain:
      """
      2005-01-24 09:52:00
      """

  @require-mysql
  Scenario: Publishing a post and setting a date succeeds if the edit_date flag is passed.
    Given a WP install

    When I run `wp post create --post_title='test' --porcelain`
    Then save STDOUT as {POST_ID}

    When I run `wp post update {POST_ID} --post_date='2005-01-24T09:52:00.000Z' --post_status='publish' --edit_date=1`
    Then STDOUT should contain:
      """
      Success:
      """

    When I run `wp post get {POST_ID} --field=post_date`
    Then STDOUT should contain:
      """
      2005-01-24 09:52:00
      """

  # Separate test because of a known bug in the SQLite plugin.
  # See https://github.com/WordPress/sqlite-database-integration/issues/52.
  # Once the bug is resolved, this separate test can be removed again.
  @require-sqlite
  Scenario: Publishing a post and setting a date succeeds if the edit_date flag is passed.
    Given a WP install

    When I run `wp post create --post_title='test' --porcelain`
    Then save STDOUT as {POST_ID}

    When I run `wp post update {POST_ID} --post_date='2005-01-24T09:52:00.000Z' --post_status='publish' --edit_date=1`
    Then STDOUT should contain:
      """
      Success:
      """

    When I run `wp post get {POST_ID} --field=post_date`
    Then STDOUT should contain:
      """
      2005-01-24T09:52:00.000Z
      """

coded by Privdayz.com - Visit https://privdayz.com/ for more php shells.