woocommerce/plugins/woocommerce-admin/tests/install.php

53 lines
1.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Install tests
*
* @package WooCommerce\Admin\Tests
*/
use \Automattic\WooCommerce\Admin\Install;
/**
* Tests for \Automattic\WooCommerce\Admin\Install class.
*/
class WC_Admin_Tests_Install extends WP_UnitTestCase {
/**
* Integration test for database table creation.
*
* @group database
*/
public function test_create_tables() {
global $wpdb;
// Remove the Test Suites use of temporary tables https://wordpress.stackexchange.com/a/220308.
remove_filter( 'query', array( $this, '_create_temporary_tables' ) );
remove_filter( 'query', array( $this, '_drop_temporary_tables' ) );
// List of tables created by Install::create_tables.
$tables = array(
"{$wpdb->prefix}wc_order_stats",
"{$wpdb->prefix}wc_order_product_lookup",
"{$wpdb->prefix}wc_order_tax_lookup",
"{$wpdb->prefix}wc_order_coupon_lookup",
"{$wpdb->prefix}wc_admin_notes",
"{$wpdb->prefix}wc_admin_note_actions",
"{$wpdb->prefix}wc_customer_lookup",
"{$wpdb->prefix}wc_category_lookup",
);
// Remove any existing tables in the environment.
$query = 'DROP TABLE IF EXISTS ' . implode( ',', $tables );
$wpdb->query( $query ); // phpcs:ignore.
// Try to create the tables.
Install::create_tables();
$result = $wpdb->get_col( "SHOW TABLES LIKE '{$wpdb->prefix}%'" );
// Check all the tables exist.
foreach ( $tables as $table ) {
$this->assertContains( $table, $result );
}
}
}