Add unit tests for update-functions.
This commit is contained in:
parent
2e3057052f
commit
6c9cfaa793
|
@ -0,0 +1,84 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Update functions tests
|
||||||
|
*
|
||||||
|
* @package WooCommerce\Tests\Functions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class WC_Core_Functions_Test
|
||||||
|
*/
|
||||||
|
class WC_Update_Functions_Test extends \WC_Unit_Test_Case {
|
||||||
|
|
||||||
|
public function test_verify_wc_update_343_cleanup_foreign_keys_removes_foreign_keys() {
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
|
// Add matching foreign keys between wc_download_log and wc_download_log_permission_id as it previously existed.
|
||||||
|
$wpdb->query(
|
||||||
|
"ALTER TABLE `{$wpdb->prefix}wc_download_log`
|
||||||
|
ADD CONSTRAINT `wc_download_log_ib`
|
||||||
|
FOREIGN KEY (`permission_id`)
|
||||||
|
REFERENCES `{$wpdb->prefix}woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE,
|
||||||
|
ADD CONSTRAINT `wc_download_log_ib_2`
|
||||||
|
FOREIGN KEY (`permission_id`)
|
||||||
|
REFERENCES `{$wpdb->prefix}woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE"
|
||||||
|
);
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertNotFalse( strpos( $table_definition, "wc_download_log_ib" ) );
|
||||||
|
$this->assertNotFalse( strpos( $table_definition, "wc_download_log_ib_2" ) );
|
||||||
|
|
||||||
|
include_once WC_ABSPATH . 'includes/wc-update-functions.php';
|
||||||
|
|
||||||
|
wc_update_343_cleanup_foreign_keys();
|
||||||
|
|
||||||
|
// Verify that the keys were properly removed
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertFalse( strpos( $table_definition, "wc_download_log_ib" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_verify_wc_update_352_drop_download_log_fk_removes_foreign_keys() {
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
|
// Add the foreign key between wc_download_log and wc_download_log_permission_id as it previously existed.
|
||||||
|
$wpdb->query(
|
||||||
|
"ALTER TABLE `{$wpdb->prefix}wc_download_log`
|
||||||
|
ADD CONSTRAINT `fk_wc_download_log_permission_id`
|
||||||
|
FOREIGN KEY (`permission_id`)
|
||||||
|
REFERENCES `{$wpdb->prefix}woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE"
|
||||||
|
);
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertNotFalse( strpos( $table_definition, "fk_wc_download_log_permission_id" ) );
|
||||||
|
|
||||||
|
include_once WC_ABSPATH . 'includes/wc-update-functions.php';
|
||||||
|
|
||||||
|
wc_update_352_drop_download_log_fk();
|
||||||
|
|
||||||
|
// Verify that the key was properly removed
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertFalse( strpos( $table_definition, "fk_wc_download_log_permission_id" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_verify_wc_update_700_remove_download_log_fk_removes_foreign_keys() {
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
|
// Add the foreign key between wc_download_log and wc_download_log_permission_id as it previously existed.
|
||||||
|
$wpdb->query(
|
||||||
|
"ALTER TABLE `{$wpdb->prefix}wc_download_log`
|
||||||
|
ADD CONSTRAINT `fk_{$wpdb->prefix}wc_download_log_permission_id`
|
||||||
|
FOREIGN KEY (`permission_id`)
|
||||||
|
REFERENCES `{$wpdb->prefix}woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE"
|
||||||
|
);
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertNotFalse( strpos( $table_definition, "fk_{$wpdb->prefix}wc_download_log_permission_id" ) );
|
||||||
|
|
||||||
|
include_once WC_ABSPATH . 'includes/wc-update-functions.php';
|
||||||
|
|
||||||
|
wc_update_700_remove_download_log_fk();
|
||||||
|
|
||||||
|
// Verify that the key was properly removed.
|
||||||
|
$table_definition = $wpdb->get_var( "SHOW CREATE TABLE {$wpdb->prefix}wc_download_log", 1 );
|
||||||
|
$this->assertFalse( strpos( $table_definition, "fk_{$wpdb->prefix}wc_download_log_permission_id" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue