2014-11-25 17:09:19 +00:00
|
|
|
<?php
|
|
|
|
|
2015-03-06 15:32:40 +00:00
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Class WC_Tests_Install.
|
2015-03-06 15:32:40 +00:00
|
|
|
* @package WooCommerce\Tests\Util
|
|
|
|
*/
|
2016-03-23 12:14:13 +00:00
|
|
|
class WC_Tests_Install extends WC_Unit_Test_Case {
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test check version.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_check_version() {
|
2017-01-04 18:45:45 +00:00
|
|
|
update_option( 'woocommerce_version', ( (float) WC()->version - 1 ) );
|
2014-11-25 17:09:19 +00:00
|
|
|
update_option( 'woocommerce_db_version', WC()->version );
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::check_version();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertTrue( did_action( 'woocommerce_updated' ) === 1 );
|
|
|
|
|
|
|
|
update_option( 'woocommerce_version', WC()->version );
|
|
|
|
update_option( 'woocommerce_db_version', WC()->version );
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::check_version();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertTrue( did_action( 'woocommerce_updated' ) === 1 );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test - install.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_install() {
|
|
|
|
// clean existing install first
|
|
|
|
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
|
|
define( 'WP_UNINSTALL_PLUGIN', true );
|
2016-08-24 16:34:13 +00:00
|
|
|
define( 'WC_REMOVE_ALL_DATA', true );
|
2014-11-25 17:09:19 +00:00
|
|
|
}
|
2016-01-08 14:53:24 +00:00
|
|
|
|
2015-03-06 15:32:40 +00:00
|
|
|
include( dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) . '/uninstall.php' );
|
2014-11-25 17:09:19 +00:00
|
|
|
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::install();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertTrue( get_option( 'woocommerce_version' ) === WC()->version );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test - create pages.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_create_pages() {
|
|
|
|
// Clear options
|
|
|
|
delete_option( 'woocommerce_shop_page_id' );
|
|
|
|
delete_option( 'woocommerce_cart_page_id' );
|
|
|
|
delete_option( 'woocommerce_checkout_page_id' );
|
|
|
|
delete_option( 'woocommerce_myaccount_page_id' );
|
|
|
|
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::create_pages();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_shop_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_cart_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_checkout_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_myaccount_page_id' ) );
|
|
|
|
|
|
|
|
// Delete pages
|
|
|
|
wp_delete_post( get_option( 'woocommerce_shop_page_id' ), true );
|
|
|
|
wp_delete_post( get_option( 'woocommerce_cart_page_id' ), true );
|
|
|
|
wp_delete_post( get_option( 'woocommerce_checkout_page_id' ), true );
|
|
|
|
wp_delete_post( get_option( 'woocommerce_myaccount_page_id' ), true );
|
|
|
|
|
|
|
|
// Clear options
|
|
|
|
delete_option( 'woocommerce_shop_page_id' );
|
|
|
|
delete_option( 'woocommerce_cart_page_id' );
|
|
|
|
delete_option( 'woocommerce_checkout_page_id' );
|
|
|
|
delete_option( 'woocommerce_myaccount_page_id' );
|
|
|
|
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::create_pages();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_shop_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_cart_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_checkout_page_id' ) );
|
|
|
|
$this->assertGreaterThan( 0, get_option( 'woocommerce_myaccount_page_id' ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test - create roles.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_create_roles() {
|
2015-02-03 16:22:58 +00:00
|
|
|
// Clean existing install first
|
2014-11-25 17:09:19 +00:00
|
|
|
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
|
|
define( 'WP_UNINSTALL_PLUGIN', true );
|
2016-08-24 16:34:13 +00:00
|
|
|
define( 'WC_REMOVE_ALL_DATA', true );
|
2014-11-25 17:09:19 +00:00
|
|
|
}
|
2015-03-06 15:32:40 +00:00
|
|
|
include( dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) . '/uninstall.php' );
|
2014-11-25 17:09:19 +00:00
|
|
|
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::create_roles();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertNotNull( get_role( 'customer' ) );
|
|
|
|
$this->assertNotNull( get_role( 'shop_manager' ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test - remove roles.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_remove_roles() {
|
2016-03-23 12:14:13 +00:00
|
|
|
WC_Install::remove_roles();
|
2014-11-25 17:09:19 +00:00
|
|
|
|
|
|
|
$this->assertNull( get_role( 'customer' ) );
|
|
|
|
$this->assertNull( get_role( 'shop_manager' ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2015-11-03 13:31:20 +00:00
|
|
|
* Test - in_plugin_update_message.
|
2014-11-25 17:09:19 +00:00
|
|
|
*/
|
|
|
|
public function test_in_plugin_update_message() {
|
|
|
|
ob_start();
|
2016-05-10 17:47:38 +00:00
|
|
|
WC_install::in_plugin_update_message( array( 'Version' => '2.0.0', 'new_version' => '2.0.0' ) );
|
2014-11-25 17:09:19 +00:00
|
|
|
$result = ob_get_clean();
|
|
|
|
$this->assertTrue( is_string( $result ) );
|
|
|
|
}
|
|
|
|
}
|