<?php
/**
* PHPUnit bootstrap file.
*
* Loads the necessary setup to run the tests.
* This file will be called first by the test runner.
* Before running any tests.
*/
// Composer autoloader must be loaded before WP_PHPUNIT__DIR will be available
require_once dirname( __FILE__, 3 ) . '/vendor/autoload.php';
$_tests_dir = getenv( 'WP_TESTS_DIR' ) ? getenv( 'WP_TESTS_DIR' ) : getenv( 'WP_PHPUNIT__DIR' );
if ( ! $_tests_dir ) {
$_tests_dir = rtrim( sys_get_temp_dir(), '/\\' ) . '/wordpress-tests-lib';
}
if ( ! file_exists( "{$_tests_dir}/includes/functions.php" ) ) {
echo "Could not find {$_tests_dir}/includes/functions.php, have you run bin/install-wp-tests.sh ?" . PHP_EOL; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
exit( 1 );
}
// Give access to tests_add_filter() function.
require_once "{$_tests_dir}/includes/functions.php";
/**
* Manually load the plugin being tested.
*
* @since 0.3.1
*
* @return void
*/
function _manually_load_plugin(): void {
_manually_load_required_plugins();
require_once dirname( dirname( dirname( __FILE__ ) ) ) . '/job-place.php';
}
/**
* Load any external plugin if needs.
*
* @since 0.3.1
*
* @example for Woocommerce Installation
*
* @return void
*/
function _manually_load_required_plugins(): void {
/*
$file = dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) . '/woocommerce/woocommerce.php';
if ( file_exists( $file ) ) {
require $file;
} else {
echo 'could not find woocommerce plugin ' . $file . PHP_EOL; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
exit( 1 );
}
*/
}
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
/**
* Install database tables for this plugin.
*
* @since 0.3.1
*
* @return void
*/
function install_plugin_databases(): void {
_manually_load_plugin();
$installer = new \Akash\JobPlace\Setup\Installer();
$installer->run();
}
/**
* After setup theme install any needed plugins.
*
* @since 0.3.1
*
* @example for Woocommerce Installation
*
* @return void
*/
function install_necessary_plugins(): void {
// clean existing install first
/*
define( 'WP_UNINSTALL_PLUGIN', true );
define( 'WC_REMOVE_ALL_DATA', true );
include dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) . '/woocommerce/uninstall.php';
WC_Install::install();
// Reload capabilities after install, see https://core.trac.wordpress.org/ticket/28374.
if ( version_compare( $GLOBALS['wp_version'], '4.7', '<' ) ) {
$GLOBALS['wp_roles']->reinit();
} else {
$GLOBALS['wp_roles'] = null; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
wp_roles();
}
echo esc_html( 'Installing WooCommerce...' . PHP_EOL );
*/
}
tests_add_filter( 'setup_theme', 'install_plugin_databases' );
tests_add_filter( 'setup_theme', 'install_necessary_plugins' );
// Start up the WP testing environment.
require "{$_tests_dir}/includes/bootstrap.php";
|