Domain: amberpublishers.in
Server Adress: 86.38.243.169

privdayz.com

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

Feature: Manage WordPress plugins

  Scenario: Create, activate and check plugin status
    Given a WP install
    And I run `wp plugin path`
    And save STDOUT as {PLUGIN_DIR}

    When I run `wp plugin scaffold --skip-tests plugin1`
    Then STDOUT should not be empty
    And the {PLUGIN_DIR}/plugin1/plugin1.php file should exist
    And the {PLUGIN_DIR}/zombieland/phpunit.xml.dist file should not exist

    When I run `wp plugin path plugin1`
    Then STDOUT should be:
      """
      {PLUGIN_DIR}/plugin1/plugin1.php
      """

    When I run `wp plugin path plugin1 --dir`
    Then STDOUT should be:
      """
      {PLUGIN_DIR}/plugin1
      """

    When I run `wp plugin scaffold Zombieland`
    Then STDOUT should not be empty
    And the {PLUGIN_DIR}/Zombieland/Zombieland.php file should exist
    And the {PLUGIN_DIR}/Zombieland/phpunit.xml.dist file should exist

    # Ensure case sensitivity
    When I try `wp plugin status zombieLand`
    Then STDERR should contain:
      """
      The 'zombieLand' plugin could not be found.
      """
    And STDOUT should be empty
    And the return code should be 1

    # Check that the inner-plugin is not picked up
    When I run `mv {PLUGIN_DIR}/plugin1 {PLUGIN_DIR}/Zombieland/`
    And I run `wp plugin status Zombieland`
    Then STDOUT should contain:
      """
      Plugin Zombieland details:
          Name: Zombieland
          Status: Inactive
          Version: 0.1.0
          Author: YOUR NAME HERE
          Description: PLUGIN DESCRIPTION HERE
      """

    When I run `wp plugin activate Zombieland`
    Then STDOUT should not be empty

    When I run `wp plugin status Zombieland`
    Then STDOUT should contain:
      """
          Status: Active
      """

    When I run `wp plugin status`
    Then STDOUT should not be empty

    When I run `wp plugin list`
    Then STDOUT should be a table containing rows:
      | name       | status | update | version | update_version | auto_update |
      | Zombieland | active | none   | 0.1.0   |                | off         |

    When I try `wp plugin uninstall Zombieland`
    Then STDERR should be:
      """
      Warning: The 'Zombieland' plugin is active.
      Error: No plugins uninstalled.
      """
    And the return code should be 1

    When I run `wp plugin deactivate Zombieland`
    Then STDOUT should not be empty

    When I run `wp option get recently_activated`
    Then STDOUT should contain:
      """
      Zombieland/Zombieland.php
      """

    When I run `wp plugin uninstall Zombieland`
    Then STDOUT should be:
      """
      Uninstalled and deleted 'Zombieland' plugin.
      Success: Uninstalled 1 of 1 plugins.
      """
    And the {PLUGIN_DIR}/zombieland file should not exist

    When I try the previous command again
    Then STDERR should contain:
      """
      Warning:
      """
    And STDERR should contain:
      """
      Zombieland
      """
    And STDERR should contain:
      """
      Error: No plugins uninstalled.
      """
    And STDOUT should be empty
    And the return code should be 1

  @require-wp-4.0
  Scenario: Install a plugin, activate, then force install an older version of the plugin
    Given a WP install

    When I run `wp plugin install wordpress-importer --version=0.5 --force`
    Then STDOUT should not be empty

    When I run `wp plugin list --name=wordpress-importer --field=update_version`
    Then STDOUT should not be empty
    And save STDOUT as {UPDATE_VERSION}

    When I run `wp plugin list --fields=name,status,update,version,update_version`
    Then STDOUT should be a table containing rows:
      | name               | status   | update    | version | update_version   |
      | wordpress-importer | inactive | available | 0.5     | {UPDATE_VERSION} |

    When I run `wp plugin activate wordpress-importer`
    Then STDOUT should not be empty

    When I run `wp plugin install wordpress-importer --version=0.5 --force`
    Then STDOUT should not be empty

    When I run `wp plugin list`
    Then STDOUT should be a table containing rows:
      | name               | status   | update    | version | update_version   | auto_update |
      | wordpress-importer | active   | available | 0.5     | {UPDATE_VERSION} | off         |

    When I try `wp plugin update`
    Then STDERR should be:
      """
      Error: Please specify one or more plugins, or use --all.
      """
    And STDOUT should be empty
    And the return code should be 1

    When I run `wp plugin update --all --format=summary | grep 'updated successfully from'`
    Then STDOUT should contain:
      """
      WordPress Importer updated successfully from version 0.5 to version
      """

    When I try `wp plugin update xxx yyy`
    Then STDERR should contain:
      """
      Warning: The 'xxx' plugin could not be found.
      """
    And STDERR should contain:
      """
      Warning: The 'yyy' plugin could not be found.
      """
    And STDERR should contain:
      """
      Error: No plugins updated (2 failed).
      """
    And the return code should be 1

    When I run `wp plugin install wordpress-importer --version=0.5 --force`
    Then STDOUT should not be empty

    When I try `wp plugin update xxx wordpress-importer yyy`
    Then STDERR should contain:
      """
      Warning: The 'xxx' plugin could not be found.
      """
    And STDERR should contain:
      """
      Warning: The 'yyy' plugin could not be found.
      """
    And STDERR should contain:
      """
      Error: Only updated 1 of 3 plugins (2 failed).
      """
    And the return code should be 1

  Scenario: Activate a network-only plugin on single site
    Given a WP install
    And a wp-content/plugins/network-only.php file:
      """
      <?php
      // Plugin Name: Example Plugin
      // Network: true
      """

    When I run `wp plugin activate network-only`
    Then STDOUT should be:
      """
      Plugin 'network-only' activated.
      Success: Activated 1 of 1 plugins.
      """

    When I run `wp plugin status network-only`
    Then STDOUT should contain:
      """
          Status: Active
      """

  Scenario: Activate a network-only plugin on multisite
    Given a WP multisite install
    And a wp-content/plugins/network-only.php file:
      """
      <?php
      // Plugin Name: Example Plugin
      // Network: true
      """

    When I run `wp plugin activate network-only`
    Then STDOUT should be:
      """
      Plugin 'network-only' network activated.
      Success: Activated 1 of 1 plugins.
      """

    When I run `wp plugin status network-only`
    Then STDOUT should contain:
      """
          Status: Network Active
      """

  Scenario: Network activate a plugin
    Given a WP multisite install

    When I run `wp plugin activate akismet`
    Then STDOUT should be:
      """
      Plugin 'akismet' activated.
      Success: Activated 1 of 1 plugins.
      """

    When I run `wp plugin list --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name            | status           | file                |
      | akismet         | active           | akismet/akismet.php |

    When I try `wp plugin activate akismet`
    Then STDERR should contain:
      """
      Warning: Plugin 'akismet' is already active.
      """
    And STDOUT should be:
      """
      Success: Plugin already activated.
      """
    And the return code should be 0

    When I run `wp plugin activate akismet --network`
    Then STDOUT should be:
      """
      Plugin 'akismet' network activated.
      Success: Network activated 1 of 1 plugins.
      """

    When I try `wp plugin activate akismet --network`
    Then STDERR should be:
      """
      Warning: Plugin 'akismet' is already network active.
      """
    And STDOUT should be:
      """
      Success: Plugin already network activated.
      """
    And the return code should be 0

    When I try `wp plugin deactivate akismet`
    Then STDERR should be:
      """
      Warning: Plugin 'akismet' is network active and must be deactivated with --network flag.
      Error: No plugins deactivated.
      """
    And STDOUT should be empty
    And the return code should be 1

    When I run `wp plugin deactivate akismet --network`
    Then STDOUT should be:
      """
      Plugin 'akismet' network deactivated.
      Success: Network deactivated 1 of 1 plugins.
      """
    And the return code should be 0

    When I try `wp plugin deactivate akismet`
    Then STDERR should be:
      """
      Warning: Plugin 'akismet' isn't active.
      """
    And STDOUT should be:
      """
      Success: Plugin already deactivated.
      """
    And the return code should be 0

  Scenario: List plugins
    Given a WP install

    When I run `wp plugin activate akismet hello`
    Then STDOUT should not be empty

    When I run `wp plugin list --status=inactive --field=name`
    Then STDOUT should be empty

    When I run `wp plugin list --status=active --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name       | status   | file                |
      | akismet    | active   | akismet/akismet.php |

    When I run `wp plugin list --status=active --field=author`
    Then STDOUT should contain:
      """
      Automattic
      """

  Scenario: List plugin by multiple statuses
    Given a WP multisite install
    And a wp-content/plugins/network-only.php file:
      """
      <?php
      // Plugin Name: Example Plugin
      // Network: true
      """

    When I run `wp plugin activate akismet hello`
    Then STDOUT should not be empty

    When I run `wp plugin install wordpress-importer`
    Then STDOUT should not be empty

    When I run `wp plugin activate network-only`
    Then STDOUT should not be empty

    When I run `wp plugin list --status=active-network,inactive --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name               | status         | file                                      |
      | network-only       | active-network | network-only.php                          |
      | wordpress-importer | inactive       | wordpress-importer/wordpress-importer.php |

    When I run `wp plugin list --status=active,inactive --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name               | status   | file                                      |
      | akismet            | active   | akismet/akismet.php                       |
      | wordpress-importer | inactive | wordpress-importer/wordpress-importer.php |

  @require-wp-5.2
  Scenario: Flag `--skip-update-check` skips update check when running `wp plugin list`
    Given a WP install

    When I run `wp plugin install wordpress-importer --version=0.2`
    Then STDOUT should contain:
      """
      Plugin installed successfully.
      """

    When I run `wp plugin list --fields=name,status,update --status=inactive`
    Then STDOUT should be a table containing rows:
      | name               | status   | update    |
      | wordpress-importer | inactive | available |

    When I run `wp transient delete update_plugins --network`
    Then STDOUT should be:
      """
      Success: Transient deleted.
      """

    When I run `wp plugin list --fields=name,status,update --status=inactive --skip-update-check`
    Then STDOUT should be a table containing rows:
      | name               | status   | update   |
      | wordpress-importer | inactive | none     |

  Scenario: Install a plugin when directory doesn't yet exist
    Given a WP install

    When I run `rm -rf wp-content/plugins`
    And I run `if test -d wp-content/plugins; then echo "fail"; fi`
    Then STDOUT should be empty

    When I run `wp plugin install wordpress-importer --activate`
    Then STDOUT should not be empty

    When I run `wp plugin list --status=active --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name               | status   | file                                      |
      | wordpress-importer | active   | wordpress-importer/wordpress-importer.php |

  Scenario: Plugin name with HTML entities
    Given a WP install

    When I run `wp plugin install debug-bar-list-dependencies`
    Then STDOUT should contain:
      """
      Installing Debug Bar List Script & Style Dependencies
      """

  # Not running for SQLite because it involves another must-use plugin and a drop-in.
  @require-mysql
  Scenario: Enable and disable all plugins
    Given a WP install

    When I run `wp plugin activate --all`
    Then STDOUT should contain:
      """
      Plugin 'akismet' activated.
      Plugin 'hello' activated.
      Success: Activated 2 of 2 plugins.
      """

    When I run `wp plugin activate --all`
    Then STDOUT should be:
      """
      Success: Plugins already activated.
      """

    When I run `wp plugin list --field=status`
    Then STDOUT should be:
      """
      active
      active
      must-use
      must-use
      """

    When I run `wp plugin deactivate --all`
    Then STDOUT should be:
      """
      Plugin 'akismet' deactivated.
      Plugin 'hello' deactivated.
      Success: Deactivated 2 of 2 plugins.
      """

    When I run `wp plugin deactivate --all`
    Then STDOUT should be:
      """
      Success: Plugins already deactivated.
      """

    When I run `wp plugin list --field=status`
    Then STDOUT should be:
      """
      inactive
      inactive
      must-use
      must-use
      """

  Scenario: Deactivate and uninstall a plugin, part one
    Given a WP install
    And these installed and active plugins:
      """
      wordpress-importer
      """

    When I run `wp plugin deactivate wordpress-importer --uninstall`
    Then STDOUT should be:
      """
      Plugin 'wordpress-importer' deactivated.
      Uninstalling 'wordpress-importer'...
      Uninstalled and deleted 'wordpress-importer' plugin.
      Success: Deactivated 1 of 1 plugins.
      """

    When I try `wp plugin get wordpress-importer`
    Then STDERR should be:
      """
      Error: The 'wordpress-importer' plugin could not be found.
      """
    And STDOUT should be empty
    And the return code should be 1

  Scenario: Deactivate and uninstall a plugin, part two
    Given a WP install
    And these installed and active plugins:
      """
      wordpress-importer
      """

    When I run `wp plugin uninstall wordpress-importer --deactivate`
    Then STDOUT should be:
      """
      Deactivating 'wordpress-importer'...
      Plugin 'wordpress-importer' deactivated.
      Uninstalled and deleted 'wordpress-importer' plugin.
      Success: Uninstalled 1 of 1 plugins.
      """

    When I try `wp plugin get wordpress-importer`
    Then STDERR should be:
      """
      Error: The 'wordpress-importer' plugin could not be found.
      """
    And STDOUT should be empty
    And the return code should be 1

  Scenario: Uninstall a plugin without deleting
    Given a WP install

    When I run `wp plugin install akismet --version=2.5.7 --force`
    Then STDOUT should not be empty

    When I run `wp plugin uninstall akismet --skip-delete`
    Then STDOUT should be:
      """
      Ran uninstall procedure for 'akismet' plugin without deleting.
      Success: Uninstalled 1 of 1 plugins.
      """

  Scenario: Two plugins, one directory
    Given a WP install
    And a wp-content/plugins/handbook/handbook.php file:
      """
      <?php
      /**
       * Plugin Name: Handbook
       * Description: Features for a handbook, complete with glossary and table of contents
       * Author: Nacin
       */
      """
    And a wp-content/plugins/handbook/functionality-for-pages.php file:
      """
      <?php
      /**
       * Plugin Name: Handbook Functionality for Pages
       * Description: Adds handbook-like table of contents to all Pages for a site. Covers Table of Contents and the "watch this page" widget
       * Author: Nacin
       */
      """

    When I run `wp plugin list --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name                             | status   | file                                 |
      | handbook/handbook                | inactive | handbook/handbook.php                |
      | handbook/functionality-for-pages | inactive | handbook/functionality-for-pages.php |

    When I run `wp plugin activate handbook/functionality-for-pages`
    Then STDOUT should not be empty

    When I run `wp plugin list --fields=name,status,file`
    Then STDOUT should be a table containing rows:
      | name                             | status   | file                                 |
      | handbook/handbook                | inactive | handbook/handbook.php                |
      | handbook/functionality-for-pages | active   | handbook/functionality-for-pages.php |

  Scenario: Install a plugin, then update to a specific version of that plugin
    Given a WP install

    When I run `wp plugin install akismet --version=2.5.7 --force`
    Then STDOUT should not be empty

    When I run `wp plugin update akismet --version=2.6.0`
    Then STDOUT should not be empty

    When I run `wp plugin list --fields=name,version,file`
    Then STDOUT should be a table containing rows:
      | name       | version   | file                |
      | akismet    | 2.6.0     | akismet/akismet.php |

  Scenario: Ignore empty slugs
    Given a WP install

    When I try `wp plugin install ''`
    Then STDERR should contain:
      """
      Warning: Ignoring ambiguous empty slug value.
      """
    And STDOUT should not contain:
      """
      Plugin installed successfully
      """
    And the return code should be 0

  @require-wp-4.7
  Scenario: Plugin hidden by "all_plugins" filter
    Given a WP install
    And these installed and active plugins:
      """
      akismet
      site-secrets
      """
    And a wp-content/mu-plugins/hide-us-plugin.php file:
      """
      <?php
      /**
       * Plugin Name: Hide Site Secrets on Production
       * Description: Hides the Site Secrets plugin on production sites
       * Author: WP-CLI tests
       */

       add_filter( 'all_plugins', function( $all_plugins ) {
          unset( $all_plugins['site-secrets/site-secrets.php'] );
          return $all_plugins;
       } );
       """

    When I run `wp plugin list --fields=name`
    Then STDOUT should not contain:
      """
      site-secrets
      """

  Scenario: Show dropins plugin list
    Given a WP install
    And a wp-content/db-error.php file:
      """
      <?php
      """

    When I run `wp plugin list --status=active`
    Then STDOUT should not contain:
      """
      db-error.php
      """

    When I run `wp plugin list --status=dropin --fields=name,title,description,file`
    Then STDOUT should be a table containing rows:
      | name         | title | description                    | file         |
      | db-error.php |       | Custom database error message. | db-error.php |

  @require-wp-4.0
  Scenario: Validate installed plugin's version.
    Given a WP installation
    And I run `wp plugin uninstall --all`
    And I run `wp plugin install hello-dolly`
    And a wp-content/mu-plugins/test-plugin-update.php file:
      """
      <?php
      /**
       * Plugin Name: Test Plugin Update
       * Description: Fakes installed plugin's data to verify plugin version mismatch
       * Author: WP-CLI tests
       */

      add_filter( 'site_transient_update_plugins', function( $value ) {
          if ( ! is_object( $value ) ) {
              return $value;
          }

          unset( $value->response['hello-dolly/hello.php'] );
          $value->no_update['hello-dolly/hello.php']->new_version = '1.5';

          return $value;
      } );
      ?>
      """

    When I run `wp plugin list --name=hello-dolly  --field=version`
    And save STDOUT as {PLUGIN_VERSION}

    When I run `wp plugin list --name=hello-dolly  --field=update_version`
    And save STDOUT as {UPDATE_VERSION}

    When I run `wp plugin list`
    Then STDOUT should be a table containing rows:
      | name               | status   | update                       | version          | update_version   | auto_update |
      | hello-dolly        | inactive | version higher than expected | {PLUGIN_VERSION} | {UPDATE_VERSION} | off         |

    When I try `wp plugin update --all`
    Then STDERR should be:
    """
    Warning: hello-dolly: version higher than expected.
    Error: No plugins updated.
    """

    When I try `wp plugin update hello-dolly`
    Then STDERR should be:
    """
    Warning: hello-dolly: version higher than expected.
    Error: No plugins updated.
    """

  Scenario: Only valid status filters are accepted when listing plugins
    Given a WP install

    When I run `wp plugin list`
    Then STDERR should be empty

    When I run `wp plugin list --status=active`
    Then STDERR should be empty

    When I try `wp plugin list --status=invalid-status`
    Then STDERR should be:
      """
      Error: Parameter errors:
       Invalid value specified for 'status' (Filter the output by plugin status.)
      """

  Scenario: Listing mu-plugins should include name and title
    Given a WP install
    And a wp-content/mu-plugins/test-mu.php file:
      """
      <?php
      // Plugin Name: Test mu-plugin
      // Description: Test mu-plugin description
      """

    When I run `wp plugin list --fields=name,title`
    Then STDOUT should be a table containing rows:
      | name              | title                   |
      | test-mu           | Test mu-plugin       |

    When I run `wp plugin list --fields=name,title,description`
    Then STDOUT should be a table containing rows:
      | name    | title             | description                                    |
      | test-mu | Test mu-plugin    | Test mu-plugin description                     |

  @require-wp-5.5
  Scenario: Listing plugins should include name and auto_update
    Given a WP install
    When I run `wp plugin list --fields=name,auto_update`
    Then STDOUT should be a table containing rows:
      | name              | auto_update          |
      | hello             | off                  |

    When I run `wp plugin auto-updates enable hello`
    And I try `wp plugin list --fields=name,auto_update`
    Then STDOUT should be a table containing rows:
      | name              | auto_update          |
      | hello             | on                   |

  Scenario: Listing plugins should include tested_up_to from the 'tested up to' header
    Given a WP install
    And a wp-content/plugins/foo/foo.php file:
      """
      <?php
      /**
       * Plugin Name: Foo
       * Description: A plugin for foo
       * Author: Matt
       */
      """
    And a wp-content/plugins/foo/readme.txt file:
      """
      === Foo ===
      Contributors: matt
      Donate link: https://example.com/
      Tags: tag1, tag2
      Requires at least: 4.7
      Tested up to: 3.4
      Stable tag: 4.3
      Requires PHP: 7.0
      License: GPLv2 or later
      License URI: https://www.gnu.org/licenses/gpl-2.0.html
      """
    And I run `wp plugin activate foo`

    When I run `wp plugin list`
    Then STDOUT should be a table containing rows:
      | name       | status   | update  | version  | update_version | auto_update |
      | foo        | active   | none    |          |                | off         |

    When I run `wp plugin list --fields=name,tested_up_to`
    Then STDOUT should be a table containing rows:
      | name            | tested_up_to     |
      | foo             | 3.4              |

    And I run `wp plugin list --name=foo --field=tested_up_to`
    Then STDOUT should be:
      """
      3.4
      """

  Scenario: Listing plugins should include tested_up_to from the 'tested' header
    Given a WP install
    And a wp-content/plugins/foo/foo.php file:
      """
      <?php
      /**
       * Plugin Name: Foo
       * Description: A plugin for foo
       * Author: Matt
       */
      """
    And a wp-content/plugins/foo/readme.txt file:
      """
      === Foo ===
      Tested: 5.5
      Contributors: matt
      Donate link: https://example.com/
      Tags: tag1, tag2
      Requires at least: 4.7
      Stable tag: 4.3
      Requires PHP: 7.0
      License: GPLv2 or later
      License URI: https://www.gnu.org/licenses/gpl-2.0.html
      """
    And I run `wp plugin activate foo`

    When I run `wp plugin list`
    Then STDOUT should be a table containing rows:
      | name       | status   | update  | version  | update_version | auto_update |
      | foo        | active   | none    |          |                | off         |

    When I run `wp plugin list --fields=name,tested_up_to`
    Then STDOUT should be a table containing rows:
      | name            | tested_up_to     |
      | foo             | 5.5              |

    And I run `wp plugin list --name=foo --field=tested_up_to`
    Then STDOUT should be:
      """
      5.5
      """

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