/** * Installs WordPress for the purpose of the unit-tests * */ error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); $configuration = unserialize($argv[1]); $multisite = !empty($argv[2]) ? $argv[2] : false; // require_once 'vendor/autoload.php'; require_once $configuration['autoload']; if (!empty($multisite)) { wpbrowser_include_patchwork(); Patchwork\redefine('is_multisite', function () { global $_is_multisite; if (empty($_is_multisite)) { return Patchwork\relay(); } return true; }); } if (!empty($configuration['activePlugins'])) { $activePlugins = $configuration['activePlugins']; } else { $activePlugins = []; } printf("\nConfiguration:\n\n%s\n\n", json_encode($configuration, JSON_PRETTY_PRINT)); foreach ($configuration['constants'] as $key => $value) { define($key, $value); } $table_prefix = WP_TESTS_TABLE_PREFIX; define('WP_INSTALLING', true);
/** * @param $functionName * @param $returnValue * @param $request * @param $methodName * @param $callLogger */ private static function replace_with_patchwork($functionName, ReturnValue $returnValue, ReplacementRequest $request, $methodName, LoggerInterface $callLogger) { $functionOrMethodName = $request->isMethod() ? $methodName : $functionName; $replacementFunction = self::getReplacementFunction($functionOrMethodName, $returnValue, $callLogger); if (function_exists('\\Patchwork\\replace')) { \Patchwork\redefine($functionName, $replacementFunction); } }