<?php
/**
 * PHPUnit bootstrap file.
 *
 * @package Activitypub_Event_Extensions
 */

$_tests_dir = getenv( 'WP_TESTS_DIR' );

if ( ! $_tests_dir ) {
	$_tests_dir = rtrim( sys_get_temp_dir(), '/\\' ) . '/wordpress-tests-lib';
}

// Forward custom PHPUnit Polyfills configuration to PHPUnit bootstrap file.
$_phpunit_polyfills_path = getenv( 'WP_TESTS_PHPUNIT_POLYFILLS_PATH' );
if ( false !== $_phpunit_polyfills_path ) {
	define( 'WP_TESTS_PHPUNIT_POLYFILLS_PATH', $_phpunit_polyfills_path );
}

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 and its integrations.
 */
function _manually_load_plugin() {
	$plugin_dir = ABSPATH . '/wp-content/plugins/';
	require_once $plugin_dir . 'activitypub/activitypub.php';
	$event_plugin = 'the-events-calendar';
	switch ( $event_plugin ) {
		case 'the-events-calendar':
			$plugin_file = 'the-events-calendar/the-events-calendar.php';
			require_once $plugin_dir . $plugin_file;
			$current   = get_option( 'active_plugins', array() );
			$current[] = $plugin_file;
			sort( $current );
			update_option( 'active_plugins', $current );
	}
	require dirname( __DIR__ ) . '/activitypub-event-extensions.php';
}

tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );

// Start up the WP testing environment.
require "{$_tests_dir}/includes/bootstrap.php";