diff --git a/bin/release b/bin/release index 01657293d..561672740 100755 --- a/bin/release +++ b/bin/release @@ -53,7 +53,7 @@ function args() 'checkDiff' => empty($options['no-diff-check']), 'checkUnpushed' => empty($options['no-unpushed-check']), 'dryRun' => isset($options['dry-run']), - 'releaseBranch' => $options['release-branch'] ?? 'master' + 'releaseBranch' => $options['release-branch'] ?? 'v3.5' ]; return static function ($key, $default = null) use ($map) { @@ -69,7 +69,7 @@ if (!in_array($args('releaseType'), ['major', 'minor', 'patch'], true)) { } $dryRun = $args('dryRun', false); -$releaseBranch = $args('releaseBranch', 'master'); +$releaseBranch = $args('releaseBranch', 'v3.5'); if (!$dryRun) { $currentGitBranch = trim(shell_exec('git rev-parse --abbrev-ref HEAD')); diff --git a/codeception.dist.yml b/codeception.dist.yml index 91b4ad5d5..b1602a48e 100644 --- a/codeception.dist.yml +++ b/codeception.dist.yml @@ -23,6 +23,7 @@ extensions: - "lucatume\\WPBrowser\\Extension\\BuiltInServerController" - "lucatume\\WPBrowser\\Extension\\ChromeDriverController" - "lucatume\\WPBrowser\\Extension\\DockerComposeController" + - "lucatume\\WPBrowser\\Extension\\IsolationSupport" config: "lucatume\\WPBrowser\\Extension\\BuiltInServerController": docroot: '%WORDPRESS_ROOT_DIR%' @@ -37,7 +38,14 @@ extensions: commands: - "lucatume\\WPBrowser\\Command\\RunOriginal" - "lucatume\\WPBrowser\\Command\\RunAll" + - "lucatume\\WPBrowser\\Command\\GenerateWPAjax" + - "lucatume\\WPBrowser\\Command\\GenerateWPCanonical" + - "lucatume\\WPBrowser\\Command\\GenerateWPRestApi" + - "lucatume\\WPBrowser\\Command\\GenerateWPRestController" + - "lucatume\\WPBrowser\\Command\\GenerateWPRestPostTypeController" - "lucatume\\WPBrowser\\Command\\GenerateWPUnit" + - "lucatume\\WPBrowser\\Command\\GenerateWPXML" + - "lucatume\\WPBrowser\\Command\\GenerateWPXMLRPC" - "lucatume\\WPBrowser\\Command\\ChromedriverUpdate" - "lucatume\\WPBrowser\\Command\\DevStart" - "lucatume\\WPBrowser\\Command\\DevStop" @@ -45,6 +53,8 @@ extensions: - "lucatume\\WPBrowser\\Command\\DevInfo" - "lucatume\\WPBrowser\\Command\\DbImport" - "lucatume\\WPBrowser\\Command\\DbExport" + - "lucatume\\WPBrowser\\Command\\MonkeyCacheClear" + - "lucatume\\WPBrowser\\Command\\MonkeyCachePath" snapshot: refresh: true version: "%WPBROWSER_VERSION%" diff --git a/includes/cli-server/router.php b/includes/cli-server/router.php index d7e85a3fe..f3627261a 100644 --- a/includes/cli-server/router.php +++ b/includes/cli-server/router.php @@ -4,40 +4,29 @@ * Extracted from the `wp-cli` project: https://wp-cli.org/ */ -if (function_exists('uopz_allow_exit')) { - uopz_allow_exit(true); -} - $root = $_SERVER['DOCUMENT_ROOT']; -$path = '/' . ltrim(parse_url(urldecode($_SERVER['REQUEST_URI']), PHP_URL_PATH), '/'); +$path = '/'. ltrim( parse_url( urldecode( $_SERVER['REQUEST_URI'] ),PHP_URL_PATH ), '/' ); define('DB_ENGINE', getenv('DB_ENGINE') ?: 'mysql'); -// The self-call will slow down the response handling and will not benefit the test environment. -global $wp_filter; -$wp_filter['do_mu_upgrade'][10][] = [ - 'accepted_args' => 0, - 'function' => static function () { - return false; - } -]; +if ( file_exists( $root.$path ) ) { -if (file_exists($root . $path)) { - // Enforces trailing slash, keeping links tidy in the admin - if (is_dir($root . $path) && substr_compare($path, '/', -strlen('/')) !== 0) { - header("Location: $path/"); - exit; - } + // Enforces trailing slash, keeping links tidy in the admin + if ( is_dir( $root.$path ) && substr_compare($path, '/', -strlen('/')) !== 0 ) { + header( "Location: $path/" ); + exit; + } - // Runs PHP file if it exists - if (strpos($path, '.php') !== false) { - chdir(dirname($root . $path)); - require_once $root . $path; - } else { - return false; - } + // Runs PHP file if it exists + if ( strpos($path, '.php') !== false ) { + chdir( dirname( $root.$path ) ); + require_once $root.$path; + } else { + return false; + } } else { - // Otherwise, run `index.php` - chdir($root); - require_once 'index.php'; + + // Otherwise, run `index.php` + chdir( $root ); + require_once 'index.php'; } diff --git a/includes/core-phpunit/includes/abstract-testcase.php b/includes/core-phpunit/includes/abstract-testcase.php index 4a195960a..713def177 100644 --- a/includes/core-phpunit/includes/abstract-testcase.php +++ b/includes/core-phpunit/includes/abstract-testcase.php @@ -417,6 +417,7 @@ public static function flush_cache() { 'site-options', 'site-queries', 'site-transient', + 'theme_files', 'rss', 'users', 'user-queries', diff --git a/includes/core-phpunit/includes/functions.php b/includes/core-phpunit/includes/functions.php index 81d4339db..c2976dba9 100644 --- a/includes/core-phpunit/includes/functions.php +++ b/includes/core-phpunit/includes/functions.php @@ -339,10 +339,26 @@ function _wp_rest_server_class_filter() { * @since 5.0.0 */ function _unhook_block_registration() { + // Block types. require __DIR__ . '/unregister-blocks-hooks.php'; remove_action( 'init', 'register_core_block_types_from_metadata' ); remove_action( 'init', 'register_block_core_legacy_widget' ); remove_action( 'init', 'register_block_core_widget_group' ); remove_action( 'init', 'register_core_block_types_from_metadata' ); + + // Block binding sources. + remove_action( 'init', '_register_block_bindings_pattern_overrides_source' ); + remove_action( 'init', '_register_block_bindings_post_meta_source' ); } tests_add_filter( 'init', '_unhook_block_registration', 1000 ); + +/** + * After the init action has been run once, trying to re-register font collections can cause + * errors. To avoid this, unhook the font registration functions. + * + * @since 6.5.0 + */ +function _unhook_font_registration() { + remove_action( 'init', '_wp_register_default_font_collections' ); +} +tests_add_filter( 'init', '_unhook_font_registration', 1000 ); diff --git a/includes/core-phpunit/includes/phpunit6/compat.php b/includes/core-phpunit/includes/phpunit6/compat.php index 103f2957e..7ae36cacb 100644 --- a/includes/core-phpunit/includes/phpunit6/compat.php +++ b/includes/core-phpunit/includes/phpunit6/compat.php @@ -1,19 +1,42 @@ =' ) ) { - - class_alias( 'PHPUnit\Framework\TestCase', 'PHPUnit_Framework_TestCase' ); - class_alias( 'PHPUnit\Framework\Exception', 'PHPUnit_Framework_Exception' ); - class_alias( 'PHPUnit\Framework\ExpectationFailedException', 'PHPUnit_Framework_ExpectationFailedException' ); - class_alias( 'PHPUnit\Framework\Error\Deprecated', 'PHPUnit_Framework_Error_Deprecated' ); - class_alias( 'PHPUnit\Framework\Error\Notice', 'PHPUnit_Framework_Error_Notice' ); - class_alias( 'PHPUnit\Framework\Error\Warning', 'PHPUnit_Framework_Error_Warning' ); - class_alias( 'PHPUnit\Framework\Test', 'PHPUnit_Framework_Test' ); - class_alias( 'PHPUnit\Framework\Warning', 'PHPUnit_Framework_Warning' ); - class_alias( 'PHPUnit\Framework\AssertionFailedError', 'PHPUnit_Framework_AssertionFailedError' ); - class_alias( 'PHPUnit\Framework\TestSuite', 'PHPUnit_Framework_TestSuite' ); - class_alias( 'PHPUnit\Framework\TestListener', 'PHPUnit_Framework_TestListener' ); - class_alias( 'PHPUnit\Util\GlobalState', 'PHPUnit_Util_GlobalState' ); + if (!class_exists('PHPUnit_Framework_TestCase')) { + class_alias('PHPUnit\Framework\TestCase', 'PHPUnit_Framework_TestCase'); + } + if (!class_exists('PHPUnit_Framework_Exception')) { + class_alias('PHPUnit\Framework\Exception', 'PHPUnit_Framework_Exception'); + } + if (!class_exists('PHPUnit_Framework_ExpectationFailedException')) { + class_alias('PHPUnit\Framework\ExpectationFailedException', 'PHPUnit_Framework_ExpectationFailedException'); + } + if (!class_exists('PHPUnit_Framework_Error_Deprecated')) { + class_alias('PHPUnit\Framework\Error\Deprecated', 'PHPUnit_Framework_Error_Deprecated'); + } + if (!class_exists('PHPUnit_Framework_Error_Notice')) { + class_alias('PHPUnit\Framework\Error\Notice', 'PHPUnit_Framework_Error_Notice'); + } + if (!class_exists('PHPUnit_Framework_Error_Warning')) { + class_alias('PHPUnit\Framework\Error\Warning', 'PHPUnit_Framework_Error_Warning'); + } + if (!class_exists('PHPUnit_Framework_Test')) { + class_alias('PHPUnit\Framework\Test', 'PHPUnit_Framework_Test'); + } + if (!class_exists('PHPUnit_Framework_Warning')) { + class_alias('PHPUnit\Framework\Warning', 'PHPUnit_Framework_Warning'); + } + if (!class_exists('PHPUnit_Framework_AssertionFailedError')) { + class_alias('PHPUnit\Framework\AssertionFailedError', 'PHPUnit_Framework_AssertionFailedError'); + } + if (!class_exists('PHPUnit_Framework_TestSuite')) { + class_alias('PHPUnit\Framework\TestSuite', 'PHPUnit_Framework_TestSuite'); + } + if (!class_exists('PHPUnit_Framework_TestListener')) { + class_alias('PHPUnit\Framework\TestListener', 'PHPUnit_Framework_TestListener'); + } + if (!class_exists('PHPUnit_Util_GlobalState')) { + class_alias('PHPUnit\Util\GlobalState', 'PHPUnit_Util_GlobalState'); + } if ( class_exists( 'PHPUnit\Util\Getopt' ) ) { class_alias( 'PHPUnit\Util\Getopt', 'PHPUnit_Util_Getopt' ); } diff --git a/includes/core-phpunit/includes/testcase-rest-api.php b/includes/core-phpunit/includes/testcase-rest-api.php index 670a2cd1f..144bcc93c 100644 --- a/includes/core-phpunit/includes/testcase-rest-api.php +++ b/includes/core-phpunit/includes/testcase-rest-api.php @@ -5,7 +5,7 @@ abstract class WPRestApiTestCase extends WPTestCase { protected function assertErrorResponse( $code, $response, $status = null ) { - if ( $response instanceof WP_REST_Response ) { + if ( $response instanceof \WP_REST_Response ) { $response = $response->as_error(); } diff --git a/includes/core-phpunit/includes/testcase-rest-post-type-controller.php b/includes/core-phpunit/includes/testcase-rest-post-type-controller.php index 847045331..82be74b7d 100644 --- a/includes/core-phpunit/includes/testcase-rest-post-type-controller.php +++ b/includes/core-phpunit/includes/testcase-rest-post-type-controller.php @@ -79,7 +79,16 @@ protected function check_post_data( $post, $data, $context, $links ) { $this->assertSame( get_page_template_slug( $post->ID ), $data['template'] ); } - if ( post_type_supports( $post->post_type, 'thumbnail' ) ) { + if ( + post_type_supports( $post->post_type, 'thumbnail' ) || + ( + 'attachment' === $post->post_type && + ( + post_type_supports( 'attachment:audio', 'thumbnail' ) || + post_type_supports( 'attachment:video', 'thumbnail' ) + ) + ) + ) { $this->assertSame( (int) get_post_thumbnail_id( $post->ID ), $data['featured_media'] ); } else { $this->assertArrayNotHasKey( 'featured_media', $data ); diff --git a/src/Adapters/Symfony/Component/Process/Process.php b/src/Adapters/Symfony/Component/Process/Process.php index c9bc6e399..5ec966a1d 100644 --- a/src/Adapters/Symfony/Component/Process/Process.php +++ b/src/Adapters/Symfony/Component/Process/Process.php @@ -2,12 +2,18 @@ namespace lucatume\WPBrowser\Adapters\Symfony\Component\Process; +use ReflectionMethod; +use ReflectionProperty; use Symfony\Component\Process\Exception\LogicException; use Symfony\Component\Process\Pipes\PipesInterface; use Symfony\Component\Process\Process as SymfonyProcess; class Process extends SymfonyProcess { + /** + * @var bool|null + */ + private static $inheritEnvironmentVariables; /** * @var bool */ @@ -27,8 +33,15 @@ public function __construct( ?float $timeout = 60, array $options = null ) { - if (method_exists($this, 'inheritEnvironmentVariables')) { - parent::__construct($command, $cwd, $env, $input, $timeout, $options); //@phpstan-ignore-line + parent::__construct($command, $cwd, $env, $input, $timeout, $options); //@phpstan-ignore-line + + if (self::$inheritEnvironmentVariables === null) { + self::$inheritEnvironmentVariables = method_exists($this, 'inheritEnvironmentVariables') + && strpos((string)(new ReflectionMethod($this, 'inheritEnvironmentVariables'))->getDocComment(), '@deprecated') === false; + } + + if (self::$inheritEnvironmentVariables) { + // @phpstan-ignore-next-line $this->inheritEnvironmentVariables(true); } @@ -45,7 +58,7 @@ public function getStartTime(): float throw new LogicException('Start time is only available after process start.'); } - $startTimeReflectionProperty = new \ReflectionProperty(SymfonyProcess::class, 'starttime'); + $startTimeReflectionProperty = new ReflectionProperty(SymfonyProcess::class, 'starttime'); $startTimeReflectionProperty->setAccessible(true); /** @var float $startTime */ $startTime = $startTimeReflectionProperty->getValue($this); @@ -56,7 +69,7 @@ public function getStartTime(): float public function __destruct() { if ($this->createNewConsole) { - $processPipesProperty = new \ReflectionProperty(SymfonyProcess::class, 'processPipes'); + $processPipesProperty = new ReflectionProperty(SymfonyProcess::class, 'processPipes'); $processPipesProperty->setAccessible(true); /** @var PipesInterface $processPipes */ $processPipes = $processPipesProperty->getValue($this); @@ -72,7 +85,7 @@ public function createNewConsole(): void { $this->createNewConsole = true; - $optionsReflectionProperty = new \ReflectionProperty(SymfonyProcess::class, 'options'); + $optionsReflectionProperty = new ReflectionProperty(SymfonyProcess::class, 'options'); $optionsReflectionProperty->setAccessible(true); $options = $optionsReflectionProperty->getValue($this); $options = is_array($options) ? $options : []; @@ -90,7 +103,7 @@ public static function __callStatic(string $name, array $arguments) if ($name === 'fromShellCommandline') { $command = array_shift($arguments); $process = new self([], ...$arguments); // @phpstan-ignore-line - $processCommandLineProperty = new \ReflectionProperty(SymfonyProcess::class, 'commandline'); + $processCommandLineProperty = new ReflectionProperty(SymfonyProcess::class, 'commandline'); $processCommandLineProperty->setAccessible(true); $processCommandLineProperty->setValue($process, $command); diff --git a/src/Command/GenerateWPAjax.php b/src/Command/GenerateWPAjax.php new file mode 100644 index 000000000..7a29bd212 --- /dev/null +++ b/src/Command/GenerateWPAjax.php @@ -0,0 +1,27 @@ +getSuiteConfig($suite); $wpLoaderConfigs = $this->getConfigsForModules($suiteConfig, $modules); - if (count($wpLoaderConfigs) === 0) { - $wpLoaderConfigs = $this->getConfigsForModules($globalConfig, $modules); - } $wploaderCorrectLoad = count($wpLoaderConfigs) && array_reduce($wpLoaderConfigs, function ($carry, $config) { @@ -90,12 +86,9 @@ public function execute(InputInterface $input, OutputInterface $output): int /** @var string $class */ $class = $input->getArgument('class'); - /** @var array{namespace: string, actor: string, path: string} $config */ - $config = $this->getSuiteConfig($suite); - - $filename = $this->buildPath($config['path'], $class); + $filename = $this->buildPath($suiteConfig['path'], $class); - $gen = $this->getGenerator($config, $class); + $gen = $this->getGenerator($suiteConfig, $class); if (!$this->createFile($filename, $gen->produce())) { $output->writeln("Test $filename already exists"); @@ -131,11 +124,11 @@ protected function buildPath(string $path, string $class): string * @param array{namespace: string, actor: string} $config The generator configuration. * @param string $class The class to generate the test case for. * - * @return WPUnitGenerator An instance of the test case code generator. + * @return AbstractGenerator An instance of the test case code generator. */ - protected function getGenerator(array $config, string $class): WPUnitGenerator + protected function getGenerator(array $config, string $class): AbstractGenerator { - return new WPUnitGenerator($config, $class, WPTestCase::class); + return new WPUnitGenerator($config, $class); } /** diff --git a/src/Command/GenerateWPXML.php b/src/Command/GenerateWPXML.php new file mode 100644 index 000000000..74a02c101 --- /dev/null +++ b/src/Command/GenerateWPXML.php @@ -0,0 +1,28 @@ +addOption( + 'porcelain', + 'p', + InputOption::VALUE_NONE, + 'Suppress output.' + ); + } + + public function execute(InputInterface $input, OutputInterface $output): int + { + $cacheDir = dirname(MonkeyPatch::getReplacementFileName(__FILE__, 'default')); + + if (!is_dir($cacheDir)) { + return 0; + } + + try { + FS::rrmdir($cacheDir) && FS::mkdirp($cacheDir); + } catch (\Throwable $t) { + $output->writeln("{$t->getMessage()}"); + return 1; + } + + if (!$input->hasOption('porcelain')) { + $output->writeln("Monkey patch cache cleared."); + } + + return 0; + } +} diff --git a/src/Command/MonkeyCachePath.php b/src/Command/MonkeyCachePath.php new file mode 100644 index 000000000..c3db8f1d4 --- /dev/null +++ b/src/Command/MonkeyCachePath.php @@ -0,0 +1,47 @@ +addOption( + 'porcelain', + 'p', + InputOption::VALUE_NONE, + 'Output only the path to the monkey patch directory.' + ); + } + + public function execute(InputInterface $input, OutputInterface $output): int + { + $path = MonkeyPatch::getCachePath(); + + if ($input->hasOption('porcelain')) { + $output->writeln($path); + } else { + $output->writeln("Monkey patch cache path: {$path}"); + } + + return 0; + } +} diff --git a/src/Events/Dispatcher.php b/src/Events/Dispatcher.php index 69bf902a6..360189f25 100644 --- a/src/Events/Dispatcher.php +++ b/src/Events/Dispatcher.php @@ -103,7 +103,7 @@ public static function dispatch(string $name, $origin = null, array $context = [ $firstParameterReflection = $dispatchMethodReflection->getParameters()[0] ?? null; $firstParameterType = $firstParameterReflection ? $firstParameterReflection->getType() : null; if ($firstParameterType instanceof \ReflectionNamedType && $firstParameterType->getName() === 'object') { - return $eventDispatcher->dispatch($name, $event); + return $eventDispatcher->dispatch($event, $name); } return $eventDispatcher->dispatch($name, $event); //@phpstan-ignore-line diff --git a/src/Extension/EventDispatcherBridge.php b/src/Extension/EventDispatcherBridge.php index 8cffb03f2..2c2ec6e4b 100644 --- a/src/Extension/EventDispatcherBridge.php +++ b/src/Extension/EventDispatcherBridge.php @@ -7,7 +7,6 @@ use Codeception\Exception\ExtensionException; use Codeception\Extension; use lucatume\WPBrowser\Events\Dispatcher; -use Psr\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface as SymfonyEventDispatcher; class EventDispatcherBridge extends Extension diff --git a/src/Extension/IsolationSupport.php b/src/Extension/IsolationSupport.php new file mode 100644 index 000000000..43f901c9c --- /dev/null +++ b/src/Extension/IsolationSupport.php @@ -0,0 +1,414 @@ + + */ + public static $events = [ + Events::SUITE_INIT => 'onSuiteInit', + Events::TEST_START => 'onTestStart', + Events::TEST_FAIL => 'onTestFail', + ]; + + /** + * @var string + */ + private $processCode = <<< PHP +\$dataName = \$this->getName(); +\$args = func_get_args(); +foreach(\$args as &\$arg){ + if(\$arg instanceof \Closure){ + \$arg = new \lucatume\WPBrowser\Opis\Closure\SerializableClosure(\$arg); + } +} +\$encodedDataSet = base64_encode(serialize(\$args)); +\$modules = \$this->getMetadata()->getCurrent('modules'); +\$wploderModuleNameInSuite = isset(\$modules['WPLoader']) ? 'WPLoader' : \lucatume\WPBrowser\Module\WPLoader::class; +\$command = [ + \lucatume\WPBrowser\Utils\Composer::binDir('codecept'), + \lucatume\WPBrowser\Command\RunOriginal::getCommandName(), + sprintf('%s:%s', codecept_relative_path('{{file}}'), '{{name}}'), + '--override', + "modules: config: {\$wploderModuleNameInSuite}: skipInstall: true", + '--ext', + 'IsolationSupport' +]; +\$process = new \lucatume\WPBrowser\Adapters\Symfony\Component\Process\Process( + \$command, + null, + [ + 'WPBROWSER_ISOLATED_RUN' => '1', + 'WPBROWSER_DATA_NAME' => \$dataName, + 'WPBROWSER_DATA_SET' => \$encodedDataSet, + 'WPBROWSER_TEST_FILE' => '{{file}}' + ] +); +\$exitCode = \$process->run(); + +if (\$exitCode !== 0) { + \$output = \$process->getOutput(); + preg_match( + '/WPBROWSER_ISOLATION_RESULT_START(.*)WPBROWSER_ISOLATION_RESULT_END/us', + \$output, + \$matches + ); + \$failure = \$matches[1] ?? null; + + if (\$failure === null) { + \$this->fail("Test failed: {\$process->getErrorOutput()}"); + } + \$serializableThrowable = unserialize(base64_decode(\$failure), ['allowed_classes' => true]); + throw(\$serializableThrowable->getThrowable()); +} +return; +PHP; + + /** + * @throws ExtensionException + */ + public function onSuiteInit(SuiteEvent $event): void + { + if ($this->isMainProcess()) { + $this->monkeyPatchTestCasesToRunInSeparateProcess($event); + return; + } + + $this->monkeyPatchTestMethodsToReplaceAnnotations(); + } + + private function isMainProcess(): bool + { + return empty($_SERVER['WPBROWSER_ISOLATED_RUN']); + } + + /** + * @throws ExtensionException + */ + protected function monkeyPatchTestCasesToRunInSeparateProcess(SuiteEvent $event): void + { + /** @var array{path: string} $settings */ + $settings = $event->getSettings(); + + /** @var Iterator $testFiles */ + $testFiles = new RegexIterator( + new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($settings['path'], FilesystemIterator::CURRENT_AS_PATHNAME) + ), + '/Test\.php$/' + ); + + foreach ($testFiles as $testFile) { + $patchedFile = $this->getPatchedFile($testFile); + + if ($patchedFile === false) { + continue; + } + + MonkeyPatch::redirectFileToFile( + $testFile, + $patchedFile, + false, + self::MAIN_PROCESS_PATCH_CONTEXT + ); + } + } + + /** + * @throws ExtensionException + * @return string|false + */ + private function getPatchedFile(string $testFile) + { + $patchedFile = MonkeyPatch::getReplacementFileName( + $testFile, + self::MAIN_PROCESS_PATCH_CONTEXT + ); + + if (is_file($patchedFile)) { + return $patchedFile; + } + + $fileContents = file_get_contents($testFile); + + if ($fileContents === false) { + throw new ExtensionException($this, "Failed to to open {$testFile} for reading."); + } + + if (strpos($fileContents, '@runTestsInSeparateProcesses') !== false + || strpos($fileContents, '#[RunTestsInSeparateProcesses') !== false + ) { + return $this->patchFileContentsToRunTestsInSeparateProcesses($testFile, $fileContents); + } + + if (strpos($fileContents, '@runInSeparateProcess') !== false + || strpos($fileContents, '#[RunInSeparateProcess') !== false + ) { + return $this->patchFileContentsToRunTestInSeparateProcess($testFile, $fileContents); + } + + return false; + } + + /** + * @throws ExtensionException + * @return string|false + */ + public function patchFileContentsToRunTestsInSeparateProcesses( + string $testFile, + string $fileContents + ) { + return $this->patchFileContentsToInjectSeparateProcessExecution( + '/\\s*?public\\s+function\\s+(?[^(]+)[^{]*?{/um', + $testFile, + $fileContents + ); + } + + /** + * @throws ExtensionException + * @return string|false + */ + private function patchFileContentsToInjectSeparateProcessExecution( + string $pattern, + string $testFile, + string $fileContents + ) { + // Starts with `test` OR contains the `@test` annotation OR contains the `#[Test]` attribute. + $patchedFileContents = preg_replace_callback( + $pattern, + function ($matches) use ($testFile, $fileContents) { + return $this->injectProcessCode($matches, $testFile, $fileContents); + }, + $fileContents + ); + + if ($patchedFileContents === $fileContents) { + return false; + } + + if ($patchedFileContents === null) { + throw new ExtensionException($this, "File contents patching failed for file {$testFile}."); + } + + $patchedFileContents = preg_replace( + [ + '/(^\\s*\\*\\s*)@runInSeparateProcess/um', + '/(^\\s+#\\[)RunInSeparateProcess([^]]*?])/um', + '/(^\\s*\\*\\s*)@runTestsInSeparateProcesses/um', + '/(^\\s+#\\[)RunTestsInSeparateProcesses([^]]*?])/um' + ], + [ + '$1@willRunInSeparateProcess', + '$1WillRunInSeparateProcess$2', + '$1@willRunTestsInSeparateProcesses', + '$1willRunTestsInSeparateProcesses$2' + ], + $patchedFileContents + ); + + $patchedFile = MonkeyPatch::getReplacementFileName( + $testFile, + self::MAIN_PROCESS_PATCH_CONTEXT + ); + + if (!file_put_contents($patchedFile, $patchedFileContents, LOCK_EX)) { + throw new ExtensionException($this, "Failed writing patch file {$patchedFile} for {$testFile}."); + } + + return $patchedFile; + } + + /** + * @param array $matches + */ + private function injectProcessCode(array $matches, string $testFile, string $fileContents): string + { + if (!$this->isTestMethod($matches['fname'], $fileContents)) { + return $matches[0]; + } + $compiledProcessCode = str_replace( + ['{{file}}', '{{name}}'], + [$testFile, $matches['fname']], + $this->processCode + ); + $processCode = preg_replace(["/[\r\n]*/", '~\\s{2,}~'], '', $compiledProcessCode); + return sprintf("%s %s", $matches[0], $processCode); + } + + private function isTestMethod(string $name, string $fileContents): bool + { + if (strncmp($name, 'test', strlen('test')) === 0) { + return true; + } + + $methodDocBlockLines = []; + $methodPos = strpos($fileContents, $name); + + if ($methodPos === false) { + return false; + } + + $input = substr($fileContents, 0, $methodPos); + // Drop the first line as it will be the `public function ...` one. + $lines = explode("\n", $input, -1); + $pattern = '/^(\\s*$|\\s*\\/\\*\\*|\\s*\\*|\\s*\\*\\s*\\/|\\s*#\\[[^]]+])/um'; + for ($i = count($lines) - 1; $i !== 0; $i--) { + $line = $lines [$i]; + if (!preg_match($pattern, $line)) { + break; + } + array_unshift($methodDocBlockLines, $line); + } + $methodDocBlock = implode("\n", $methodDocBlockLines); + return strpos($methodDocBlock, '#[Test]') !== false + || strpos($methodDocBlock, '@test') !== false; + } + + /** + * @throws ExtensionException + * @return string|false + */ + protected function patchFileContentsToRunTestInSeparateProcess( + string $testFile, + string $fileContents + ) { + $pattern = '/' + . '^\\s*' # Start of line and arbitrary number of spaces. + . '(' # Start OR group. + . '\\*\\s*@runInSeparateProcess' # @runInSeparateProcess annotation. + . '|' # OR ... + . '#\\[RunInSeparateProcess]' # [RunInSeparateProcess] attribute. + . ')' # Close OR group. + . '.*?public\\s+function\\s+(?[^(\\s]*?)\\([^{]*?{' # The function declaration until the `{`. + . '/usm'; # Multi-line pattern. + return $this->patchFileContentsToInjectSeparateProcessExecution( + $pattern, + $testFile, + $fileContents + ); + } + + /** + * @throws ExtensionException + */ + protected function monkeyPatchTestMethodsToReplaceAnnotations(): void + { + $testFile = $_SERVER['WPBROWSER_TEST_FILE']; + $fileContents = file_get_contents($testFile); + + if ($fileContents === false) { + throw new ExtensionException($this, "Failed to to open {$testFile} for reading."); + } + + $patchedTestFile = preg_replace( + [ + '/(^\\s*\\*\\s*)@dataProvider/um', + '/(^\\s+#\\[)DataProvider([^]]*?])/um', + '/(^\\s*\\*\\s*)@runInSeparateProcess/um', + '/(^\\s+#\\[)RunInSeparateProcess([^]]*?])/um', + '/(^\\s*\\*\\s*)@runTestsInSeparateProcesses/um', + '/(^\\s+#\\[)RunTestsInSeparateProcesses([^]]*?])/um' + ], + [ + '$1@dataProvidedBy', + '$1DataProvidedBy$2', + '$1@runningInSeparateProcess', + '$1RunningInSeparateProcess$2', + '$1@runningTestsInSeparateProcesses', + '$1RunningTestsInSeparateProcesses$2' + ], + $fileContents + ); + + if ($patchedTestFile === null) { + throw new ExtensionException($this, "File contents patching failed for file {$testFile}."); + } + + MonkeyPatch::redirectFileContents($testFile, $patchedTestFile, false, self::ISOLATED_PROCESS_PATCH_CONTEXT); + } + + public function onTestFail(FailEvent $failEvent): void + { + if ($this->isMainProcess()) { + return; + } + + $this->printSerializedFailure($failEvent); + } + + private function printSerializedFailure(FailEvent $failEvent): void + { + printf("\r\nWPBROWSER_ISOLATION_RESULT_START\n"); + $fail = $failEvent->getFail(); + $serializableThrowable = new SerializableThrowable($fail); + printf(base64_encode(serialize($serializableThrowable))); + printf("WPBROWSER_ISOLATION_RESULT_END\r\n"); + } + + /** + * @throws ReflectionException + */ + public function onTestStart(TestEvent $e): void + { + if ($this->isMainProcess()) { + return; + } + + $this->injectProvidedDataSet($e); + } + + /** + * @throws ReflectionException + */ + private function injectProvidedDataSet(TestEvent $e): void + { + $data = unserialize(base64_decode($_SERVER['WPBROWSER_DATA_SET']), ['allowed_classes' => true]); + + if (!is_array($data)) { + throw new \RuntimeException('Test method data must be an array, but it is ' . gettype($data)); + } + + foreach ($data as &$dataElement) { + if ($dataElement instanceof SerializableClosure) { + $dataElement = $dataElement->getClosure(); + } + } + unset($dataElement); + + $dataName = $_SERVER['WPBROWSER_DATA_NAME']; + + /** @var TestCaseWrapper|TestCase $testCaseWrapper */ + $testCaseWrapper = $e->getTest(); + $testCase = $testCaseWrapper instanceof TestCase ? $testCaseWrapper : $testCaseWrapper->getTestCase(); + Property::setPrivateProperties($testCase, [ + 'data' => $data, + 'dataName' => $dataName + ]); + } +} diff --git a/src/Lib/Generator/AbstractGenerator.php b/src/Lib/Generator/AbstractGenerator.php new file mode 100644 index 000000000..45c758d8a --- /dev/null +++ b/src/Lib/Generator/AbstractGenerator.php @@ -0,0 +1,78 @@ +settings = $settings; + $this->name = $this->removeSuffix($name, 'Test'); + } + + public function produce(): string + { + $ns = $this->getNamespaceHeader($this->settings['namespace'] . '\\' . $this->name); + + return (new Template($this->template))->place('namespace', $ns) + ->place('name', $this->getShortClassName($this->name)) + ->place('tester', $this->getTester()) + ->produce(); + } + + protected function getTester(): string + { + if (isset($this->settings['actor'])) { + $actor = $this->settings['actor']; + } + + try { + /** @var array{actor_suffix: string} $config */ + $config = Configuration::config(); + $propertyName = isset($config['actor_suffix']) ? + lcfirst($config['actor_suffix']) + : ''; + } catch (Exception $exception) { + $propertyName = ''; + } + + if (!isset($actor)) { + return ''; + } + + $testerFrag = <<post->create(); + + add_post_meta( \$post, 'testkey', 'initial_value' ); + + // Become an administrator. + \$this->_setRole( 'administrator' ); + + \$_POST = [ + '_ajax_nonce-add-meta' => wp_create_nonce('add-meta'), + 'post_id' => \$post, + 'key' => 'testkey', + 'value' => 'updated_value', + ]; + + // Make the request. + try { + \$this->_handleAjax( 'add-meta' ); + } catch ( WPAjaxDieContinueException \$e ) { + unset( \$e ); + } + + \$this->assertSame( 'updated_value', get_post_meta( \$post, 'testkey', true ) ); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPCanonical.php b/src/Lib/Generator/WPCanonical.php new file mode 100644 index 000000000..22f29ed14 --- /dev/null +++ b/src/Lib/Generator/WPCanonical.php @@ -0,0 +1,57 @@ +add_rule( + 'ccr/(.+?)/sort/(asc|desc)', + 'index.php?category_name=\$matches[1]&order=\$matches[2]', + 'top' + ); + \$wp_rewrite->flush_rules(); + + \$this->assertCanonical( + '/ccr/test-category/sort/asc/', + [ + 'url' => '/ccr/test-category/sort/asc/', + 'qv' => [ + 'category_name' => 'test-category', + 'order' => 'asc', + ], + ] + ); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPRestApi.php b/src/Lib/Generator/WPRestApi.php new file mode 100644 index 000000000..d829ef4ce --- /dev/null +++ b/src/Lib/Generator/WPRestApi.php @@ -0,0 +1,80 @@ +user->create( [ 'role' => 'author' ] ); + + // Create and become editor. + \$editor_id = static::factory()->user->create( [ 'role' => 'editor' ] ); + wp_set_current_user( \$editor_id ); + + // Create 2 posts, one from the editor and one from the author. + \$post_1_id = static::factory()->post->create( [ 'post_author' => \$editor_id ] ); + \$post_2_id = static::factory()->post->create( [ 'post_author' => \$author_id ] ); + + // Get all posts in the database. + \$request = new \WP_REST_Request( 'GET', '/wp/v2/posts' ); + \$request->set_param( 'per_page', 10 ); + \$response = rest_get_server()->dispatch( \$request ); + \$this->assertSame( 200, \$response->get_status() ); + \$this->assertCount( 2, \$response->get_data() ); + + // Exclude editor and author. + \$request = new \WP_REST_Request( 'GET', '/wp/v2/posts' ); + \$request->set_param( 'per_page', 10 ); + \$request->set_param( 'author_exclude', [ \$editor_id, \$author_id ] ); + \$response = rest_get_server()->dispatch( \$request ); + \$this->assertSame( 200, \$response->get_status() ); + \$data = \$response->get_data(); + \$this->assertCount( 0, \$data ); + + // Exclude editor. + \$request = new \WP_REST_Request( 'GET', '/wp/v2/posts' ); + \$request->set_param( 'per_page', 10 ); + \$request->set_param( 'author_exclude', \$editor_id ); + \$response = rest_get_server()->dispatch( \$request ); + \$this->assertSame( 200, \$response->get_status() ); + \$data = \$response->get_data(); + \$this->assertCount( 1, \$data ); + \$this->assertNotEquals( \$editor_id, \$data[0]['author'] ); + + // Invalid 'author_exclude' should error. + \$request = new \WP_REST_Request( 'GET', '/wp/v2/posts' ); + \$request->set_param( 'author_exclude', 'invalid' ); + \$response = rest_get_server()->dispatch( \$request ); + \$this->assertErrorResponse( 'rest_invalid_param', \$response, 400 ); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPRestController.php b/src/Lib/Generator/WPRestController.php new file mode 100644 index 000000000..5086f84e3 --- /dev/null +++ b/src/Lib/Generator/WPRestController.php @@ -0,0 +1,468 @@ +controller !== null) { + // Do not register the controller more than once. + return; + } + + \$controller = new class extends \WP_REST_Controller { + /** @var array> \$data */ + private \$data = [ + 'minion' => [ + 'label' => 'Minion', + 'count' => 89, + ], + 'villain' => [ + 'label' => 'Villain', + 'count' => 23, + ], + 'bbeg' => [ + 'label' => 'Big Bad Evil Guy', + 'count' => 1, + ], + ]; + + public function anyone(): bool + { + return true; + } + + public function adminsOnly(): bool + { + return current_user_can('manage_options'); + } + + public function greet(\WP_REST_Request \$request): \WP_REST_Response + { + \$response = new \WP_REST_Response(); + \$name = \$request->get_param('name'); + \$greet = sprintf('Hello %s!', \$name); + \$response->set_data(\$greet); + + return \$response; + } + + public function get_item_schema(): array + { + return [ + '\$schema' => 'http://json-schema.org/draft-04/schema#', + 'title' => 'adversary', + 'type' => 'object', + 'properties' => [ + 'label' => [ + 'description' => 'The adversary display name', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'count' => [ + 'description' => 'The adversary current count', + 'type' => 'integer', + 'context' => ['edit'], + ] + ] + ]; + } + + public function prepare_item_for_response(\$item, \$request): array + { + \$context = \$request->get_param('context'); + \$item['count'] = (int)\$item['count']; + + if (\$context === 'edit') { + return \$item; + } + + return array_diff_key(\$item, ['count' => true]); + } + + public function getAdversary(\WP_REST_Request \$request): \WP_REST_Response + { + \$name = \$request->get_param('name'); + \$item = \$this->data[\$name] ?? null; + + if (\$item === null) { + return new \WP_REST_Response([], 404); + } + + \$item = \$this->prepare_item_for_response(\$item, \$request); + + return new \WP_REST_Response(\$item); + } + + public function getAdversaries(\WP_REST_Request \$request): \WP_REST_Response + { + \$data = \$this->data; + + foreach (\$data as &\$item) { + \$item = \$this->prepare_item_for_response(\$item, \$request); + } + + return new \WP_REST_Response(\$data); + } + + public function upsertAdversary(\WP_REST_Request \$request): \WP_REST_Response + { + \$name = (string)\$request->get_param('name'); + \$update = isset(\$this->data[\$name]); + \$label = (string)\$request->get_param('label') ?: \$this->data[\$name]['label']; + \$count = (string)\$request->get_param('count') ?: \$this->data[\$name]['count']; + + \$item = compact('label', 'count'); + \$this->data[\$name] = \$item; + + return new \WP_REST_Response(\$item, \$update ? 200 : 201); + } + + public function deleteAdversary(\WP_REST_Request \$request): \WP_REST_Response + { + \$name = \$request->get_param('name'); + + \$item = \$this->data[\$name] ?? null; + + if (\$item === null) { + return new \WP_REST_Response('NOT FOUND', 404); + } + + \$this->data = array_diff_key(\$this->data, [\$name => true]); + + return new \WP_REST_Response(\$item, 200); + } + }; + + \$this->controller = \$controller; + + register_rest_route( + 'example', + 'greet/(?P[\w-]+)', + [ + 'methods' => 'GET', + 'callback' => [\$controller, 'greet'], + 'permission_callback' => [\$controller, 'anyone'], + ] + ); + + register_rest_route( + 'example', + 'adversaries', + [ + 'methods' => 'GET', + 'callback' => [\$controller, 'getAdversaries'], + 'permission_callback' => [\$controller, 'anyone'], + 'schema' => [\$controller, 'get_item_schema'], + ] + ); + + register_rest_route( + 'example', + 'adversaries/(?[\w-]*)', + [ + 'methods' => 'GET', + 'callback' => [\$controller, 'getAdversary'], + 'permission_callback' => [\$controller, 'anyone'], + 'schema' => [\$controller, 'get_item_schema'], + ] + ); + + register_rest_route( + 'example', + 'adversary', + [ + 'methods' => ['POST', 'PUT'], + 'callback' => [\$controller, 'upsertAdversary'], + 'permission_callback' => [\$controller, 'adminsOnly'], + 'schema' => [\$controller, 'get_item_schema'], + ] + ); + + register_rest_route( + 'example', + 'adversary', + [ + 'methods' => 'DELETE', + 'callback' => [\$controller, 'deleteAdversary'], + 'permission_callback' => [\$controller, 'adminsOnly'], + 'schema' => [\$controller, 'get_item_schema'], + ] + ); + } + + public function tearDown(): void + { + // Your tear down methods here. + + // Then... + parent::tearDown(); + } + + public function test_register_routes() + { + \$routes = rest_get_server()->get_routes(); + \$this->assertArrayHasKey('/example', \$routes); + \$this->assertCount(1, \$routes['/example']); + \$this->assertArrayHasKey('/example/greet/(?P[\w-]+)', \$routes); + \$this->assertCount(1, \$routes['/example/greet/(?P[\w-]+)']); + \$this->assertArrayHasKey('/example/adversaries', \$routes); + \$this->assertCount(1, \$routes['/example/adversaries']); + } + + public function test_context_param() + { + \$request = new \WP_REST_Request('GET', '/example/adversaries'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals( + [ + 'minion' => ['label' => 'Minion'], + 'villain' => ['label' => 'Villain'], + 'bbeg' => ['label' => 'Big Bad Evil Guy'], + ], + \$response->data + ); + + \$request = new \WP_REST_Request('GET', '/example/adversaries'); + \$request->set_param('context', 'view'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals( + [ + 'minion' => ['label' => 'Minion'], + 'villain' => ['label' => 'Villain'], + 'bbeg' => ['label' => 'Big Bad Evil Guy'], + ], + \$response->data + ); + + \$request = new \WP_REST_Request('GET', '/example/adversaries'); + \$request->set_param('context', 'edit'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals( + [ + 'minion' => [ + 'label' => 'Minion', + 'count' => 89, + ], + 'villain' => [ + 'label' => 'Villain', + 'count' => 23, + ], + 'bbeg' => [ + 'label' => 'Big Bad Evil Guy', + 'count' => 1, + ], + ], + \$response->data + ); + } + + public function test_get_items() + { + \$request = new \WP_REST_Request('GET', '/example/adversaries'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals( + [ + 'minion' => ['label' => 'Minion'], + 'villain' => ['label' => 'Villain'], + 'bbeg' => ['label' => 'Big Bad Evil Guy'], + ], + \$response->data + ); + } + + public function test_get_item() + { + \$request = new \WP_REST_Request('GET', '/example/adversaries/bbeg'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(['label' => 'Big Bad Evil Guy'], \$response->data); + + \$request = new \WP_REST_Request('GET', '/example/adversaries/bbeg'); + \$request->set_param('context', 'edit'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(['label' => 'Big Bad Evil Guy', 'count' => 1], \$response->data); + + \$request = new \WP_REST_Request('GET', '/example/adversaries/troll'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals([], \$response->data); + \$this->assertEquals(404, \$response->status); + } + + public function test_create_item() + { + \$request = new \WP_REST_Request('POST', '/example/adversary'); + \$request->set_param('name', 'goblin'); + \$request->set_param('label', 'Goblin'); + \$request->set_param('count', 1000); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(401, \$response->status); + + // Become admin. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(201, \$response->status); + \$this->assertEquals([ + 'label' => 'Goblin', + 'count' => 1000, + ], \$response->data); + } + + public function test_update_item() + { + // Become admin. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + // Create a new item to operate on. + \$request = new \WP_REST_Request('POST', '/example/adversary'); + \$request->set_param('name', 'troll'); + \$request->set_param('label', 'Troll'); + \$request->set_param('count', 3); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(201, \$response->status); + \$this->assertEquals([ + 'label' => 'Troll', + 'count' => 3, + ], \$response->data); + + // Update the item. + \$request = new \WP_REST_Request('PUT', '/example/adversary'); + \$request->set_param('name', 'troll'); + \$request->set_param('count', 2); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'label' => 'Troll', + 'count' => 2, + ], \$response->data); + } + + public function test_delete_item() + { + // Become admin. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + // Create a new item to operate on. + \$request = new \WP_REST_Request('POST', '/example/adversary'); + \$request->set_param('name', 'ghast'); + \$request->set_param('label', 'Ghast'); + \$request->set_param('count', 5); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(201, \$response->status); + + // Delete a non-existing adversary. + \$request = new \WP_REST_Request('DELETE', '/example/adversary'); + \$request->set_param('name', 'beholder'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(404, \$response->status); + + // Delete the item. + \$request = new \WP_REST_Request('DELETE', '/example/adversary'); + \$request->set_param('name', 'ghast'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'label' => 'Ghast', + 'count' => 5, + ], \$response->data); + } + + public function test_prepare_item() + { + \$item = [ + 'label' => 'Ghoul', + 'count' => '123', + ]; + + \$request = new \WP_REST_Request('GET', '/example/adversaries/ghoul'); + + \$this->assertEquals( + [ + 'label' => 'Ghoul', + ], + \$this->controller->prepare_item_for_response(\$item, \$request) + ); + + \$request->set_param('context', 'edit'); + + \$this->assertEquals( + [ + 'label' => 'Ghoul', + 'count' => 123 + ], + \$this->controller->prepare_item_for_response(\$item, \$request) + ); + } + + public function test_get_item_schema() + { + \$controller = \$this->controller; + + \$this->assertEquals([ + '\$schema' => 'http://json-schema.org/draft-04/schema#', + 'title' => 'adversary', + 'type' => 'object', + 'properties' => [ + 'label' => [ + 'description' => 'The adversary display name', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'count' => [ + 'description' => 'The adversary current count', + 'type' => 'integer', + 'context' => ['edit'], + ] + ] + ], \$controller->get_item_schema()); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPRestPostTypeController.php b/src/Lib/Generator/WPRestPostTypeController.php new file mode 100644 index 000000000..73a9139ef --- /dev/null +++ b/src/Lib/Generator/WPRestPostTypeController.php @@ -0,0 +1,495 @@ +controller !== null) { + // Do not register the controller more than once. + return; + } + + register_post_type('book'); + + \$controller = new class('book') extends WP_REST_Posts_Controller { + public function anyone(): bool + { + return true; + } + + public function adminsOnly(): bool + { + return current_user_can('manage_options'); + } + + public function get_item_schema() + { + return [ + '\$schema' => 'http://json-schema.org/draft-04/schema#', + 'title' => 'book', + 'type' => 'object', + 'properties' => [ + 'title' => [ + 'description' => 'The book title', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'year' => [ + 'description' => 'The year the book was published', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'copies' => [ + 'description' => 'The number of book copies available', + 'type' => 'integer', + 'context' => ['edit'], + ] + ] + ]; + } + + public function prepare_item_for_response(\$item, \$request) + { + \$post = get_post(\$item); + \$data = [ + 'title' => \$post->post_title, + 'year' => (int)get_post_meta(\$post->ID, 'year', true), + ]; + + if (\$request->get_param('context') === 'edit') { + \$data['copies'] = get_post_meta(\$post->ID, 'copies', true); + } + + return \$data; + } + + + public function getBook(\WP_REST_Request \$request): \WP_REST_Response + { + \$book = get_post(\$request->get_param('id')); + + if (!\$book instanceof \WP_Post || get_post_type(\$book->ID) !== 'book') { + return new \WP_REST_Response(null, 404); + } + + return new \WP_REST_Response(\$this->prepare_item_for_response(\$book, \$request), 200); + } + + public function createBook(\WP_REST_Request \$request): \WP_REST_Response + { + \$prepareRequest = clone \$request; + \$prepareRequest->set_param('context', 'edit'); + \$postarr = [ + 'post_type' => 'book', + 'post_title' => \$request->get_param('title'), + 'meta_input' => [ + 'year' => \$request->get_param('year'), + 'copies' => \$request->get_param('copies') + ] + ]; + + \$inserted = wp_insert_post(\$postarr); + + if (\$inserted instanceof \WP_Error) { + return new \WP_REST_Response(\$inserted->get_error_message(), 500); + } + + return new \WP_REST_Response(\$this->prepare_item_for_response(\$inserted, \$prepareRequest), 201); + } + + public function updateBook(\WP_REST_Request \$request): \WP_REST_Response + { + \$book = get_post(\$request->get_param('id')); + \$prepareRequest = clone \$request; + \$prepareRequest->set_param('context', 'edit'); + + if (!\$book instanceof \WP_Post || get_post_type(\$book->ID) !== 'book') { + return new \WP_REST_Response(null, 404); + } + + \$postarr = [ + 'ID' => \$book->ID, + 'post_title' => \$request->get_param('title') ?: \$book->post_title, + 'meta_input' => [ + 'year' => \$request->get_param('year') ?: get_post_meta(\$book->ID, 'year', true), + 'copies' => \$request->get_param('copies') ?: get_post_meta(\$book->ID, 'copies', true) + ] + ]; + + if ((\$update = wp_update_post(\$postarr)) instanceof \WP_Error) { + return new \WP_REST_Response(\$update->get_error_message(), 500); + } + + return new \WP_REST_Response(\$this->prepare_item_for_response(\$book, \$prepareRequest), 200); + } + + public function deleteBook(\WP_REST_Request \$request): \WP_REST_Response + { + \$book = get_post(\$request->get_param('id')); + \$prepareRequest = clone \$request; + \$prepareRequest->set_param('context', 'edit'); + + if (!\$book instanceof \WP_Post || get_post_type(\$book->ID) !== 'book') { + return new \WP_REST_Response(null, 404); + } + + \$prepared = \$this->prepare_item_for_response(\$book, \$prepareRequest); + + if (!wp_delete_post(\$book->ID)) { + return new \WP_REST_Response(null, 500); + } + + return new \WP_REST_Response(\$prepared, 200); + } + + public function getBooks(\WP_REST_Request \$request): \WP_REST_Response + { + \$posts = get_posts(['post_type' => 'book']); + + \$books = array_map( + function (\$post) use (\$request) { + return \$this->prepare_item_for_response(\$post, \$request); + }, + \$posts + ); + + return new \WP_REST_Response(\$books, 200); + } + }; + + register_rest_route('example', '/books', [ + 'methods' => 'GET', + 'callback' => [\$controller, 'getBooks'], + 'permission_callback' => [\$controller, 'anyone'], + 'schema' => \$controller->get_item_schema() + ]); + + register_rest_route('example', '/book/(?P\d+)', [ + 'methods' => 'GET', + 'callback' => [\$controller, 'getBook'], + 'permission_callback' => [\$controller, 'anyone'], + 'schema' => \$controller->get_item_schema() + ]); + + register_rest_route('example', '/book', [ + 'methods' => 'POST', + 'callback' => [\$controller, 'createBook'], + 'permission_callback' => [\$controller, 'adminsOnly'], + 'schema' => \$controller->get_item_schema() + ]); + + register_rest_route('example', '/book/(?P\d+)', [ + 'methods' => 'PUT', + 'callback' => [\$controller, 'updateBook'], + 'permission_callback' => [\$controller, 'adminsOnly'], + 'schema' => \$controller->get_item_schema() + ]); + + register_rest_route('example', '/book/(?P\d+)', [ + 'methods' => 'DELETE', + 'callback' => [\$controller, 'deleteBook'], + 'permission_callback' => [\$controller, 'adminsOnly'], + 'schema' => \$controller->get_item_schema() + ]); + + \$this->controller = \$controller; + } + + public function tearDown(): void + { + // Your tear down methods here. + + // Then... + parent::tearDown(); + } + + public function test_register_routes() + { + \$routes = rest_get_server()->get_routes(); + \$this->assertArrayHasKey('/example', \$routes); + \$this->assertCount(1, \$routes['/example']); + \$this->assertArrayHasKey('/example/books', \$routes); + \$this->assertCount(1, \$routes['/example/books']); + \$this->assertArrayHasKey('/example/book', \$routes); + \$this->assertCount(1, \$routes['/example/book']); + \$this->assertArrayHasKey('/example/book/(?P\d+)', \$routes); + \$this->assertCount(3, \$routes['/example/book/(?P\d+)']); + } + + public function test_context_param() + { + \$book = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + + \$request = new \WP_REST_Request('GET', "/example/book/{\$book->ID}"); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865 + ], \$response->data); + + \$request->set_param('context', 'edit'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ], \$response->data); + } + + public function test_get_items() + { + \$request = new \WP_REST_Request('GET', '/example/books'); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([], \$response->data); + + \$book1 = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + \$book2 = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Through the Looking-Glass', + 'meta_input' => [ + 'year' => 1871, + 'copies' => 10 + ] + ]); + + \$request = new \WP_REST_Request('GET', "/example/books"); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEqualSets([ + [ + 'title' => 'Alice in Wonderland', + 'year' => 1865 + ], + [ + 'title' => 'Through the Looking-Glass', + 'year' => 1871 + ] + ], \$response->data); + } + + public function test_get_item() + { + \$book = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + + \$request = new \WP_REST_Request('GET', "/example/book/2389"); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(404, \$response->status); + + \$request = new \WP_REST_Request('GET', "/example/book/{\$book->ID}"); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865 + ], \$response->data); + } + + public function test_create_item() + { + \$request = new \WP_REST_Request('POST', "/example/book"); + \$request->set_body_params([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ]); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(401, \$response->status); + + // Become administrator. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(201, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ], \$response->data); + } + + public function test_update_item() + { + \$book = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + + \$request = new \WP_REST_Request('PUT', "/example/book/{\$book->ID}"); + \$request->set_param('copies', 10); + \$request->set_param('year', 1867); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(401, \$response->status); + + // Become administrator. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1867, + 'copies' => 10 + ], \$response->data); + } + + public function test_delete_item() + { + \$book = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + + \$request = new \WP_REST_Request('DELETE', "/example/book/{\$book->ID}"); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(401, \$response->status); + + // Become administrator. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + \$response = rest_get_server()->dispatch(\$request); + + \$this->assertEquals(200, \$response->status); + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ], \$response->data); + } + + public function test_prepare_item() + { + \$book = static::factory()->post->create_and_get([ + 'post_type' => 'book', + 'post_title' => 'Alice in Wonderland', + 'meta_input' => [ + 'year' => 1865, + 'copies' => 13 + ] + ]); + + \$request = new \WP_REST_Request('GET', "/example/book/{\$book->ID}"); + + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865 + ], \$this->controller->prepare_item_for_response(\$book, \$request)); + + \$request->set_param('context', 'edit'); + + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ], \$this->controller->prepare_item_for_response(\$book, \$request)); + + // Become administrator. + wp_set_current_user(static::factory()->user->create(['role' => 'administrator'])); + + \$this->assertEquals([ + 'title' => 'Alice in Wonderland', + 'year' => 1865, + 'copies' => 13 + ], \$this->controller->prepare_item_for_response(\$book, \$request)); + } + + public function test_get_item_schema() + { + \$this->assertEquals([ + '\$schema' => 'http://json-schema.org/draft-04/schema#', + 'title' => 'book', + 'type' => 'object', + 'properties' => [ + 'title' => [ + 'description' => 'The book title', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'year' => [ + 'description' => 'The year the book was published', + 'type' => 'string', + 'context' => ['view', 'edit'], + ], + 'copies' => [ + 'description' => 'The number of book copies available', + 'type' => 'integer', + 'context' => ['edit'], + ] + ] + ], \$this->controller->get_item_schema()); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPUnit.php b/src/Lib/Generator/WPUnit.php index d1a930212..d2388addd 100644 --- a/src/Lib/Generator/WPUnit.php +++ b/src/Lib/Generator/WPUnit.php @@ -19,31 +19,15 @@ * * @package Codeception\Lib\Generator */ -class WPUnit +class WPUnit extends AbstractGenerator { - /** - * @var string - */ - protected $baseClass; - use Classname; - use Namespaces; - - /** - * @var array{namespace: string, actor: string} - */ - private $settings; - /** - * @var string - */ - private $name; - /** * @var string */ protected $template = <<assertInstanceOf(\\WP_Post::class, \$post); } } - -EOF; - - /** - * WPUnit constructor. - * - * @param array{namespace: string, actor: string} $settings The template settings. - * @param string $name The template name. - * @param string $baseClass The base class. - */ - public function __construct(array $settings, string $name, string $baseClass) - { - $this->baseClass = $baseClass; - $this->settings = $settings; - $this->name = $this->removeSuffix($name, 'Test'); - } - - /** - * Produces and return the rendered template. - * - * @return string The rendered template. - */ - public function produce(): string - { - $ns = $this->getNamespaceHeader($this->settings['namespace'] . '\\' . $this->name); - - return (new Template($this->template))->place('namespace', $ns) - ->place('baseClass', '\\' . ltrim($this->baseClass, '\\')) - ->place('name', $this->getShortClassName($this->name)) - ->place('tester', $this->getTester()) - ->produce(); - } - - /** - * Returns the current tester name. - * - * @return string The current tester name. - */ - protected function getTester(): string - { - if (isset($this->settings['actor'])) { - $actor = $this->settings['actor']; - } - - try { - /** @var array{actor_suffix: string} $config */ - $config = Configuration::config(); - $propertyName = isset($config['actor_suffix']) ? - lcfirst($config['actor_suffix']) - : ''; - } catch (Exception $exception) { - $propertyName = ''; - } - - if (!isset($actor)) { - return ''; - } - - $testerFrag = << 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-posts-post-1.xml', + ], + [ + 'loc' => 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-posts-page-1.xml', + ], + [ + 'loc' => 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-taxonomies-category-1.xml', + ], + [ + 'loc' => 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-taxonomies-post_tag-1.xml', + ], + [ + 'loc' => 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-users-1.xml', + ], + ]; + + \$renderer = new \WP_Sitemaps_Renderer(); + + \$actual = \$renderer->get_sitemap_index_xml( \$entries ); + \$expected = '' . + '' . + '' . + 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-posts-post-1.xml' . + 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-posts-page-1.xml' . + 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-taxonomies-category-1.xml' . + 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-taxonomies-post_tag-1.xml' . + 'http://' . \WP_TESTS_DOMAIN . '/wp-sitemap-users-1.xml' . + ''; + + \$this->assertXMLEquals( \$expected, \$actual, 'Sitemap index markup incorrect.' ); + } +} + +EOF; +} diff --git a/src/Lib/Generator/WPXMLRPC.php b/src/Lib/Generator/WPXMLRPC.php new file mode 100644 index 000000000..b6cb9a592 --- /dev/null +++ b/src/Lib/Generator/WPXMLRPC.php @@ -0,0 +1,78 @@ +modify( '-1 hour' ); + \$datetimeutc = \$datetime->setTimezone( new DateTimeZone( 'UTC' ) ); + + \$this->make_user_by_role( 'administrator' ); + \$post_id = static::factory()->post->create(); + + \$comment_data = [ + 'comment_post_ID' => \$post_id, + 'comment_author' => 'Test commenter', + 'comment_author_url' => 'http://example.com/', + 'comment_author_email' => 'example@example.com', + 'comment_content' => 'Hello, world!', + 'comment_approved' => '1', + ]; + \$comment_id = wp_insert_comment( \$comment_data ); + + \$result = \$this->myxmlrpcserver->wp_editComment( + [ + 1, + 'administrator', + 'administrator', + \$comment_id, + [ + 'date_created_gmt' => new IXR_Date( \$datetimeutc->format( 'Ymd\TH:i:s' ) ), + ], + ] + ); + + \$fetched_comment = get_comment( \$comment_id ); + + \$this->assertTrue( \$result ); + \$this->assertSame( + \$datetime->format( 'Y-m-d H:i:s' ), + \$fetched_comment->comment_date, + 'UTC time into wp_editComment' + ); + } +} + +EOF; +} diff --git a/src/Module/WPBrowser.php b/src/Module/WPBrowser.php index b89d8ed79..68527981b 100644 --- a/src/Module/WPBrowser.php +++ b/src/Module/WPBrowser.php @@ -51,8 +51,8 @@ public function grabCookiesWithPattern(string $cookiePattern): ?array if (!$cookies) { return null; } - $matchingCookies = array_filter($cookies, static function ($cookie) use ($cookiePattern) { - return preg_match($cookiePattern, $cookie->getName()); + $matchingCookies = array_filter($cookies, static function (Cookie $cookie) use ($cookiePattern): bool { + return (bool)preg_match($cookiePattern, $cookie->getName()); }); $cookieList = array_map(static function ($cookie): string { return sprintf('{"%s": "%s"}', $cookie->getName(), $cookie->getValue()); diff --git a/src/Module/WPLoader.php b/src/Module/WPLoader.php index d54a9bc26..cddee6989 100644 --- a/src/Module/WPLoader.php +++ b/src/Module/WPLoader.php @@ -159,9 +159,9 @@ class WPLoader extends Module 'WP_PLUGIN_DIR' => null, 'WPMU_PLUGIN_DIR' => null, 'dump' => '', - 'backupGlobals' => true, + 'backupGlobals' => false, 'backupGlobalsExcludeList' => [], - 'backupStaticAttributes' => true, + 'backupStaticAttributes' => false, 'backupStaticAttributesExcludeList' => [], 'skipInstall' => false ]; @@ -500,9 +500,9 @@ public function _initialize(): void $this->checkInstallationToLoadOnly(); $this->debug('The WordPress installation will be loaded after all other modules have been initialized.'); - Dispatcher::addListener(Events::SUITE_BEFORE, function (): void { + Dispatcher::addListener(Events::SUITE_INIT, function (): void { $this->loadWordPress(true); - }, -100); + }); return; } diff --git a/src/Module/WPLoader/Filters.php b/src/Module/WPLoader/Filters.php new file mode 100644 index 000000000..336bd88a2 --- /dev/null +++ b/src/Module/WPLoader/Filters.php @@ -0,0 +1,205 @@ +> + */ + protected $toRemove = []; + + /** + * The list of filters to add. + * + * @var array> + */ + protected $toAdd = []; + + /** + * Filters constructor. + * + * @param array> $filters The filters to manage. + */ + public function __construct(array $filters = []) + { + $this->toRemove = !empty($filters['remove']) + ? array_map([$this, 'normalizeFilter'], $filters['remove']) + : []; + $this->toAdd = !empty($filters['add']) + ? array_map([$this, 'normalizeFilter'], $filters['add']) + : []; + } + + /** + * Formats and normalizes a list of filters. + * + * @param array> $filters The list of filters to format. + * + * @return array{remove: mixed[][], add: mixed[][]} The formatted list of filters. + */ + public static function format(array $filters): array + { + $instance = new self($filters); + + return $instance->toArray(); + } + + /** + * Returns the current state in array format. + * + * @return array{remove: mixed[][], add: mixed[][]} A map of the filters to remove and to add.j:w + */ + public function toArray(): array + { + return [ + 'remove' => $this->toRemove, + 'add' => $this->toAdd, + ]; + } + + /** + * Returns the list of filters to remove. + * + * @return FiltersGroup The group of filters to remove. + */ + public function toRemove(): FiltersGroup + { + return new FiltersGroup($this->toRemove, $this->removeWith, $this->addWith); + } + + /** + * Sets the callable that should be used to remove the filters. + * + * @param callable $removeWith The callable that should be used to remove the filters. + */ + public function removeWith(callable $removeWith): void + { + $this->removeWith = $removeWith; + } + + /** + * Sets the callable that should be used to remove the filters. + * + * @param callable $addWith The callable that should be used to add the filters. + */ + public function addWith(callable $addWith): void + { + $this->addWith = $addWith; + } + + /** + * Returns the list of filters to add. + * + * @return FiltersGroup The group of filters to add. + */ + public function toAdd(): FiltersGroup + { + return new FiltersGroup($this->toAdd, $this->removeWith, $this->addWith); + } + + /** + * Normalizes a filter contents. + * + * @param array $filter The current filter state. + * + * @return array The normalized filter. + * + * @throws ModuleException If the filters information is not complete or not coherent. + */ + protected function normalizeFilter(array $filter): array + { + if (count($filter) < 2) { + throw new ModuleException( + __CLASS__, + 'Callback ' . json_encode($filter) . ' does not specify enough data for a filter: ' + . 'required at least tag and callback.' + ); + } + + if (empty($filter[0]) || !is_string($filter[0])) { + throw new ModuleException(__CLASS__, 'Callback ' . json_encode($filter) . ' does not specify a valid tag.'); + } + + if (count($filter) === 2) { + $filter[] = $this->defaultPriority; + } + + if (count($filter) === 3) { + $filter[] = $this->defaultAcceptedArguments; + } + + if (count($filter) > 4) { + throw new ModuleException( + __CLASS__, + 'Callback ' . json_encode($filter) . ' contains too many arguments; ' + .'only tag, callback, priority and accepted arguments are supported' + ); + } + + + $callbackFunc = $filter[1]; + + if (empty($callbackFunc) || !(is_string($callbackFunc) || is_array($callbackFunc))) { + throw new ModuleException( + __CLASS__, + 'Callback for ' . json_encode($filter) . ' is empty or the wrong type: ' + .'it should be a string (a function name) or an array of two strings (class name and a static method).' + ); + } + + if (is_array($callbackFunc)) { + if (count($callbackFunc) !== 2 + || count(array_filter($callbackFunc, 'is_string')) !== 2 + ) { + throw new ModuleException( + __CLASS__, + 'Callback for ' . json_encode($filter) . ' is weird: ' + .'it should be a string (function name) or an array of two strings (class name and static method).' + ); + } + } + + return $filter; + } +} diff --git a/src/Module/WPLoader/FiltersGroup.php b/src/Module/WPLoader/FiltersGroup.php new file mode 100644 index 000000000..3e7628a5f --- /dev/null +++ b/src/Module/WPLoader/FiltersGroup.php @@ -0,0 +1,76 @@ +> + */ + protected $filters = []; + /** + * The callback that will be used to remove filters. + * + * @var callable + */ + protected $removeCallback; + + /** + * The callback that will be used to add filters. + * + * @var callable + */ + protected $addCallback; + + /** + * FiltersGroup constructor. + * + * @param array> $filters The list of filters to manage. + * @param callable|null $removeWith The callable that should be used to remove the filters or `null` to use + * the default one. + * @param callable|null $addWith The callable that should be used to add the filters, or `null` to use the + */ + public function __construct( + array $filters = [], + callable $removeWith = null, + callable $addWith = null + ) { + /** + * An array detailing each filter callback, priority and arguments. + */ + $this->filters = $filters; + $this->removeCallback = $removeWith ?? 'remove_filter'; + $this->addCallback = $addWith ?? 'add_filter'; + } + + /** + * Removes the filters of the group. + */ + public function remove(): void + { + foreach ($this->filters as $filter) { + $filterWithoutAcceptedArguments = array_slice($filter, 0, 3); + call_user_func_array($this->removeCallback, $filterWithoutAcceptedArguments); + } + } + + /** + * Adds the filters of the group. + */ + public function add(): void + { + foreach ($this->filters as $filter) { + call_user_func_array($this->addCallback, $filter); + } + } +} diff --git a/src/Module/WPQueries.php b/src/Module/WPQueries.php index 76f6a4cb2..814363099 100644 --- a/src/Module/WPQueries.php +++ b/src/Module/WPQueries.php @@ -70,7 +70,10 @@ public function __construct( */ public function _initialize(): void { - if (!$this->moduleContainer->hasModule(WPLoader::class)) { + if (!( + $this->moduleContainer->hasModule(WPLoader::class) + || $this->moduleContainer->hasModule('WPLoader') + )) { throw new ModuleException( __CLASS__, 'The WPLoader module is required for WPQueries to work.' diff --git a/src/Module/WPWebDriver.php b/src/Module/WPWebDriver.php index 7e214bc0d..5fc50418f 100644 --- a/src/Module/WPWebDriver.php +++ b/src/Module/WPWebDriver.php @@ -136,14 +136,14 @@ public function grabCookiesWithPattern(string $cookiePattern): ?array return null; } - /** @var array $cookies */ + /** @var Cookie[] $cookies */ $cookies = $this->webDriver->manage()->getCookies(); if (!$cookies) { return null; } - $matchingCookies = array_filter($cookies, static function ($cookie) use ($cookiePattern) { - return preg_match($cookiePattern, $cookie->getName()); + $matchingCookies = array_filter($cookies, static function ($cookie) use ($cookiePattern): bool { + return (bool)preg_match($cookiePattern, $cookie->getName()); }); $cookieList = array_map(static function ($cookie): string { return sprintf('{"%s": "%s"}', $cookie->getName(), $cookie->getValue()); diff --git a/src/MonkeyPatch/FileStreamWrapper.php b/src/MonkeyPatch/FileStreamWrapper.php index 681086e2b..b1ab1fced 100644 --- a/src/MonkeyPatch/FileStreamWrapper.php +++ b/src/MonkeyPatch/FileStreamWrapper.php @@ -15,7 +15,7 @@ class FileStreamWrapper protected static $isRegistered = false; /** - * @var array + * @var array */ private static $fileToPatcherMap = []; @@ -25,14 +25,18 @@ class FileStreamWrapper public $context; /** - * @var resource + * @var resource|null */ - private $fileResource; - - public static function setPatcherForFile(string $file, PatcherInterface $patcher): void - { + private $fileResource = null; + + public static function setPatcherForFile( + string $file, + PatcherInterface $patcher, + bool $redirectOpenedPath = true, + string $context = null + ): void { $fromFilePath = FS::realpath($file) ?: $file; - self::$fileToPatcherMap[$fromFilePath] = $patcher; + self::$fileToPatcherMap[$fromFilePath] = [$patcher, $redirectOpenedPath, $context ?? '']; self::register(); } @@ -120,6 +124,10 @@ public function stream_read(int $count) */ public function stream_cast() { + if (!is_resource($this->fileResource)) { + throw new MonkeyPatchingException('Cannot cast a non-resource to a resource.'); + } + return $this->fileResource; } @@ -132,6 +140,10 @@ public function stream_lock(int $operation): bool public function stream_set_option(int $option, int $arg1, int $arg2): bool { + if (!is_resource($this->fileResource)) { + return false; + } + switch ($option) { case STREAM_OPTION_BLOCKING: return stream_set_blocking($this->fileResource, (bool)$arg1); @@ -150,6 +162,10 @@ public function stream_set_option(int $option, int $arg1, int $arg2): bool */ public function stream_write(string $data): int { + if (!is_resource($this->fileResource)) { + throw new MonkeyPatchingException('Cannot write to a non-resource.'); + } + $written = fwrite($this->fileResource, $data); if ($written === false) { @@ -164,7 +180,7 @@ public function stream_write(string $data): int */ public function stream_tell(): int { - $pos = ftell($this->fileResource); + $pos = is_resource($this->fileResource) ? ftell($this->fileResource) : false; if ($pos === false) { throw new MonkeyPatchingException('Could not get the position of the file pointer.'); @@ -175,16 +191,28 @@ public function stream_tell(): int public function stream_close(): bool { + if (!is_resource($this->fileResource)) { + return false; + } + return fclose($this->fileResource); } public function stream_eof(): bool { + if (!is_resource($this->fileResource)) { + return true; + } + return feof($this->fileResource); } public function stream_seek(int $offset, int $whence = SEEK_SET): bool { + if (!is_resource($this->fileResource)) { + return false; + } + return fseek($this->fileResource, $offset, $whence) === 0; } @@ -236,6 +264,10 @@ public function rmdir(string $path, int $options = null): bool */ public function stream_stat() { + if (!is_resource($this->fileResource)) { + return false; + } + $stat = fstat($this->fileResource); if ($stat === false) { @@ -308,6 +340,10 @@ public function unlink(string $path): bool public function stream_truncate(int $newSize): bool { + if (!is_resource($this->fileResource)) { + return false; + } + return ftruncate($this->fileResource, max(0, $newSize)); } @@ -367,7 +403,7 @@ public function url_stat(string $path, int $flags) if (!(file_exists($path))) { if (isset(self::$fileToPatcherMap[$path])) { // Ask the patcher to provide stats. - $stat = self::$fileToPatcherMap[$path]->stat($path); + $stat = self::$fileToPatcherMap[$path][0]->stat($path); } else { $stat = false; } @@ -439,7 +475,7 @@ public function dir_opendir(string $path, int $options): bool static::register(); - return $this->fileResource !== null; + return true; } /** @@ -447,7 +483,7 @@ public function dir_opendir(string $path, int $options): bool */ private function patchFile(string $absPath): string { - $patcher = self::$fileToPatcherMap[$absPath]; + [$patcher, $redirectOpenedPath, $context] = self::$fileToPatcherMap[$absPath]; self::unregister(); // Do not use `is_file` here as it will use the cached stats: this check should be real. $fileContents = file_exists($absPath) ? file_get_contents($absPath) : ''; @@ -457,7 +493,7 @@ private function patchFile(string $absPath): string throw new MonkeyPatchingException("Could not read file $absPath contents."); } - [$fileContents, $openedPath] = $patcher->patch($fileContents, $absPath); + [$fileContents, $openedPath] = $patcher->patch($fileContents, $absPath, $context); if ($this->context !== null) { $fileResource = fopen('php://temp', 'rb+', false, $this->context); @@ -477,7 +513,7 @@ private function patchFile(string $absPath): string rewind($this->fileResource); - return $openedPath; + return $redirectOpenedPath ? $openedPath : $absPath; } /** diff --git a/src/MonkeyPatch/Patchers/FileContentsReplacementPatcher.php b/src/MonkeyPatch/Patchers/FileContentsReplacementPatcher.php index 14cbd49dc..194b72b17 100644 --- a/src/MonkeyPatch/Patchers/FileContentsReplacementPatcher.php +++ b/src/MonkeyPatch/Patchers/FileContentsReplacementPatcher.php @@ -4,6 +4,7 @@ use lucatume\WPBrowser\MonkeyPatch\MonkeyPatchingException; use lucatume\WPBrowser\Utils\Filesystem as FS; +use lucatume\WPBrowser\Utils\MonkeyPatch; class FileContentsReplacementPatcher implements PatcherInterface { @@ -19,10 +20,9 @@ public function __construct(string $fileContents) /** * @throws MonkeyPatchingException */ - public function patch(string $fileContents, string $pathname): array + public function patch(string $fileContents, string $pathname, string $context = null): array { - $hash = md5($pathname . $fileContents) . '_' . md5($this->fileContents); - $replacementFile = FS::getTmpSubDir('_monkeypatch') . '/' . $hash . '.php'; + $replacementFile = MonkeyPatch::getReplacementFileName($pathname, $context ?? $this->fileContents); $isFile = is_file($replacementFile); if (!$isFile && !file_put_contents($replacementFile, $this->fileContents, LOCK_EX)) { diff --git a/src/MonkeyPatch/Patchers/FileReplacementPatcher.php b/src/MonkeyPatch/Patchers/FileReplacementPatcher.php index 70ecc3c91..1eb2d55a1 100644 --- a/src/MonkeyPatch/Patchers/FileReplacementPatcher.php +++ b/src/MonkeyPatch/Patchers/FileReplacementPatcher.php @@ -18,7 +18,7 @@ public function __construct(string $replacementFile) /** * @throws MonkeyPatchingException */ - public function patch(string $fileContents, string $pathname): array + public function patch(string $fileContents, string $pathname, string $context = null): array { $replacementFileContents = file_get_contents($this->replacementFile); diff --git a/src/MonkeyPatch/Patchers/PatcherInterface.php b/src/MonkeyPatch/Patchers/PatcherInterface.php index 2b3ec579a..c33608e8a 100644 --- a/src/MonkeyPatch/Patchers/PatcherInterface.php +++ b/src/MonkeyPatch/Patchers/PatcherInterface.php @@ -7,7 +7,7 @@ interface PatcherInterface /** * @return array{string, string} */ - public function patch(string $fileContents, string $pathname): array; + public function patch(string $fileContents, string $pathname, string $context = null): array; /** * @return array{ diff --git a/src/Project/ContentProject.php b/src/Project/ContentProject.php index 7fcc2875e..2b093cb4d 100644 --- a/src/Project/ContentProject.php +++ b/src/Project/ContentProject.php @@ -36,7 +36,7 @@ abstract public function getActivationString(): string; abstract protected function symlinkProjectInContentDir(string $wpRootDir): void; - abstract protected function activate(string $wpRootDir, int $serverLocalhostPort): bool; + abstract public function activate(string $wpRootDir, int $serverLocalhostPort): bool; /** * @return array|false diff --git a/src/Project/PluginProject.php b/src/Project/PluginProject.php index 0fa33cca4..d2fcf388b 100644 --- a/src/Project/PluginProject.php +++ b/src/Project/PluginProject.php @@ -118,7 +118,7 @@ public function getPluginFilePathName(): string * @throws Throwable * @throws ProcessException */ - protected function activate(string $wpRootDir, int $serverLocalhostPort): bool + public function activate(string $wpRootDir, int $serverLocalhostPort): bool { $codeExec = new CodeExecutionFactory($wpRootDir, 'localhost:' . $serverLocalhostPort); $pluginString = basename(dirname($this->pluginFile)) . '/' . basename($this->pluginFile); @@ -127,6 +127,7 @@ protected function activate(string $wpRootDir, int $serverLocalhostPort): bool if ($activationResult instanceof Throwable) { $message = $activationResult->getMessage(); $this->sayWarning('Could not activate plugin: ' . $message); + $this->say($activationResult->getFile() . ":" . $activationResult->getLine()); $this->say('This might happen because the plugin has unmet dependencies; wp-browser configuration ' . 'will continue, but you will need to manually activate the plugin and update the dump in ' . 'tests/Support/Data/dump.sql.'); diff --git a/src/Project/SiteProject.php b/src/Project/SiteProject.php index 3d1b06682..bf2d39a4b 100644 --- a/src/Project/SiteProject.php +++ b/src/Project/SiteProject.php @@ -49,20 +49,6 @@ public function __construct(InputInterface $input, OutputInterface $output, stri try { $this->installation = Installation::findInDir($this->workDir, false); $installationState = $this->installation->getState(); - - if ($installationState instanceof EmptyDir) { - throw new RuntimeException( - 'The WordPress installation directory is empty' - ); - } - - if ($installationState instanceof Scaffolded) { - throw new RuntimeException( - 'The WordPress installation directory is scaffolded, but not configured.' - ); - } - - $this->testEnvironment = new TestEnvironment(); } catch (Throwable $t) { throw new RuntimeException( 'Failed to initialize the WordPress installation: ' . lcfirst($t->getMessage()), @@ -70,6 +56,23 @@ public function __construct(InputInterface $input, OutputInterface $output, stri $t ); } + + $suggest = "Make sure you're initializing wp-browser at the root of your site project,". + " and that the directory contains the WordPress files and a wp-config.php file."; + + if ($installationState instanceof EmptyDir) { + throw new RuntimeException( + "The WordPress installation directory is empty.\n{$suggest}" + ); + } + + if ($installationState instanceof Scaffolded) { + throw new RuntimeException( + "The WordPress installation directory is scaffolded, but not configured.\n{$suggest}" + ); + } + + $this->testEnvironment = new TestEnvironment(); } public function getType(): string diff --git a/src/Project/ThemeProject.php b/src/Project/ThemeProject.php index 589324530..fa3fd7819 100644 --- a/src/Project/ThemeProject.php +++ b/src/Project/ThemeProject.php @@ -108,14 +108,14 @@ protected function symlinkProjectInContentDir(string $wpRootDir): void * @throws Throwable * @throws ProcessException */ - protected function activate(string $wpRootDir, int $serverLocalhostPort): bool + public function activate(string $wpRootDir, int $serverLocalhostPort): bool { $codeExec = new CodeExecutionFactory($wpRootDir, 'localhost:' . $serverLocalhostPort); $switchTheme = $codeExec->toSwitchTheme($this->basename, false); $activationResult = Loop::executeClosure($switchTheme)->getReturnValue(); if ($activationResult instanceof Throwable) { $message = $activationResult->getMessage(); - $this->sayWarning('Could not activate plugin: ' . $message); + $this->sayWarning('Could not activate theme: ' . $message); $this->say('This might happen because the theme has unmet dependencies; wp-browser configuration ' . 'will continue, but you will need to manually activate the theme and update the dump in ' . 'tests/Support/Data/dump.sql.'); diff --git a/src/RemovedInPHPUnitVersion10.php b/src/RemovedInPHPUnitVersion10.php new file mode 100644 index 000000000..fa9dd469c --- /dev/null +++ b/src/RemovedInPHPUnitVersion10.php @@ -0,0 +1,7 @@ + [ 'enabled' => array_merge([RunFailed::class], array_keys($testEnv->extensionsEnabled)), 'config' => $testEnv->extensionsEnabled, - 'commands' => array_merge([RunOriginal::class, RunAll::class, GenerateWPUnit::class, DbExport::class, DbImport::class], $testEnv->customCommands) + 'commands' => array_merge([RunOriginal::class, RunAll::class, GenerateWPUnit::class, DbExport::class, DbImport::class, MonkeyCachePath::class, MonkeyCacheClear::class], $testEnv->customCommands) ] ]; diff --git a/src/TestCase/WPTestCase.php b/src/TestCase/WPTestCase.php index fa4240831..64e1aaa98 100644 --- a/src/TestCase/WPTestCase.php +++ b/src/TestCase/WPTestCase.php @@ -2,18 +2,92 @@ namespace lucatume\WPBrowser\TestCase; +use AllowDynamicProperties; +use Codeception\Actor; +use Codeception\Exception\ModuleException; +use Codeception\Module; use Codeception\Test\Unit; -use lucatume\WPBrowser\Module\WPLoader; use lucatume\WPBrowser\Module\WPQueries; use ReflectionException; use ReflectionMethod; +use ReflectionProperty; use WP_UnitTestCase; +/** + * @method static commit_transaction() + * @method static delete_user($user_id) + * @method static factory() + * @method static flush_cache() + * @method static forceTicket($ticket) + * @method static get_called_class() + * @method static set_up_before_class() + * @method static tear_down_after_class() + * @method static text_array_to_dataprovider($input) + * @method static touch($file) + * @method _create_temporary_tables($query) + * @method _drop_temporary_tables($query) + * @method _make_attachment($upload, $parent_post_id = 0) + * @method assertDiscardWhitespace($expected, $actual, $message = '') + * @method assertEqualFields($actual, $fields, $message = '') + * @method assertEqualSets($expected, $actual, $message = '') + * @method assertEqualSetsWithIndex($expected, $actual, $message = '') + * @method assertEqualsIgnoreEOL($expected, $actual, $message = '') + * @method assertIXRError($actual, $message = '') + * @method assertNonEmptyMultidimensionalArray($actual, $message = '') + * @method assertNotIXRError($actual, $message = '') + * @method assertNotWPError($actual, $message = '') + * @method assertQueryTrue($prop) + * @method assertSameIgnoreEOL($expected, $actual, $message = '') + * @method assertSameSets($expected, $actual, $message = '') + * @method assertSameSetsWithIndex($expected, $actual, $message = '') + * @method assertWPError($actual, $message = '') + * @method assert_post_conditions() + * @method clean_up_global_scope() + * @method delete_folders($path) + * @method deprecated_function_run($function_name, $replacement, $version, $message = '') + * @method doing_it_wrong_run($function_name, $message, $version) + * @method expectDeprecated() + * @method expectedDeprecated() + * @method files_in_dir($dir) + * @method get_wp_die_handler($handler) + * @method go_to($url) + * @method knownPluginBug($ticket_id) + * @method knownUTBug($ticket_id) + * @method knownWPBug($ticket_id) + * @method remove_added_uploads() + * @method rmdir($path) + * @method scan_user_uploads() + * @method scandir($dir) + * @method setExpectedDeprecated($deprecated) + * @method setExpectedException($exception, $message = '', $code = NULL) + * @method setExpectedIncorrectUsage($doing_it_wrong) + * @method set_permalink_structure($structure = '') + * @method set_up() + * @method skipOnAutomatedBranches() + * @method skipTestOnTimeout($response) + * @method skipWithMultisite() + * @method skipWithoutMultisite() + * @method start_transaction() + * @method tear_down() + * @method temp_filename() + * @method unlink($file) + * @method unregister_all_meta_keys() + * @method void setCalledClass(string $class) + * @method wp_die_handler($message, $title, $args) + */ class WPTestCase extends Unit { + use WPTestCasePHPUnitMethodsTrait; + /** + * @var string[]|null + */ + private $coreTestCaseProperties = null; + /** + * @var Actor + */ + protected $tester; // Backup, and reset, globals between tests. - protected $backupGlobals = true; - + protected $backupGlobals = false; // A list of globals that should not be backed up: they are handled by the Core test case. protected $backupGlobalsBlacklist = [ 'wpdb', @@ -48,10 +122,8 @@ class WPTestCase extends Unit '_wpTestsBackupStaticAttributes', '_wpTestsBackupStaticAttributesExcludeList' ]; - // Backup, and reset, static class attributes between tests. - protected $backupStaticAttributes = true; - + protected $backupStaticAttributes = false; // A list of static attributes that should not be backed up as they are wired to explode when doing so. protected $backupStaticAttributesBlacklist = [ // WordPress @@ -64,9 +136,17 @@ class WPTestCase extends Unit // WooCommerce. 'WooCommerce' => ['_instance'], 'Automattic\WooCommerce\Internal\Admin\FeaturePlugin' => ['instance'], - 'Automattic\WooCommerce\RestApi\Server' => ['instance'] + 'Automattic\WooCommerce\RestApi\Server' => ['instance'], + 'WC_Payment_Gateways' => ['_instance'], ]; - + /** + * @var float|null + */ + private $requestTimeFloat; + /** + * @var int|null + */ + private $requestTime; /** * @param array $data */ @@ -77,7 +157,7 @@ public function __construct(?string $name = null, array $data = [], $dataName = $_wpTestsBackupStaticAttributes, $_wpTestsBackupStaticAttributesExcludeList; - $backupGlobalsReflectionProperty = new \ReflectionProperty($this, 'backupGlobals'); + $backupGlobalsReflectionProperty = new ReflectionProperty($this, 'backupGlobals'); $backupGlobalsReflectionProperty->setAccessible(true); $isDefinedInThis = $backupGlobalsReflectionProperty->getDeclaringClass()->getName() !== WPTestCase::class; if (!$isDefinedInThis && isset($_wpTestsBackupGlobals) && is_bool($_wpTestsBackupGlobals)) { @@ -85,11 +165,11 @@ public function __construct(?string $name = null, array $data = [], $dataName = } if (property_exists($this, 'backupGlobalsExcludeList')) { - $backupGlobalsExcludeListReflectionProperty = new \ReflectionProperty($this, 'backupGlobalsExcludeList'); + $backupGlobalsExcludeListReflectionProperty = new ReflectionProperty($this, 'backupGlobalsExcludeList'); $backupGlobalsExcludeListReflectionProperty->setAccessible(true); } else { // Older versions of PHPUnit. - $backupGlobalsExcludeListReflectionProperty = new \ReflectionProperty($this, 'backupGlobalsBlacklist'); + $backupGlobalsExcludeListReflectionProperty = new ReflectionProperty($this, 'backupGlobalsBlacklist'); $backupGlobalsExcludeListReflectionProperty->setAccessible(true); } $backupGlobalsExcludeListReflectionProperty->setAccessible(true); @@ -105,7 +185,7 @@ public function __construct(?string $name = null, array $data = [], $dataName = ); } - $backupStaticAttributesReflectionProperty = new \ReflectionProperty($this, 'backupStaticAttributes'); + $backupStaticAttributesReflectionProperty = new ReflectionProperty($this, 'backupStaticAttributes'); $backupStaticAttributesReflectionProperty->setAccessible(true); $isDefinedInThis = $backupStaticAttributesReflectionProperty->getDeclaringClass() ->getName() !== WPTestCase::class; @@ -114,14 +194,14 @@ public function __construct(?string $name = null, array $data = [], $dataName = } if (property_exists($this, 'backupStaticAttributesExcludeList')) { - $backupStaticAttributesExcludeListReflectionProperty = new \ReflectionProperty( + $backupStaticAttributesExcludeListReflectionProperty = new ReflectionProperty( $this, 'backupStaticAttributesExcludeList' ); $backupStaticAttributesExcludeListReflectionProperty->setAccessible(true); } else { // Older versions of PHPUnit. - $backupStaticAttributesExcludeListReflectionProperty = new \ReflectionProperty( + $backupStaticAttributesExcludeListReflectionProperty = new ReflectionProperty( $this, 'backupStaticAttributesBlacklist' ); @@ -142,89 +222,62 @@ public function __construct(?string $name = null, array $data = [], $dataName = parent::__construct($name, $data, $dataName); } - /** * @var array */ protected $additionalGlobalsBackup = []; - /** * @var array */ private static $coreTestCaseMap = []; - private static function getCoreTestCase(): WP_UnitTestCase { if (isset(self::$coreTestCaseMap[static::class])) { return self::$coreTestCaseMap[static::class]; } $coreTestCase = new class extends WP_UnitTestCase { + use WPUnitTestCasePolyfillsTrait; }; $coreTestCase->setCalledClass(static::class); self::$coreTestCaseMap[static::class] = $coreTestCase; return $coreTestCase; } - - public static function setUpBeforeClass(): void - { - parent::setUpBeforeClass(); - self::getCoreTestCase()->set_up_before_class(); - } - protected function backupAdditionalGlobals(): void { - foreach ([ - '_wp_registered_theme_features' - ] as $key - ) { - if (isset($GLOBALS[$key])) { - $this->additionalGlobalsBackup = $GLOBALS[$key]; - } + if (isset($GLOBALS['_wp_registered_theme_features'])) { + $this->additionalGlobalsBackup = $GLOBALS['_wp_registered_theme_features']; + } + if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { + $this->requestTimeFloat = $_SERVER['REQUEST_TIME_FLOAT']; + } + if (isset($_SERVER['REQUEST_TIME'])) { + $this->requestTime = $_SERVER['REQUEST_TIME']; } } - - protected function setUp(): void - { - parent::setUp(); - $this->set_up(); //@phpstan-ignore-line magic __call - $this->backupAdditionalGlobals(); - } - protected function restoreAdditionalGlobals(): void { foreach ($this->additionalGlobalsBackup as $key => $value) { $GLOBALS[$key] = $value; unset($this->additionalGlobalsBackup[$key]); } + if (isset($this->requestTimeFloat)) { + $_SERVER['REQUEST_TIME_FLOAT'] = $this->requestTimeFloat; + } + if (isset($this->requestTime)) { + $_SERVER['REQUEST_TIME'] = $this->requestTime; + } } - - protected function tearDown(): void - { - $this->restoreAdditionalGlobals(); - $this->tear_down(); //@phpstan-ignore-line magic __call - parent::tearDown(); - } - - - public static function tearDownAfterClass(): void - { - static::tear_down_after_class(); //@phpstan-ignore-line magic __callStatic - parent::tearDownAfterClass(); - } - protected function assertPostConditions(): void { parent::assertPostConditions(); - static::assert_post_conditions(); //@phpstan-ignore-line magic __callStatic + static::assert_post_conditions(); } - public function __destruct() { // Allow garbage collection of the core test case instance. unset(self::$coreTestCaseMap[static::class]); } - /** * @param array $arguments * @throws ReflectionException @@ -232,12 +285,22 @@ public function __destruct() */ public static function __callStatic(string $name, array $arguments) { + switch ($name) { + case '_setUpBeforeClass': + $name = 'setUpBeforeClass'; + break; + case '_tearDownAfterClass': + $name = 'tearDownAfterClass'; + break; + default: + $name = $name; + break; + } $coreTestCase = self::getCoreTestCase(); $reflectionMethod = new ReflectionMethod($coreTestCase, $name); $reflectionMethod->setAccessible(true); return $reflectionMethod->invokeArgs(null, $arguments); } - /** * @param array $arguments * @throws ReflectionException @@ -250,11 +313,82 @@ public function __call(string $name, array $arguments) $reflectionMethod->setAccessible(true); return $reflectionMethod->invokeArgs($coreTestCase, $arguments); } - + /** + * @throws ModuleException If the WPQueries module is not available under any name. + */ protected function queries(): WPQueries { + /** @var array $modules */ + $modules = $this->getMetadata()->getCurrent('modules'); + $module = isset($modules['WPQueries']) ? 'WPQueries' : WPQueries::class; /** @var WPQueries $wpQueries */ - $wpQueries = $this->getModule(WPQueries::class); + $wpQueries = $this->getModule($module); + return $wpQueries; } + private function isCoreTestCaseProperty(string $name): bool + { + if ($this->coreTestCaseProperties === null) { + $this->coreTestCaseProperties = array_map( + static function (ReflectionProperty $p) { + return $p->getName(); + }, + (new \ReflectionClass(self::getCoreTestCase()))->getProperties() + ); + } + + return in_array($name, $this->coreTestCaseProperties, true); + } + /** + * @throws ReflectionException + * @return mixed + */ + public function __get(string $name) + { + if (!$this->isCoreTestCaseProperty($name)) { + return $this->{$name} ?? null; + } + + $coreTestCase = self::getCoreTestCase(); + $reflectionProperty = new ReflectionProperty($coreTestCase, $name); + $reflectionProperty->setAccessible(true); + $value = $reflectionProperty->getValue($coreTestCase); + +// if (is_array($value)) { +// return new ArrayReflectionPropertyAccessor($reflectionProperty, $coreTestCase); +// } + + return $value; + } + /** + * @throws ReflectionException + * @param mixed $value + */ + public function __set(string $name, $value): void + { + if (!$this->isCoreTestCaseProperty($name)) { + // Just set a dynamic property on the test case. + $this->{$name} = $value; + return; + } + + $coreTestCase = self::getCoreTestCase(); + $reflectionProperty = new ReflectionProperty($coreTestCase, $name); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($coreTestCase, $value); + } + /** + * @throws ReflectionException + */ + public function __isset(string $name): bool + { + if (!$this->isCoreTestCaseProperty($name)) { + return isset($this->{$name}); + } + + $coreTestCase = self::getCoreTestCase(); + $reflectionProperty = new ReflectionProperty($coreTestCase, $name); + $reflectionProperty->setAccessible(true); + return $reflectionProperty->isInitialized($coreTestCase); + } } diff --git a/src/TestCase/WPTestCasePHPUnitMethodsTrait.php b/src/TestCase/WPTestCasePHPUnitMethodsTrait.php new file mode 100644 index 000000000..19aad0651 --- /dev/null +++ b/src/TestCase/WPTestCasePHPUnitMethodsTrait.php @@ -0,0 +1,83 @@ +set_up_before_class(); + } + + public static function tearDownAfterClass() //@phpstan-ignore-line + { + static::tear_down_after_class(); //@phpstan-ignore-line magic __callStatic + parent::tearDownAfterClass(); + } + + protected function setUp() //@phpstan-ignore-line + { + parent::setUp(); + + // Restores the uploads directory if removed during tests. + $uploads = wp_upload_dir(); + if (!is_dir($uploads['basedir']) + && !mkdir($uploads['basedir'], 0755, true) + && !is_dir($uploads['basedir'])) { + throw new \RuntimeException('Failed to create uploads base directory.'); + } + + $this->set_up(); //@phpstan-ignore-line magic __call + $this->backupAdditionalGlobals(); + } + + protected function tearDown() //@phpstan-ignore-line + { + $this->restoreAdditionalGlobals(); + $this->tear_down(); //@phpstan-ignore-line magic __call + parent::tearDown(); + } + } +} else { + trait WPTestCasePHPUnitMethodsTrait + { + public static function setUpBeforeClass(): void + { + parent::setUpBeforeClass(); + self::getCoreTestCase()->set_up_before_class(); + } + + public static function tearDownAfterClass(): void + { + static::tear_down_after_class(); //@phpstan-ignore-line magic __callStatic + parent::tearDownAfterClass(); + } + + protected function setUp(): void + { + parent::setUp(); + + // Restores the uploads directory if removed during tests. + $uploads = wp_upload_dir(); + if (!is_dir($uploads['basedir']) + && !mkdir($uploads['basedir'], 0755, true) + && !is_dir($uploads['basedir'])) { + throw new \RuntimeException('Failed to create uploads base directory.'); + } + + $this->set_up(); //@phpstan-ignore-line magic __call + $this->backupAdditionalGlobals(); + } + + protected function tearDown(): void + { + $this->restoreAdditionalGlobals(); + $this->tear_down(); //@phpstan-ignore-line magic __call + parent::tearDown(); + } + } +} diff --git a/src/TestCase/WPUnitTestCasePolyfillsTrait.php b/src/TestCase/WPUnitTestCasePolyfillsTrait.php new file mode 100644 index 000000000..795149d49 --- /dev/null +++ b/src/TestCase/WPUnitTestCasePolyfillsTrait.php @@ -0,0 +1,24 @@ + $arguments + */ + public function __call(string $name, array $arguments) //@phpstan-ignore-line cannot be type-hinted + { + return TestCase::$name(...$arguments); + } + + /** + * @param array $arguments + */ + public static function __callStatic(string $name, array $arguments) //@phpstan-ignore-line cannot be type-hinted + { + return TestCase::$name(...$arguments); + } +} diff --git a/src/Utils/ChromedriverInstaller.php b/src/Utils/ChromedriverInstaller.php index 70f9f8822..bcf3b583b 100644 --- a/src/Utils/ChromedriverInstaller.php +++ b/src/Utils/ChromedriverInstaller.php @@ -7,29 +7,28 @@ use lucatume\WPBrowser\Adapters\Symfony\Component\Process\Process; use lucatume\WPBrowser\Exceptions\InvalidArgumentException; use lucatume\WPBrowser\Exceptions\RuntimeException; +use lucatume\WPBrowser\Utils\Filesystem as FS; use Symfony\Component\Console\Output\NullOutput; use Symfony\Component\Console\Output\OutputInterface; -use lucatume\WPBrowser\Utils\Filesystem as FS; use function lucatume\WPBrowser\useMemoString; class ChromedriverInstaller { - public const ERR_INVALID_VERSION = 1; - public const ERR_INVALID_BINARY = 2; - public const ERR_UNSUPPORTED_PLATFORM = 3; - public const ERR_REMOVE_EXISTING_ZIP_FILE = 4; - public const ERR_VERSION_NOT_STRING = 5; - public const ERR_INVALID_VERSION_FORMAT = 6; - public const ERR_DESTINATION_NOT_DIR = 7; - public const ERR_FETCH_MILESTONE_DOWNLOADS = 11; - public const ERR_DECODE_MILESTONE_DOWNLOADS = 12; - public const ERR_DOWNLOAD_URL_NOT_FOUND = 13; - public const ERR_REMOVE_EXISTING_BINARY = 14; - public const ERR_MOVE_BINARY = 15; - public const ERR_DETECT_PLATFORM = 16; - public const ERR_BINARY_CHMOD = 17; + public const ERR_INVALID_BINARY = 1; + public const ERR_UNSUPPORTED_PLATFORM = 2; + public const ERR_REMOVE_EXISTING_ZIP_FILE = 3; + public const ERR_VERSION_NOT_STRING = 4; + public const ERR_INVALID_VERSION_FORMAT = 5; + public const ERR_DESTINATION_NOT_DIR = 6; + public const ERR_FETCH_MILESTONE_DOWNLOADS = 7; + public const ERR_DECODE_MILESTONE_DOWNLOADS = 8; + public const ERR_DOWNLOAD_URL_NOT_FOUND = 9; + public const ERR_REMOVE_EXISTING_BINARY = 10; + public const ERR_DETECT_PLATFORM = 11; + public const ERR_BINARY_CHMOD = 12; + /** * @var \Symfony\Component\Console\Output\OutputInterface */ @@ -63,6 +62,7 @@ public function __construct( $this->output->writeln("Platform: $platform"); $binary = $binary ?? $this->detectBinary(); + $this->binary = $this->checkBinary($binary); $this->output->writeln("Binary: $binary"); @@ -73,116 +73,6 @@ public function __construct( $this->output->writeln("Version: $version"); } - /** - * @throws JsonException - */ - public function install(string $dir = null): string - { - if ($dir === null) { - global $_composer_bin_dir; - $dir = $_composer_bin_dir; - $composerEnvBinDir = getenv('COMPOSER_BIN_DIR'); - if ($composerEnvBinDir && is_string($composerEnvBinDir) && is_dir($composerEnvBinDir)) { - $dir = $composerEnvBinDir; - } - } - - if (!is_dir($dir)) { - throw new InvalidArgumentException( - "The directory $dir does not exist.", - self::ERR_DESTINATION_NOT_DIR - ); - } - - $this->output->writeln("Fetching Chromedriver version URL ..."); - - $zipFilePathname = $this->useEnvZipFile ? - Env::get('WPBROWSER_CHROMEDRIVER_ZIP_FILE', null) - : null; - $cacheDir = FS::cacheDir() . '/chromedriver'; - $executableFileName = $dir . '/' . $this->getExecutableFileName(); - - if (!(is_string($zipFilePathname) && is_file($zipFilePathname))) { - $downloadUrl = $this->fetchChromedriverVersionUrl(); - if (!is_dir($cacheDir) && !(mkdir($cacheDir, 0777, true) && is_dir($cacheDir))) { - throw new RuntimeException("Could not create Chromedriver cache directory $cacheDir."); - } - $zipFilePathname = rtrim($cacheDir, '\\/') . '/chromedriver.zip'; - if (is_file($zipFilePathname) && !unlink($zipFilePathname)) { - throw new RuntimeException( - "Could not remove existing zip file $zipFilePathname", - self::ERR_REMOVE_EXISTING_ZIP_FILE - ); - } - $this->output->writeln('Downloading Chromedriver to ' . $zipFilePathname . ' ...'); - $zipFilePathname = Download::fileFromUrl($downloadUrl, $zipFilePathname); - $this->output->writeln('Downloaded Chromedriver to ' . $zipFilePathname); - } - - if (is_file($executableFileName) && !unlink($executableFileName)) { - throw new RuntimeException( - "Could not remove existing executable file $executableFileName", - self::ERR_REMOVE_EXISTING_BINARY - ); - } - - Zip::extractFile($zipFilePathname, $this->getExecutableFileName(), $executableFileName); - - if (!chmod($executableFileName, 0755)) { - throw new RuntimeException( - "Could not make Chromedriver executable", - self::ERR_BINARY_CHMOD - ); - } - - $this->output->writeln("Installed Chromedriver to $executableFileName"); - - return $executableFileName; - } - - /** - * @throws RuntimeException - */ - private function detectVersion(): string - { - switch ($this->platform) { - case 'linux64': - case 'mac-x64': - case 'mac-arm64': - $process = new Process([$this->binary, ' --version']); - break; - case 'win32': - case 'win64': - $process = Process::fromShellCommandline( - 'reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version' - ); - break; - } - - $process->run(); - $chromeVersion = $process->getOutput(); - - if ($chromeVersion === '') { - throw new RuntimeException( - "Could not detect Chrome version from $this->binary", - self::ERR_VERSION_NOT_STRING - ); - } - - $matches = []; - if (!( - preg_match('/\s*\d+\.\d+\.\d+\.\d+\s*/', $chromeVersion, $matches) - && isset($matches[0]) && is_string($matches[0]) - )) { - throw new RuntimeException( - "Could not detect Chrome version from $this->binary", - self::ERR_INVALID_VERSION_FORMAT - ); - } - - return trim($matches[0]); - } - /** * @throws RuntimeException */ @@ -236,10 +126,40 @@ private function checkPlatform($platform): string ); } - /** @var 'linux64'|'mac-x64'|'mac-arm64'|'win32'|'win64' $platform */ + /** @var 'linux64'|'mac-arm64'|'mac-x64'|'win32'|'win64' $platform */ return $platform; } + /** + * @throws RuntimeException + */ + private function detectBinary(): string + { + switch ($this->platform) { + case 'linux64': + return $this->detectLinuxBinaryPath(); + case 'mac-x64': + case 'mac-arm64': + return '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'; + case 'win32': + case 'win64': + return $this->detectWindowsBinaryPath(); + } + } + + private function detectLinuxBinaryPath(): string + { + foreach (['chromium', 'google-chrome'] as $bin) { + $path = exec("which $bin"); + + if (!empty($path)) { + return $path; + } + } + + return '/usr/bin/google-chrome'; + } + private function detectWindowsBinaryPath(): string { $candidates = [ @@ -258,36 +178,84 @@ private function detectWindowsBinaryPath(): string } /** - * @throws RuntimeException + * @param mixed $binary */ - private function detectBinary(): string + private function checkBinary($binary): string + { + // Replace escaped spaces with spaces to check the binary. + if (!(is_string($binary) && is_executable(str_replace('\ ', ' ', $binary)))) { + throw new RuntimeException( + "Invalid Chrome binary: not executable or not existing.\n" . + "Checked paths: " . implode(', ', $this->getBinaryCandidateList()) . "\n", + self::ERR_INVALID_BINARY + ); + } + + return $binary; + } + + /** + * @return string[] + */ + private function getBinaryCandidateList(): array { switch ($this->platform) { case 'linux64': - return '/usr/bin/google-chrome'; + return ['chromium', 'google-chrome']; case 'mac-x64': case 'mac-arm64': - return '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'; + return ['/Applications/Google Chrome.app/Contents/MacOS/Google Chrome']; case 'win32': case 'win64': - return $this->detectWindowsBinaryPath(); + return [ + getenv('ProgramFiles') . '\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe', + getenv('ProgramFiles(x86)') . '\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe', + getenv('LOCALAPPDATA') . '\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe' + ]; } } /** - * @param mixed $binary + * @throws RuntimeException */ - private function checkBinary($binary): string + private function detectVersion(): string { - // Replace escaped spaces with spaces to check the binary. - if (!(is_string($binary) && is_executable(str_replace('\ ', ' ', $binary)))) { + switch ($this->platform) { + case 'linux64': + case 'mac-x64': + case 'mac-arm64': + $process = new Process([$this->binary, ' --version']); + break; + case 'win32': + case 'win64': + $process = Process::fromShellCommandline( + 'reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version' + ); + break; + } + + $process->run(); + $chromeVersion = $process->getOutput(); + + if ($chromeVersion === '') { throw new RuntimeException( - "Invalid Chrome binary: not executable or not existing.", - self::ERR_INVALID_BINARY + "Could not detect Chrome version from $this->binary", + self::ERR_VERSION_NOT_STRING ); } - return $binary; + $matches = []; + if (!( + preg_match('/\s*\d+\.\d+\.\d+\.\d+\s*/', $chromeVersion, $matches) + && isset($matches[0]) && is_string($matches[0]) + )) { + throw new RuntimeException( + "Could not detect Chrome version from $this->binary", + self::ERR_INVALID_VERSION_FORMAT + ); + } + + return trim($matches[0]); } /** @@ -306,6 +274,86 @@ private function checkVersion($version): string return $matches['major']; } + /** + * @throws JsonException + */ + public function install(string $dir = null): string + { + if ($dir === null) { + global $_composer_bin_dir; + $dir = $_composer_bin_dir; + $composerEnvBinDir = getenv('COMPOSER_BIN_DIR'); + if ($composerEnvBinDir && is_string($composerEnvBinDir) && is_dir($composerEnvBinDir)) { + $dir = $composerEnvBinDir; + } + } + + if (!is_dir($dir)) { + throw new InvalidArgumentException( + "The directory $dir does not exist.", + self::ERR_DESTINATION_NOT_DIR + ); + } + + $this->output->writeln("Fetching Chromedriver version URL ..."); + + $zipFilePathname = $this->useEnvZipFile ? + Env::get('WPBROWSER_CHROMEDRIVER_ZIP_FILE', null) + : null; + $cacheDir = FS::cacheDir() . '/chromedriver'; + $executableFileName = $dir . '/' . $this->getExecutableFileName(); + + if (!(is_string($zipFilePathname) && is_file($zipFilePathname))) { + $downloadUrl = $this->fetchChromedriverVersionUrl(); + if (!is_dir($cacheDir) && !(mkdir($cacheDir, 0777, true) && is_dir($cacheDir))) { + throw new RuntimeException("Could not create Chromedriver cache directory $cacheDir."); + } + $zipFilePathname = rtrim($cacheDir, '\\/') . '/chromedriver.zip'; + if (is_file($zipFilePathname) && !unlink($zipFilePathname)) { + throw new RuntimeException( + "Could not remove existing zip file $zipFilePathname", + self::ERR_REMOVE_EXISTING_ZIP_FILE + ); + } + $this->output->writeln('Downloading Chromedriver to ' . $zipFilePathname . ' ...'); + $zipFilePathname = Download::fileFromUrl($downloadUrl, $zipFilePathname); + $this->output->writeln('Downloaded Chromedriver to ' . $zipFilePathname); + } + + if (is_file($executableFileName) && !unlink($executableFileName)) { + throw new RuntimeException( + "Could not remove existing executable file $executableFileName", + self::ERR_REMOVE_EXISTING_BINARY + ); + } + + Zip::extractFile($zipFilePathname, $this->getExecutableFileName(), $executableFileName); + + if (!chmod($executableFileName, 0755)) { + throw new RuntimeException( + "Could not make Chromedriver executable", + self::ERR_BINARY_CHMOD + ); + } + + $this->output->writeln("Installed Chromedriver to $executableFileName"); + + return $executableFileName; + } + + private function getExecutableFileName(): string + { + switch ($this->platform) { + case 'linux64': + case 'mac-x64': + case 'mac-arm64': + return 'chromedriver'; + case 'win32': + case 'win64': + return 'chromedriver.exe'; + } + } + private function fetchChromedriverVersionUrl(): string { return useMemoString( @@ -349,7 +397,9 @@ private function unmemoizedFetchChromedriverVersionUrl(): string && is_array($decoded['milestones'][$this->milestone]['downloads']['chromedriver']) )) { throw new RuntimeException( - 'Failed to decode known good Chrome and Chromedriver versions with downloads.', + "Failed to find a version of Chromedriver to download for your platform and Chrome combination." . + "\nTry upgrading Chrome and making sure it is executable from one of the expected locations for your " . + "platform ({$this->platform}): " . implode(', ', $this->getBinaryCandidateList()), self::ERR_DECODE_MILESTONE_DOWNLOADS ); } @@ -374,19 +424,6 @@ private function unmemoizedFetchChromedriverVersionUrl(): string ); } - private function getExecutableFileName(): string - { - switch ($this->platform) { - case 'linux64': - case 'mac-x64': - case 'mac-arm64': - return 'chromedriver'; - case 'win32': - case 'win64': - return 'chromedriver.exe'; - } - } - public function getVersion(): string { return $this->milestone; diff --git a/src/Utils/MonkeyPatch.php b/src/Utils/MonkeyPatch.php index d1165c06f..7d2ba6448 100644 --- a/src/Utils/MonkeyPatch.php +++ b/src/Utils/MonkeyPatch.php @@ -5,13 +5,23 @@ use lucatume\WPBrowser\MonkeyPatch\FileStreamWrapper; use lucatume\WPBrowser\MonkeyPatch\Patchers\FileContentsReplacementPatcher; use lucatume\WPBrowser\MonkeyPatch\Patchers\FileReplacementPatcher; +use lucatume\WPBrowser\Utils\Filesystem as FS; class MonkeyPatch { - public static function redirectFileToFile(string $fromFile, string $toFile): void - { - FileStreamWrapper::setPatcherForFile($fromFile, new FileReplacementPatcher($toFile)); + public static function redirectFileToFile( + string $fromFile, + string $toFile, + bool $redirectOpenedPath = true, + string $context = null + ): void { + FileStreamWrapper::setPatcherForFile( + $fromFile, + new FileReplacementPatcher($toFile), + $redirectOpenedPath, + $context + ); } public static function dudFile(): string @@ -19,8 +29,29 @@ public static function dudFile(): string return dirname(__DIR__) . '/MonkeyPatch/dud-file.php'; } - public static function redirectFileContents(string $fromFile, string $fileContents):void + public static function redirectFileContents( + string $fromFile, + string $fileContents, + bool $redirectOpenedPath = true, + string $context = null + ): void { + FileStreamWrapper::setPatcherForFile( + $fromFile, + new FileContentsReplacementPatcher($fileContents), + $redirectOpenedPath, + $context + ); + } + + public static function getReplacementFileName(string $pathname, string $context): string + { + $mtime = (string)filemtime($pathname); + $hash = md5($pathname . $mtime . $context); + return FS::getTmpSubDir('_monkeypatch') . "/{$hash}.php"; + } + + public static function getCachePath(): string { - FileStreamWrapper::setPatcherForFile($fromFile, new FileContentsReplacementPatcher($fileContents)); + return FS::getTmpSubDir('_monkeypatch'); } } diff --git a/src/Utils/Random.php b/src/Utils/Random.php index f8c5079a1..27b37588b 100644 --- a/src/Utils/Random.php +++ b/src/Utils/Random.php @@ -15,11 +15,11 @@ class Random * @var string */ private static $saltChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' . - '!"#$%&()*+,-./:;<=>?@[]^_`{|}~'; + '!#$%&()*+,-./:;<>?@[]^_`{|}~'; /** * @var int */ - private static $saltCharsCount = 92; + private static $saltCharsCount = 90; /** * @var string */ diff --git a/src/deprecated-functions.php b/src/deprecated-functions.php new file mode 100644 index 000000000..1eec8d05e --- /dev/null +++ b/src/deprecated-functions.php @@ -0,0 +1,442 @@ + + * @deprecated Use \lucatume\WPBrowser\Utils\MysqlDatabase::dbDsnMap instead. + */ + function dbDsnMap(string $dbHost): array + { + return Db::dbDsnToMap($dbHost); + } + + /** + * @param array{ + * type: string, + * host: string, + * port: string, + * unix_socket: string, + * version: string, + * file: string, + * memory: bool + * } $dsn The database DSN map. + * @return array{ + * dsn: string, + * user: string, + * password: string + * } + * @deprecated Use \lucatume\WPBrowser\Utils\MysqlDatabase::dbCredentials instead. + */ + function dbCredentials(array $dsn, string $dbuser, string $dbpass, string $dbname = null): array + { + return Db::dbCredentials($dsn, $dbuser, $dbpass, $dbname); + } + + /** + * @param array{ + * type: string, + * host: string, + * port: string, + * unix_socket: string, + * dbname: string, + * file: string, + * version: string, + * memory: bool + * } $dbDsnMap + * + * @deprecated Use \lucatume\WPBrowser\Utils\MysqlDatabase::dbDsnString instead. + */ + function dbDsnString(array $dbDsnMap, bool $forDbHost = false): string + { + return Db::dbDsnString($dbDsnMap, $forDbHost); + } + + /** + * @deprecated Use \lucatume\WPBrowser\Utils\MysqlDatabase::isDsnString instead. + */ + function isDsnString(string $string): bool + { + return Db::isDsnString($string); + } + + /** + * @return array + * @deprecated Use \lucatume\WPBrowser\Utils\MysqlDatabase::dbDsnToMap instead. + */ + function dbDsnToMap(string $dsnString): array + { + return Db::dbDsnToMap($dsnString); + } + + /** + * @return array + * @deprecated Use \lucatume\WPBrowser\Utils\Env::envFile instead. + */ + function envFile(string $file): array + { + return Env::envFile($file); + } + + /** + * @deprecated Use \lucatume\WPBrowser\Utils\Env::os instead. + */ + function os(): string + { + return Env::os(); + } + + /** + * @param array $map + * @deprecated Use \lucatume\WPBrowser\Utils\Env::loadEnvMap instead. + */ + function loadEnvMap(array $map, bool $overwrite = true): void + { + Env::loadEnvMap($map, $overwrite); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::rrmdir` instead. + */ + function rrmdir(string $src): bool + { + return Filesystem::rrmdir($src); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::homeDir` instead. + */ + function homeDir(string $path = ''): string + { + return Filesystem::homeDir($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::resolvePath` instead. + * @return bool|string + */ + function resolvePath(string $path, string $root = null) + { + return Filesystem::resolvePath($path, $root); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::untrailslashit` instead. + */ + function untrailslashit(string $path): string + { + return Filesystem::untrailslashit($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::unleadslashit` instead. + */ + function unleadslashit(string $path): string + { + return Filesystem::unleadslashit($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::recurseCopy` instead. + */ + function recurseCopy(string $source, string $destination): bool + { + return Filesystem::recurseCopy($source, $destination); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::rrmdir` instead. + */ + function recurseRemoveDir(string $target): bool + { + return Filesystem::rrmdir($target); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::findHereOrInParentrmdir` instead. + * @return bool|string + */ + function findHereOrInParent(string $path, string $root) + { + return Filesystem::findHereOrInParent($path, $root); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::realpathish` instead. + * @return bool|string + */ + function realpathish(string $path) + { + return Filesystem::realpath($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Filesystem::mkdirp` instead. + * @param array>|string $contents + */ + function mkdirp(string $pathname, $contents = [], int $mode = 0777): void + { + Filesystem::mkdirp($pathname, $contents, $mode); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Events\Dispatcher::addListener` instead. + */ + function addListener(string $eventName, callable $listener, int $priority = 0): void + { + Dispatcher::addListener($eventName, $listener, $priority); + } + + /** + * @param array $context + * @deprecated Use `lucatume\WPBrowser\Events\Dispatcher::dispatch` instead. + * @param mixed $origin + */ + function dispatch(string $eventName, $origin = null, ?array $context = []): void + { + Dispatcher::dispatch($eventName, $origin, $context ?? []); + } + + + /** + * @param array $props + * @throws ReflectionException + * @deprecated Use `lucatume\WPBrowser\Utils\Property::setPropertiesForClass` instead. + * @param object $object + * @return object + */ + function setPropertiesForClass($object, string $class, array $props) + { + return Property::setPropertiesForClass($object, $class, $props); + } + + /** + * @param array $props + * @throws ReflectionException + * @deprecated Use `lucatume\WPBrowser\Utils\Property::setPrivateProperties` instead. + * @param object|string $object + */ + function setPrivateProperties($object, array $props): void + { + Property::setPrivateProperties($object, $props); + } + + /** + * @throws ReflectionException + * @deprecated Use `lucatume\WPBrowser\Utils\Property::readPrivate` instead. + * @param object|string $object + * @return mixed + */ + function readPrivateProperty($object, string $prop) + { + return Property::readPrivate($object, $prop); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::normalizeNewLine` instead. + */ + function normalizeNewLine(string $str): string + { + return Strings::normalizeNewLine($str); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::slug` instead. + */ + function slug(string $string, string $sep = '-', bool $let = false): string + { + return Strings::slug($string, $sep, $let); + } + + /** + * @param array $data + * @param array $fnArgs + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::renderString` instead. + */ + function renderString(string $template, array $data = [], array $fnArgs = []): string + { + return Strings::renderString($template, $data, $fnArgs); + } + + /** + * @return array{ + * fragment: string, + * host: string, + * pass: string, + * path: string, + * port: int, + * query: string, + * scheme: string, + * user: string + * } + * @deprecated Use `lucatume\WPBrowser\Utils\Url::parseUrl` instead. + */ + function parseUrl(string $url): array + { + return Url::parseUrl($url); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Url::isRegex` instead. + */ + function isRegex(string $string): bool + { + return Strings::isRegex($string); + } + + /** + * @param array $elements + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::andList` instead. + */ + function andList(array $elements): string + { + return Strings::andList($elements); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Url::getDomain` instead. + */ + function urlDomain(string $fullUrl): string + { + return Url::getDomain($fullUrl); + } + + /** + * @deprecated Use `Codeception\Util\Debug::isEnabled` instead. + */ + function isDebug(bool $activate = null): bool + { + return Debug::isEnabled(); + } + + /** + * @deprecated Use `codecept_debug` instead. + * @param mixed $message + */ + function debug($message): void + { + codecept_debug($message); + } + + /** + * @deprecated Use `PHPUnit\Framework\Assert:assertTrue` instead. + * @param mixed $condition + */ + function ensure($condition, string $message): void + { + Assert::assertTrue((bool)$condition, $message); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Composer::vendorDir` instead. + */ + function vendorDir(string $path = ''): string + { + return Composer::vendorDir($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\CorePHPUnit::path` instead. + */ + function includesDir(string $path = ''): string + { + return CorePHPUnit::path($path); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::stripTags` instead. + */ + function strip_all_tags(string $string, bool $removeBreaks = false): string + { + return Strings::stripTags($string, $removeBreaks); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::removeAccents` instead. + */ + function remove_accents(string $string): string + { + return Strings::removeAccents($string); + } + + /** + * @deprecated Use `lucatume\WPBrowser\Utils\Strings::sanitizeUsername` instead. + */ + function sanitize_user(string $username, bool $strict = false): string + { + return Strings::sanitizeUsername($username, $strict); + } + + /** + * @param array|null $tables + * @return array + * @deprecated Use `lucatume\WPBrowser\Utils\WP::dropWpTables` instead. + */ + function dropWpTables(wpdb $wpdb, array $tables = null): array + { + return WP::dropWpTables($wpdb, $tables); + } + + /** + * @param array|null $tables + * @return array + * @deprecated Use `lucatume\WPBrowser\Utils\WP::emptyWpTables` instead. + */ + function emptyWpTables(wpdb $wpdb, array $tables = null): array + { + return WP::emptyWpTables($wpdb, $tables); + } + + /** + * @deprecated Use `\PHPUnit\Runner\Version::id` instead. + */ + function phpunitVersion(): string + { + return Version::id(); + } +} diff --git a/src/version-4-aliases.php b/src/version-4-aliases.php index 7aa8004ba..d303cd2e3 100644 --- a/src/version-4-aliases.php +++ b/src/version-4-aliases.php @@ -2,7 +2,15 @@ namespace lucatume\WPBrowser; +use lucatume\WPBrowser\Command\GenerateWPAjax; +use lucatume\WPBrowser\Command\GenerateWPCanonical; +use lucatume\WPBrowser\Command\GenerateWPRestApi; +use lucatume\WPBrowser\Command\GenerateWPRestController; +use lucatume\WPBrowser\Command\GenerateWPRestPostTypeController; use lucatume\WPBrowser\Command\GenerateWPUnit; +use lucatume\WPBrowser\Command\GenerateWPXMLRPC; +use lucatume\WPBrowser\Extension\EventDispatcherBridge; +use lucatume\WPBrowser\Extension\IsolationSupport; use lucatume\WPBrowser\Module\WPBrowser; use lucatume\WPBrowser\Module\WPBrowserMethods; use lucatume\WPBrowser\Module\WPCLI; @@ -19,13 +27,11 @@ use lucatume\WPBrowser\TestCase\WPRestPostTypeControllerTestCase; use lucatume\WPBrowser\TestCase\WPTestCase; use lucatume\WPBrowser\TestCase\WPXMLRPCTestCase; + use function class_alias; /** * Defines a set of class aliases to allow referencing the framework classes with their previous versions' names. - */ - -/** * Calls to `class_alias` will immediately autoload the class in a eager fashion. * Using an autoloader will load them lazily. */ @@ -40,6 +46,12 @@ 'Codeception\\Module\\WPQueries' => WPQueries::class, 'Codeception\\Module\\WPWebDriver' => WPWebDriver::class, 'Codeception\\Command\\GenerateWPUnit' => GenerateWPUnit::class, + 'Codeception\\Command\\GenerateWPRestApi' => GenerateWPRestApi::class, + 'Codeception\\Command\\GenerateWPRestController' => GenerateWPRestController::class, + 'Codeception\\Command\\GenerateWPRestPostTypeController' => GenerateWPRestPostTypeController::class, + 'Codeception\\Command\\GenerateWPAjax' => GenerateWPAjax::class, + 'Codeception\\Command\\GenerateWPCanonical' => GenerateWPCanonical::class, + 'Codeception\\Command\\GenerateWPXMLRPC' => GenerateWPXMLRPC::class, 'Codeception\\Template\\Wpbrowser' => WpbrowserInitTemplate::class, 'Codeception\\TestCase\\WPTestCase' => WPTestCase::class, 'Codeception\\TestCase\\WPAjaxTestCase' => WPAjaxTestCase::class, @@ -48,6 +60,15 @@ 'Codeception\\TestCase\\WPRestControllerTestCase' => WPRestControllerTestCase::class, 'Codeception\\TestCase\\WPRestPostTypeControllerTestCase' => WPRestPostTypeControllerTestCase::class, 'Codeception\\TestCase\\WPXMLRPCTestCase' => WPXMLRPCTestCase::class, + 'tad\\WPBrowser\\Extension\\Events' => EventDispatcherBridge::class, + 'Codeception\\Extension\\IsolationSupport' => IsolationSupport::class, + 'tad\\WPBrowser\\Module\\WPLoader\\FactoryStore' => WPLoader\FactoryStore::class, + /* WordPress PHPUnit compatibility layer will require these classes removed in PHPUnit 10 */ + 'PHPUnit\\Framework\\Error\\Deprecated' => RemovedInPHPUnitVersion10::class, + 'PHPUnit\\Framework\\Error\\Notice' => RemovedInPHPUnitVersion10::class, + 'PHPUnit\\Framework\\Error\\Warning' => RemovedInPHPUnitVersion10::class, + 'PHPUnit\\Framework\\Warning' => RemovedInPHPUnitVersion10::class, + 'PHPUnit\\Framework\\TestListener' => RemovedInPHPUnitVersion10::class ]; $countDeprecated = count($deprecated); static $hits = 0; diff --git a/tests/_data/dump.sql b/tests/_data/dump.sql index a6787e1ab..294d40851 100755 --- a/tests/_data/dump.sql +++ b/tests/_data/dump.sql @@ -1,13 +1,13 @@ --- MariaDB dump 10.19 Distrib 10.5.15-MariaDB, for debian-linux-gnu (aarch64) +-- MySQL dump 10.13 Distrib 8.2.0, for macos14.0 (arm64) -- --- Host: db Database: test +-- Host: 127.0.0.1 Database: wordpress -- ------------------------------------------------------ --- Server version 10.7.3-MariaDB-1:10.7.3+maria~focal +-- Server version 5.5.5-10.8.8-MariaDB-1:10.8.8+maria~ubu2204 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; @@ -21,12 +21,12 @@ DROP TABLE IF EXISTS `foo_commentmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_commentmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb3_bin DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb3_bin DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `comment_id` (`comment_id`), KEY `meta_key` (`meta_key`(191)) @@ -48,21 +48,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, - `comment_author` tinytext COLLATE utf8mb3_bin NOT NULL, - `comment_author_email` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `comment_author_url` varchar(200) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text COLLATE utf8mb3_bin NOT NULL, + `comment_content` text NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT 0, - `comment_approved` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT '1', - `comment_agent` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `comment_type` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT '', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`comment_ID`), @@ -90,21 +90,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_links`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_links` ( `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_name` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_image` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_target` varchar(25) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_description` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_visible` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'Y', + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, `link_rating` int(11) NOT NULL DEFAULT 0, `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `link_notes` mediumtext COLLATE utf8mb3_bin NOT NULL, - `link_rss` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`link_id`), KEY `link_visible` (`link_visible`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; @@ -125,12 +125,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_options`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_options` ( `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `option_value` longtext COLLATE utf8mb3_bin NOT NULL, - `autoload` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'yes', + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`) ) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; @@ -152,12 +152,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_postmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_postmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb3_bin DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb3_bin DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) @@ -180,30 +180,30 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_posts`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext COLLATE utf8mb3_bin NOT NULL, - `post_title` text COLLATE utf8mb3_bin NOT NULL, - `post_excerpt` text COLLATE utf8mb3_bin NOT NULL, - `post_status` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'open', - `ping_status` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'open', - `post_password` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `post_name` varchar(200) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `to_ping` text COLLATE utf8mb3_bin NOT NULL, - `pinged` text COLLATE utf8mb3_bin NOT NULL, + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(20) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext COLLATE utf8mb3_bin NOT NULL, + `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `guid` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `guid` varchar(255) NOT NULL DEFAULT '', `menu_order` int(11) NOT NULL DEFAULT 0, - `post_type` varchar(20) COLLATE utf8mb3_bin NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', `comment_count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), KEY `post_name` (`post_name`(191)), @@ -229,7 +229,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_term_relationships`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_term_relationships` ( `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, @@ -255,12 +255,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_term_taxonomy`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_term_taxonomy` ( `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `taxonomy` varchar(32) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `description` longtext COLLATE utf8mb3_bin NOT NULL, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, `parent` bigint(20) unsigned NOT NULL DEFAULT 0, `count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`term_taxonomy_id`), @@ -285,12 +285,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_termmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_termmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb3_bin DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb3_bin DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `term_id` (`term_id`), KEY `meta_key` (`meta_key`(191)) @@ -312,11 +312,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_terms`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `slug` varchar(200) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', `term_group` bigint(10) NOT NULL DEFAULT 0, PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), @@ -340,12 +340,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_usermeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_usermeta` ( `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb3_bin DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb3_bin DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`umeta_id`), KEY `user_id` (`user_id`), KEY `meta_key` (`meta_key`(191)) @@ -368,18 +368,18 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `foo_users`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `foo_users` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `user_login` varchar(60) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `user_pass` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `user_nicename` varchar(50) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `user_email` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '', - `user_url` varchar(100) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `user_activation_key` varchar(255) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT 0, - `display_name` varchar(250) COLLATE utf8mb3_bin NOT NULL DEFAULT '', + `display_name` varchar(250) NOT NULL DEFAULT '', PRIMARY KEY (`ID`), KEY `user_login_key` (`user_login`), KEY `user_nicename` (`user_nicename`), @@ -403,12 +403,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_commentmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_commentmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `comment_id` (`comment_id`), KEY `meta_key` (`meta_key`(191)) @@ -430,21 +430,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, - `comment_author` tinytext COLLATE utf8mb4_unicode_ci NOT NULL, - `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text COLLATE utf8mb4_unicode_ci NOT NULL, + `comment_content` text NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT 0, - `comment_approved` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1', - `comment_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'comment', + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`comment_ID`), @@ -472,21 +472,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_links`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_links` ( `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Y', + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, `link_rating` int(11) NOT NULL DEFAULT 0, `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`link_id`), KEY `link_visible` (`link_visible`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; @@ -507,12 +507,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_options`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_options` ( `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `option_value` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `autoload` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes', + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`), KEY `autoload` (`autoload`) @@ -535,12 +535,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_postmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_postmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) @@ -563,30 +563,30 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_posts`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `post_title` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_excerpt` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `ping_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `post_password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `post_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `to_ping` text COLLATE utf8mb4_unicode_ci NOT NULL, - `pinged` text COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `guid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `guid` varchar(255) NOT NULL DEFAULT '', `menu_order` int(11) NOT NULL DEFAULT 0, - `post_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', `comment_count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), KEY `post_name` (`post_name`(191)), @@ -612,7 +612,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_term_relationships`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_term_relationships` ( `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, @@ -638,12 +638,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_term_taxonomy`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_term_taxonomy` ( `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `taxonomy` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `description` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, `parent` bigint(20) unsigned NOT NULL DEFAULT 0, `count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`term_taxonomy_id`), @@ -668,12 +668,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_termmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_termmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `term_id` (`term_id`), KEY `meta_key` (`meta_key`(191)) @@ -695,11 +695,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_2_terms`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_2_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `slug` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', `term_group` bigint(10) NOT NULL DEFAULT 0, PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), @@ -723,12 +723,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_commentmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_commentmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `comment_id` (`comment_id`), KEY `meta_key` (`meta_key`(191)) @@ -750,21 +750,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, - `comment_author` tinytext COLLATE utf8mb4_unicode_ci NOT NULL, - `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text COLLATE utf8mb4_unicode_ci NOT NULL, + `comment_content` text NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT 0, - `comment_approved` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1', - `comment_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'comment', + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`comment_ID`), @@ -792,21 +792,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_links`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_links` ( `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Y', + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, `link_rating` int(11) NOT NULL DEFAULT 0, `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`link_id`), KEY `link_visible` (`link_visible`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; @@ -827,12 +827,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_options`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_options` ( `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `option_value` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `autoload` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes', + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`), KEY `autoload` (`autoload`) @@ -855,12 +855,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_postmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_postmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) @@ -883,30 +883,30 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_posts`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `post_title` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_excerpt` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `ping_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `post_password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `post_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `to_ping` text COLLATE utf8mb4_unicode_ci NOT NULL, - `pinged` text COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `guid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `guid` varchar(255) NOT NULL DEFAULT '', `menu_order` int(11) NOT NULL DEFAULT 0, - `post_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', `comment_count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), KEY `post_name` (`post_name`(191)), @@ -932,7 +932,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_term_relationships`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_term_relationships` ( `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, @@ -958,12 +958,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_term_taxonomy`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_term_taxonomy` ( `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `taxonomy` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `description` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, `parent` bigint(20) unsigned NOT NULL DEFAULT 0, `count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`term_taxonomy_id`), @@ -988,12 +988,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_termmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_termmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `term_id` (`term_id`), KEY `meta_key` (`meta_key`(191)) @@ -1015,11 +1015,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_3_terms`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_3_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `slug` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', `term_group` bigint(10) NOT NULL DEFAULT 0, PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), @@ -1037,16 +1037,137 @@ INSERT INTO `wp_3_terms` VALUES (1,'Uncategorized','uncategorized',0); /*!40000 ALTER TABLE `wp_3_terms` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `wp_actionscheduler_actions` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_actions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_actions` ( + `action_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `hook` varchar(191) NOT NULL, + `status` varchar(20) NOT NULL, + `scheduled_date_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `scheduled_date_local` datetime DEFAULT '0000-00-00 00:00:00', + `priority` tinyint(3) unsigned NOT NULL DEFAULT 10, + `args` varchar(191) DEFAULT NULL, + `schedule` longtext DEFAULT NULL, + `group_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `attempts` int(11) NOT NULL DEFAULT 0, + `last_attempt_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `last_attempt_local` datetime DEFAULT '0000-00-00 00:00:00', + `claim_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `extended_args` varchar(8000) DEFAULT NULL, + PRIMARY KEY (`action_id`), + KEY `hook_status_scheduled_date_gmt` (`hook`(163),`status`,`scheduled_date_gmt`), + KEY `status_scheduled_date_gmt` (`status`,`scheduled_date_gmt`), + KEY `scheduled_date_gmt` (`scheduled_date_gmt`), + KEY `args` (`args`), + KEY `group_id` (`group_id`), + KEY `last_attempt_gmt` (`last_attempt_gmt`), + KEY `claim_id_status_scheduled_date_gmt` (`claim_id`,`status`,`scheduled_date_gmt`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_actions` +-- + +LOCK TABLES `wp_actionscheduler_actions` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_actions` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_actions` VALUES (5,'action_scheduler/migration_hook','pending','2024-02-19 09:14:55','2024-02-19 09:14:55',10,'[]','O:30:\"ActionScheduler_SimpleSchedule\":2:{s:22:\"\0*\0scheduled_timestamp\";i:1708334095;s:41:\"\0ActionScheduler_SimpleSchedule\0timestamp\";i:1708334095;}',1,0,'0000-00-00 00:00:00','0000-00-00 00:00:00',0,NULL); +/*!40000 ALTER TABLE `wp_actionscheduler_actions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_claims` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_claims`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_claims` ( + `claim_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `date_created_gmt` datetime DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`claim_id`), + KEY `date_created_gmt` (`date_created_gmt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_claims` +-- + +LOCK TABLES `wp_actionscheduler_claims` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_claims` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_actionscheduler_claims` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_groups` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_groups` ( + `group_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `slug` varchar(255) NOT NULL, + PRIMARY KEY (`group_id`), + KEY `slug` (`slug`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_groups` +-- + +LOCK TABLES `wp_actionscheduler_groups` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_groups` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_groups` VALUES (1,'action-scheduler-migration'); +/*!40000 ALTER TABLE `wp_actionscheduler_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_logs` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_logs` ( + `log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `action_id` bigint(20) unsigned NOT NULL, + `message` text NOT NULL, + `log_date_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `log_date_local` datetime DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`log_id`), + KEY `action_id` (`action_id`), + KEY `log_date_gmt` (`log_date_gmt`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_logs` +-- + +LOCK TABLES `wp_actionscheduler_logs` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_logs` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_logs` VALUES (1,5,'action created','2024-02-19 09:13:55','2024-02-19 09:13:55'); +/*!40000 ALTER TABLE `wp_actionscheduler_logs` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `wp_blog_versions` -- DROP TABLE IF EXISTS `wp_blog_versions`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_blog_versions` ( `blog_id` bigint(20) NOT NULL DEFAULT 0, - `db_version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `db_version` varchar(20) NOT NULL DEFAULT '', `last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`blog_id`), KEY `db_version` (`db_version`) @@ -1068,12 +1189,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_blogmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_blogmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `blog_id` bigint(20) NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `meta_key` (`meta_key`(191)), KEY `blog_id` (`blog_id`) @@ -1086,7 +1207,7 @@ CREATE TABLE `wp_blogmeta` ( LOCK TABLES `wp_blogmeta` WRITE; /*!40000 ALTER TABLE `wp_blogmeta` DISABLE KEYS */; -INSERT INTO `wp_blogmeta` VALUES (1,1,'db_version','51917'),(2,1,'db_last_updated','0.83203200 1643225372'),(3,2,'db_version','51917'),(4,2,'db_last_updated','0.55981100 1643225373'),(5,3,'db_version','51917'),(6,3,'db_last_updated','0.29042700 1643225374'); +INSERT INTO `wp_blogmeta` VALUES (1,1,'db_version','56657'),(2,1,'db_last_updated','0.37516000 1708421300'),(3,2,'db_version','51917'),(4,2,'db_last_updated','0.55981100 1643225373'),(5,3,'db_version','51917'),(6,3,'db_last_updated','0.29042700 1643225374'); /*!40000 ALTER TABLE `wp_blogmeta` ENABLE KEYS */; UNLOCK TABLES; @@ -1096,12 +1217,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_blogs`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_blogs` ( `blog_id` bigint(20) NOT NULL AUTO_INCREMENT, `site_id` bigint(20) NOT NULL DEFAULT 0, - `domain` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `path` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `public` tinyint(2) NOT NULL DEFAULT 1, @@ -1132,12 +1253,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_commentmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_commentmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `comment_id` (`comment_id`), KEY `meta_key` (`meta_key`(191)) @@ -1159,21 +1280,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, - `comment_author` tinytext COLLATE utf8mb4_unicode_ci NOT NULL, - `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `comment_content` text COLLATE utf8mb4_unicode_ci NOT NULL, + `comment_content` text NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT 0, - `comment_approved` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1', - `comment_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `comment_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'comment', + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`comment_ID`), @@ -1200,21 +1321,21 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_links`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_links` ( `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Y', + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, `link_rating` int(11) NOT NULL DEFAULT 0, `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`link_id`), KEY `link_visible` (`link_visible`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; @@ -1235,16 +1356,16 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_options`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_options` ( `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `option_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `option_value` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `autoload` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes', + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (`option_id`), UNIQUE KEY `option_name` (`option_name`), KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=137 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=138 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1253,7 +1374,7 @@ CREATE TABLE `wp_options` ( LOCK TABLES `wp_options` WRITE; /*!40000 ALTER TABLE `wp_options` DISABLE KEYS */; -INSERT INTO `wp_options` VALUES (1,'siteurl','http://wordpress','yes'),(2,'home','http://wordpress','yes'),(3,'blogname','Test','yes'),(4,'blogdescription','Just another Fake Site site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:98:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:16:\".*wp-signup.php$\";s:21:\"index.php?signup=true\";s:18:\".*wp-activate.php$\";s:23:\"index.php?activate=true\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:1:{i:0;s:31:\"airplane-mode/airplane-mode.php\";}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentyone','yes'),(41,'stylesheet','twentytwentyone','yes'),(44,'comment_registration','0','yes'),(45,'html_type','text/html','yes'),(46,'use_trackback','0','yes'),(47,'default_role','subscriber','yes'),(48,'db_version','51917','yes'),(49,'uploads_use_yearmonth_folders','1','yes'),(50,'upload_path','','yes'),(51,'blog_public','1','yes'),(52,'default_link_category','2','yes'),(53,'show_on_front','posts','yes'),(54,'tag_base','','yes'),(55,'show_avatars','1','yes'),(56,'avatar_rating','G','yes'),(57,'upload_url_path','','yes'),(58,'thumbnail_size_w','150','yes'),(59,'thumbnail_size_h','150','yes'),(60,'thumbnail_crop','1','yes'),(61,'medium_size_w','300','yes'),(62,'medium_size_h','300','yes'),(63,'avatar_default','mystery','yes'),(64,'large_size_w','1024','yes'),(65,'large_size_h','1024','yes'),(66,'image_default_link_type','none','yes'),(67,'image_default_size','','yes'),(68,'image_default_align','','yes'),(69,'close_comments_for_old_posts','0','yes'),(70,'close_comments_days_old','14','yes'),(71,'thread_comments','1','yes'),(72,'thread_comments_depth','5','yes'),(73,'page_comments','0','yes'),(74,'comments_per_page','50','yes'),(75,'default_comments_page','newest','yes'),(76,'comment_order','asc','yes'),(77,'sticky_posts','a:0:{}','yes'),(78,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(79,'widget_text','a:0:{}','yes'),(80,'widget_rss','a:0:{}','yes'),(81,'uninstall_plugins','a:0:{}','no'),(82,'timezone_string','','yes'),(83,'page_for_posts','0','yes'),(84,'page_on_front','0','yes'),(85,'default_post_format','0','yes'),(86,'link_manager_enabled','0','yes'),(87,'finished_splitting_shared_terms','1','yes'),(88,'site_icon','0','yes'),(89,'medium_large_size_w','768','yes'),(90,'medium_large_size_h','0','yes'),(91,'wp_page_for_privacy_policy','0','yes'),(92,'show_comments_cookies_opt_in','1','yes'),(93,'admin_email_lifespan','1592062215','yes'),(94,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(95,'fresh_site','1','yes'),(96,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(97,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(98,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(99,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(100,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(101,'sidebars_widgets','a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:6:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";i:3;s:10:\"archives-2\";i:4;s:12:\"categories-2\";i:5;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(102,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(103,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(104,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(105,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'cron','a:4:{i:1635607818;a:4:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1635647079;a:1:{s:18:\"wp_https_detection\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1635690279;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','yes'),(114,'_transient_timeout_wporg_theme_feature_list','1001576510232','no'),(115,'_transient_wporg_theme_feature_list','a:0:{}','no'),(116,'widget_block','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(118,'auto_updater.lock','1635603880','no'),(119,'disallowed_keys','','no'),(120,'comment_previously_approved','1','yes'),(121,'auto_plugin_theme_update_emails','a:0:{}','no'),(122,'auto_update_core_dev','enabled','yes'),(123,'auto_update_core_minor','enabled','yes'),(124,'auto_update_core_major','unset','yes'),(125,'wp_force_deactivated_plugins','a:0:{}','yes'),(126,'initial_db_version','45805','yes'),(127,'finished_updating_comment_type','1','yes'),(128,'db_upgraded','1','yes'),(129,'https_detection_errors','a:1:{s:20:\"https_request_failed\";a:1:{i:0;s:21:\"HTTPS request failed.\";}}','yes'),(132,'_transient_doing_cron','1643225371.1995589733123779296875','yes'),(133,'theme_mods_twentytwenty','a:1:{s:16:\"sidebars_widgets\";a:2:{s:4:\"time\";i:1643201081;s:4:\"data\";a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}}}}','yes'),(134,'current_theme','Twenty Twenty-One','yes'),(135,'theme_switched','','yes'),(136,'theme_mods_twentytwentyone','a:1:{s:18:\"nav_menu_locations\";a:0:{}}','yes'); +INSERT INTO `wp_options` VALUES (1,'siteurl','http://wordpress','yes'),(2,'home','http://wordpress','yes'),(3,'blogname','Test','yes'),(4,'blogdescription','Just another Fake Site site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:98:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:16:\".*wp-signup.php$\";s:21:\"index.php?signup=true\";s:18:\".*wp-activate.php$\";s:23:\"index.php?activate=true\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:1:{i:0;s:31:\"airplane-mode/airplane-mode.php\";}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentyone','yes'),(41,'stylesheet','twentytwentyone','yes'),(44,'comment_registration','0','yes'),(45,'html_type','text/html','yes'),(46,'use_trackback','0','yes'),(47,'default_role','subscriber','yes'),(48,'db_version','56657','yes'),(49,'uploads_use_yearmonth_folders','1','yes'),(50,'upload_path','','yes'),(51,'blog_public','1','yes'),(52,'default_link_category','2','yes'),(53,'show_on_front','posts','yes'),(54,'tag_base','','yes'),(55,'show_avatars','1','yes'),(56,'avatar_rating','G','yes'),(57,'upload_url_path','','yes'),(58,'thumbnail_size_w','150','yes'),(59,'thumbnail_size_h','150','yes'),(60,'thumbnail_crop','1','yes'),(61,'medium_size_w','300','yes'),(62,'medium_size_h','300','yes'),(63,'avatar_default','mystery','yes'),(64,'large_size_w','1024','yes'),(65,'large_size_h','1024','yes'),(66,'image_default_link_type','none','yes'),(67,'image_default_size','','yes'),(68,'image_default_align','','yes'),(69,'close_comments_for_old_posts','0','yes'),(70,'close_comments_days_old','14','yes'),(71,'thread_comments','1','yes'),(72,'thread_comments_depth','5','yes'),(73,'page_comments','0','yes'),(74,'comments_per_page','50','yes'),(75,'default_comments_page','newest','yes'),(76,'comment_order','asc','yes'),(77,'sticky_posts','a:0:{}','yes'),(78,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(79,'widget_text','a:0:{}','yes'),(80,'widget_rss','a:0:{}','yes'),(81,'uninstall_plugins','a:0:{}','no'),(82,'timezone_string','','yes'),(83,'page_for_posts','0','yes'),(84,'page_on_front','0','yes'),(85,'default_post_format','0','yes'),(86,'link_manager_enabled','0','yes'),(87,'finished_splitting_shared_terms','1','yes'),(88,'site_icon','0','yes'),(89,'medium_large_size_w','768','yes'),(90,'medium_large_size_h','0','yes'),(91,'wp_page_for_privacy_policy','0','yes'),(92,'show_comments_cookies_opt_in','1','yes'),(93,'admin_email_lifespan','1592062215','yes'),(94,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(95,'fresh_site','1','yes'),(96,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(97,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(98,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(99,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(100,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(101,'sidebars_widgets','a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:6:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";i:3;s:10:\"archives-2\";i:4;s:12:\"categories-2\";i:5;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(102,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(103,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(104,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(105,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'cron','a:3:{i:1635607818;a:4:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1635690279;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','yes'),(114,'_transient_timeout_wporg_theme_feature_list','1001576510232','no'),(115,'_transient_wporg_theme_feature_list','a:0:{}','no'),(116,'widget_block','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(118,'auto_updater.lock','1635603880','no'),(119,'disallowed_keys','','no'),(120,'comment_previously_approved','1','yes'),(121,'auto_plugin_theme_update_emails','a:0:{}','no'),(122,'auto_update_core_dev','enabled','yes'),(123,'auto_update_core_minor','enabled','yes'),(124,'auto_update_core_major','unset','yes'),(125,'wp_force_deactivated_plugins','a:0:{}','yes'),(126,'initial_db_version','45805','yes'),(127,'finished_updating_comment_type','1','yes'),(128,'db_upgraded','1','yes'),(129,'https_detection_errors','a:1:{s:20:\"https_request_failed\";a:1:{i:0;s:21:\"HTTPS request failed.\";}}','yes'),(132,'_transient_doing_cron','1643225371.1995589733123779296875','yes'),(133,'theme_mods_twentytwenty','a:1:{s:16:\"sidebars_widgets\";a:2:{s:4:\"time\";i:1643201081;s:4:\"data\";a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}}}}','yes'),(134,'current_theme','Twenty Twenty-One','yes'),(135,'theme_switched','','yes'),(136,'theme_mods_twentytwentyone','a:1:{s:18:\"nav_menu_locations\";a:0:{}}','yes'),(137,'wp_attachment_pages_enabled','1','yes'); /*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; UNLOCK TABLES; @@ -1263,12 +1384,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_postmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_postmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) @@ -1290,30 +1411,30 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_posts`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `post_title` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_excerpt` text COLLATE utf8mb4_unicode_ci NOT NULL, - `post_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'publish', - `comment_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `ping_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open', - `post_password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `post_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `to_ping` text COLLATE utf8mb4_unicode_ci NOT NULL, - `pinged` text COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `post_content_filtered` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, - `guid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `guid` varchar(255) NOT NULL DEFAULT '', `menu_order` int(11) NOT NULL DEFAULT 0, - `post_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'post', - `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', `comment_count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), KEY `post_name` (`post_name`(191)), @@ -1338,11 +1459,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_registration_log`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_registration_log` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, - `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `IP` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `IP` varchar(30) NOT NULL DEFAULT '', `blog_id` bigint(20) NOT NULL DEFAULT 0, `date_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`ID`), @@ -1366,19 +1487,19 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_signups`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_signups` ( `signup_id` bigint(20) NOT NULL AUTO_INCREMENT, - `domain` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `path` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `title` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', + `title` longtext NOT NULL, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `activated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL DEFAULT 0, - `activation_key` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `meta` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `activation_key` varchar(50) NOT NULL DEFAULT '', + `meta` longtext DEFAULT NULL, PRIMARY KEY (`signup_id`), KEY `activation_key` (`activation_key`), KEY `user_email` (`user_email`), @@ -1402,11 +1523,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_site`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_site` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `domain` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `path` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `domain` (`domain`(140),`path`(51)) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; @@ -1428,12 +1549,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_sitemeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_sitemeta` ( `meta_id` bigint(20) NOT NULL AUTO_INCREMENT, `site_id` bigint(20) NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `meta_key` (`meta_key`(191)), KEY `site_id` (`site_id`) @@ -1446,7 +1567,7 @@ CREATE TABLE `wp_sitemeta` ( LOCK TABLES `wp_sitemeta` WRITE; /*!40000 ALTER TABLE `wp_sitemeta` DISABLE KEYS */; -INSERT INTO `wp_sitemeta` VALUES (1,1,'user_count','1'),(2,1,'site_name','Test Sites'),(3,1,'admin_email','admin@wordpress'),(4,1,'admin_user_id','1'),(5,1,'registration','none'),(6,1,'upload_filetypes','jpg jpeg png gif mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg flac m4a wav mp4 m4v webm ogv flv'),(7,1,'blog_upload_space','100'),(8,1,'fileupload_maxk','1500'),(10,1,'allowedthemes','a:1:{s:12:\"twentytwenty\";b:1;}'),(11,1,'illegal_names','a:8:{i:0;s:3:\"www\";i:1;s:3:\"web\";i:2;s:4:\"root\";i:3;s:5:\"admin\";i:4;s:4:\"main\";i:5;s:6:\"invite\";i:6;s:13:\"administrator\";i:7;s:5:\"files\";}'),(12,1,'wpmu_upgrade_site','51917'),(13,1,'welcome_email','Howdy USERNAME,\n\nYour new SITE_NAME site has been successfully set up at:\nBLOG_URL\n\nYou can log in to the administrator account with the following information:\n\nUsername: USERNAME\nPassword: PASSWORD\nLog in here: BLOG_URLwp-login.php\n\nWe hope you enjoy your new site. Thanks!\n\n--The Team @ SITE_NAME'),(14,1,'first_post','Welcome to %s. This is your first post. Edit or delete it, then start writing!'),(15,1,'siteurl','http://wordpress/'),(16,1,'add_new_users','0'),(18,1,'subdomain_install','1'),(19,1,'global_terms_enabled','0'),(20,1,'ms_files_rewriting',''),(21,1,'initial_db_version',''),(22,1,'active_sitewide_plugins','a:0:{}'),(23,1,'WPLANG','en_US'),(24,1,'upload_space_check_disabled','1'),(25,1,'site_admins','a:1:{i:0;s:5:\"admin\";}'),(26,1,'blog_count','3'),(27,1,'site_meta_supported','1'),(28,1,'_site_transient_update_core','O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.8.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.8.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.8.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.8.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.8.1\";s:7:\"version\";s:5:\"5.8.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1635603880;s:15:\"version_checked\";s:5:\"5.8.1\";s:12:\"translations\";a:0:{}}'),(32,1,'_site_transient_update_themes','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1635604067;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"2.1\";s:12:\"twentytwenty\";s:3:\"1.8\";s:15:\"twentytwentyone\";s:3:\"1.4\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.1\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.1.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.8\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.8.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.4.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}'),(33,1,'airplane-mode','on'),(36,1,'_site_transient_update_plugins','O:8:\"stdClass\":4:{s:12:\"last_checked\";i:1635604066;s:8:\"response\";a:1:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:5:\"4.2.1\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/akismet.4.2.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:59:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=969272\";s:2:\"1x\";s:59:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=969272\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:61:\"https://ps.w.org/akismet/assets/banner-772x250.jpg?rev=479904\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.0\";s:6:\"tested\";s:5:\"5.8.1\";s:12:\"requires_php\";b:0;}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:1:{s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}}}'),(39,1,'_site_transient_timeout_theme_roots','1643227171'),(40,1,'_site_transient_theme_roots','a:5:{s:5:\"dummy\";s:7:\"/themes\";s:8:\"isolated\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";s:15:\"twentytwentytwo\";s:7:\"/themes\";}'); +INSERT INTO `wp_sitemeta` VALUES (1,1,'user_count','1'),(2,1,'site_name','Test Sites'),(3,1,'admin_email','admin@wordpress'),(4,1,'admin_user_id','1'),(5,1,'registration','none'),(6,1,'upload_filetypes','jpg jpeg png gif mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg flac m4a wav mp4 m4v webm ogv flv'),(7,1,'blog_upload_space','100'),(8,1,'fileupload_maxk','1500'),(10,1,'allowedthemes','a:1:{s:12:\"twentytwenty\";b:1;}'),(11,1,'illegal_names','a:8:{i:0;s:3:\"www\";i:1;s:3:\"web\";i:2;s:4:\"root\";i:3;s:5:\"admin\";i:4;s:4:\"main\";i:5;s:6:\"invite\";i:6;s:13:\"administrator\";i:7;s:5:\"files\";}'),(12,1,'wpmu_upgrade_site','51917'),(13,1,'welcome_email','Howdy USERNAME,\n\nYour new SITE_NAME site has been successfully set up at:\nBLOG_URL\n\nYou can log in to the administrator account with the following information:\n\nUsername: USERNAME\nPassword: PASSWORD\nLog in here: BLOG_URLwp-login.php\n\nWe hope you enjoy your new site. Thanks!\n\n--The Team @ SITE_NAME'),(14,1,'first_post','Welcome to %s. This is your first post. Edit or delete it, then start writing!'),(15,1,'siteurl','http://wordpress/'),(16,1,'add_new_users','0'),(18,1,'subdomain_install','1'),(19,1,'global_terms_enabled','0'),(20,1,'ms_files_rewriting',''),(21,1,'initial_db_version',''),(22,1,'active_sitewide_plugins','a:0:{}'),(23,1,'WPLANG','en_US'),(24,1,'upload_space_check_disabled','1'),(25,1,'site_admins','a:1:{i:0;s:5:\"admin\";}'),(26,1,'blog_count','3'),(27,1,'site_meta_supported','1'),(28,1,'_site_transient_update_core','O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.8.1.zip\";s:6:\"locale\";s:5:\"en_US\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:59:\"https://downloads.wordpress.org/release/wordpress-5.8.1.zip\";s:10:\"no_content\";s:70:\"https://downloads.wordpress.org/release/wordpress-5.8.1-no-content.zip\";s:11:\"new_bundled\";s:71:\"https://downloads.wordpress.org/release/wordpress-5.8.1-new-bundled.zip\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.8.1\";s:7:\"version\";s:5:\"5.8.1\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1635603880;s:15:\"version_checked\";s:5:\"5.8.1\";s:12:\"translations\";a:0:{}}'),(32,1,'_site_transient_update_themes','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1635604067;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"2.1\";s:12:\"twentytwenty\";s:3:\"1.8\";s:15:\"twentytwentyone\";s:3:\"1.4\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.1\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.1.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.8\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.8.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.4\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.4.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}'),(33,1,'airplane-mode','on'),(36,1,'_site_transient_update_plugins','O:8:\"stdClass\":4:{s:12:\"last_checked\";i:1635604066;s:8:\"response\";a:1:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":12:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:5:\"4.2.1\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/akismet.4.2.1.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:59:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=969272\";s:2:\"1x\";s:59:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=969272\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:61:\"https://ps.w.org/akismet/assets/banner-772x250.jpg?rev=479904\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"5.0\";s:6:\"tested\";s:5:\"5.8.1\";s:12:\"requires_php\";b:0;}}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:1:{s:9:\"hello.php\";O:8:\"stdClass\":10:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}s:8:\"requires\";s:3:\"4.6\";}}}'); /*!40000 ALTER TABLE `wp_sitemeta` ENABLE KEYS */; UNLOCK TABLES; @@ -1456,7 +1577,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_term_relationships`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_term_relationships` ( `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, @@ -1481,12 +1602,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_term_taxonomy`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_term_taxonomy` ( `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `taxonomy` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `description` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, `parent` bigint(20) unsigned NOT NULL DEFAULT 0, `count` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`term_taxonomy_id`), @@ -1511,12 +1632,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_termmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_termmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `term_id` (`term_id`), KEY `meta_key` (`meta_key`(191)) @@ -1538,11 +1659,11 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_terms`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `slug` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', `term_group` bigint(10) NOT NULL DEFAULT 0, PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), @@ -1566,12 +1687,12 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_usermeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_usermeta` ( `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, - `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, PRIMARY KEY (`umeta_id`), KEY `user_id` (`user_id`), KEY `meta_key` (`meta_key`(191)) @@ -1594,18 +1715,18 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `wp_users`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; +/*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `wp_users` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `user_pass` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `user_nicename` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - `user_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT 0, - `display_name` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + `display_name` varchar(250) NOT NULL DEFAULT '', `spam` tinyint(2) NOT NULL DEFAULT 0, `deleted` tinyint(2) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), @@ -1624,6 +1745,899 @@ LOCK TABLES `wp_users` WRITE; INSERT INTO `wp_users` VALUES (1,'admin','$P$BeNUMi7VJ78WaC92c4RPhBIb/ivcXv.','admin','admin@wordpress','','2019-12-16 15:30:15','',0,'admin',0,0); /*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_admin_note_actions` +-- + +DROP TABLE IF EXISTS `wp_wc_admin_note_actions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_admin_note_actions` ( + `action_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `note_id` bigint(20) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `label` varchar(255) NOT NULL, + `query` longtext NOT NULL, + `status` varchar(255) NOT NULL, + `actioned_text` varchar(255) NOT NULL, + `nonce_action` varchar(255) DEFAULT NULL, + `nonce_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`action_id`), + KEY `note_id` (`note_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_admin_note_actions` +-- + +LOCK TABLES `wp_wc_admin_note_actions` WRITE; +/*!40000 ALTER TABLE `wp_wc_admin_note_actions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_admin_note_actions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_admin_notes` +-- + +DROP TABLE IF EXISTS `wp_wc_admin_notes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_admin_notes` ( + `note_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `type` varchar(20) NOT NULL, + `locale` varchar(20) NOT NULL, + `title` longtext NOT NULL, + `content` longtext NOT NULL, + `content_data` longtext DEFAULT NULL, + `status` varchar(200) NOT NULL, + `source` varchar(200) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_reminder` datetime DEFAULT NULL, + `is_snoozable` tinyint(1) NOT NULL DEFAULT 0, + `layout` varchar(20) NOT NULL DEFAULT '', + `image` varchar(200) DEFAULT NULL, + `is_deleted` tinyint(1) NOT NULL DEFAULT 0, + `is_read` tinyint(1) NOT NULL DEFAULT 0, + `icon` varchar(200) NOT NULL DEFAULT 'info', + PRIMARY KEY (`note_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_admin_notes` +-- + +LOCK TABLES `wp_wc_admin_notes` WRITE; +/*!40000 ALTER TABLE `wp_wc_admin_notes` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_admin_notes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_category_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_category_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_category_lookup` ( + `category_tree_id` bigint(20) unsigned NOT NULL, + `category_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`category_tree_id`,`category_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_category_lookup` +-- + +LOCK TABLES `wp_wc_category_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_category_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_category_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_customer_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_customer_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_customer_lookup` ( + `customer_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned DEFAULT NULL, + `username` varchar(60) NOT NULL DEFAULT '', + `first_name` varchar(255) NOT NULL, + `last_name` varchar(255) NOT NULL, + `email` varchar(100) DEFAULT NULL, + `date_last_active` timestamp NULL DEFAULT NULL, + `date_registered` timestamp NULL DEFAULT NULL, + `country` char(2) NOT NULL DEFAULT '', + `postcode` varchar(20) NOT NULL DEFAULT '', + `city` varchar(100) NOT NULL DEFAULT '', + `state` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`customer_id`), + UNIQUE KEY `user_id` (`user_id`), + KEY `email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_customer_lookup` +-- + +LOCK TABLES `wp_wc_customer_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_customer_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_customer_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_download_log` +-- + +DROP TABLE IF EXISTS `wp_wc_download_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_download_log` ( + `download_log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `timestamp` datetime NOT NULL, + `permission_id` bigint(20) unsigned NOT NULL, + `user_id` bigint(20) unsigned DEFAULT NULL, + `user_ip_address` varchar(100) DEFAULT '', + PRIMARY KEY (`download_log_id`), + KEY `permission_id` (`permission_id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_download_log` +-- + +LOCK TABLES `wp_wc_download_log` WRITE; +/*!40000 ALTER TABLE `wp_wc_download_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_download_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_coupon_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_coupon_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_coupon_lookup` ( + `order_id` bigint(20) unsigned NOT NULL, + `coupon_id` bigint(20) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `discount_amount` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_id`,`coupon_id`), + KEY `coupon_id` (`coupon_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_coupon_lookup` +-- + +LOCK TABLES `wp_wc_order_coupon_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_coupon_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_coupon_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_product_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_product_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_product_lookup` ( + `order_item_id` bigint(20) unsigned NOT NULL, + `order_id` bigint(20) unsigned NOT NULL, + `product_id` bigint(20) unsigned NOT NULL, + `variation_id` bigint(20) unsigned NOT NULL, + `customer_id` bigint(20) unsigned DEFAULT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `product_qty` int(11) NOT NULL, + `product_net_revenue` double NOT NULL DEFAULT 0, + `product_gross_revenue` double NOT NULL DEFAULT 0, + `coupon_amount` double NOT NULL DEFAULT 0, + `tax_amount` double NOT NULL DEFAULT 0, + `shipping_amount` double NOT NULL DEFAULT 0, + `shipping_tax_amount` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_item_id`), + KEY `order_id` (`order_id`), + KEY `product_id` (`product_id`), + KEY `customer_id` (`customer_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_product_lookup` +-- + +LOCK TABLES `wp_wc_order_product_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_product_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_product_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_stats` +-- + +DROP TABLE IF EXISTS `wp_wc_order_stats`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_stats` ( + `order_id` bigint(20) unsigned NOT NULL, + `parent_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_created_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_paid` datetime DEFAULT '0000-00-00 00:00:00', + `date_completed` datetime DEFAULT '0000-00-00 00:00:00', + `num_items_sold` int(11) NOT NULL DEFAULT 0, + `total_sales` double NOT NULL DEFAULT 0, + `tax_total` double NOT NULL DEFAULT 0, + `shipping_total` double NOT NULL DEFAULT 0, + `net_total` double NOT NULL DEFAULT 0, + `returning_customer` tinyint(1) DEFAULT NULL, + `status` varchar(200) NOT NULL, + `customer_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`order_id`), + KEY `date_created` (`date_created`), + KEY `customer_id` (`customer_id`), + KEY `status` (`status`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_stats` +-- + +LOCK TABLES `wp_wc_order_stats` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_stats` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_stats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_tax_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_tax_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_tax_lookup` ( + `order_id` bigint(20) unsigned NOT NULL, + `tax_rate_id` bigint(20) unsigned NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `shipping_tax` double NOT NULL DEFAULT 0, + `order_tax` double NOT NULL DEFAULT 0, + `total_tax` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_id`,`tax_rate_id`), + KEY `tax_rate_id` (`tax_rate_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_tax_lookup` +-- + +LOCK TABLES `wp_wc_order_tax_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_tax_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_tax_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_attributes_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_product_attributes_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_attributes_lookup` ( + `product_id` bigint(20) NOT NULL, + `product_or_parent_id` bigint(20) NOT NULL, + `taxonomy` varchar(32) NOT NULL, + `term_id` bigint(20) NOT NULL, + `is_variation_attribute` tinyint(1) NOT NULL, + `in_stock` tinyint(1) NOT NULL, + PRIMARY KEY (`product_or_parent_id`,`term_id`,`product_id`,`taxonomy`), + KEY `is_variation_attribute_term_id` (`is_variation_attribute`,`term_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_attributes_lookup` +-- + +LOCK TABLES `wp_wc_product_attributes_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_attributes_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_product_attributes_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_download_directories` +-- + +DROP TABLE IF EXISTS `wp_wc_product_download_directories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_download_directories` ( + `url_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `url` varchar(256) NOT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`url_id`), + KEY `url` (`url`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_download_directories` +-- + +LOCK TABLES `wp_wc_product_download_directories` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_download_directories` DISABLE KEYS */; +INSERT INTO `wp_wc_product_download_directories` VALUES (1,'file:///Users/lucatume/oss/wp-browser/var/wordpress/wp-content/uploads/woocommerce_uploads/',1),(2,'http://localhost:2389/wp-content/uploads/woocommerce_uploads/',1); +/*!40000 ALTER TABLE `wp_wc_product_download_directories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_meta_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_product_meta_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_meta_lookup` ( + `product_id` bigint(20) NOT NULL, + `sku` varchar(100) DEFAULT '', + `virtual` tinyint(1) DEFAULT 0, + `downloadable` tinyint(1) DEFAULT 0, + `min_price` decimal(19,4) DEFAULT NULL, + `max_price` decimal(19,4) DEFAULT NULL, + `onsale` tinyint(1) DEFAULT 0, + `stock_quantity` double DEFAULT NULL, + `stock_status` varchar(100) DEFAULT 'instock', + `rating_count` bigint(20) DEFAULT 0, + `average_rating` decimal(3,2) DEFAULT 0.00, + `total_sales` bigint(20) DEFAULT 0, + `tax_status` varchar(100) DEFAULT 'taxable', + `tax_class` varchar(100) DEFAULT '', + PRIMARY KEY (`product_id`), + KEY `virtual` (`virtual`), + KEY `downloadable` (`downloadable`), + KEY `stock_status` (`stock_status`), + KEY `stock_quantity` (`stock_quantity`), + KEY `onsale` (`onsale`), + KEY `min_max_price` (`min_price`,`max_price`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_meta_lookup` +-- + +LOCK TABLES `wp_wc_product_meta_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_meta_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_product_meta_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_rate_limits` +-- + +DROP TABLE IF EXISTS `wp_wc_rate_limits`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_rate_limits` ( + `rate_limit_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `rate_limit_key` varchar(200) NOT NULL, + `rate_limit_expiry` bigint(20) unsigned NOT NULL, + `rate_limit_remaining` smallint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`rate_limit_id`), + UNIQUE KEY `rate_limit_key` (`rate_limit_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_rate_limits` +-- + +LOCK TABLES `wp_wc_rate_limits` WRITE; +/*!40000 ALTER TABLE `wp_wc_rate_limits` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_rate_limits` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_reserved_stock` +-- + +DROP TABLE IF EXISTS `wp_wc_reserved_stock`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_reserved_stock` ( + `order_id` bigint(20) NOT NULL, + `product_id` bigint(20) NOT NULL, + `stock_quantity` double NOT NULL DEFAULT 0, + `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`order_id`,`product_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_reserved_stock` +-- + +LOCK TABLES `wp_wc_reserved_stock` WRITE; +/*!40000 ALTER TABLE `wp_wc_reserved_stock` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_reserved_stock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_tax_rate_classes` +-- + +DROP TABLE IF EXISTS `wp_wc_tax_rate_classes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_tax_rate_classes` ( + `tax_rate_class_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + PRIMARY KEY (`tax_rate_class_id`), + UNIQUE KEY `slug` (`slug`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_tax_rate_classes` +-- + +LOCK TABLES `wp_wc_tax_rate_classes` WRITE; +/*!40000 ALTER TABLE `wp_wc_tax_rate_classes` DISABLE KEYS */; +INSERT INTO `wp_wc_tax_rate_classes` VALUES (1,'Reduced rate','reduced-rate'),(2,'Zero rate','zero-rate'); +/*!40000 ALTER TABLE `wp_wc_tax_rate_classes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_webhooks` +-- + +DROP TABLE IF EXISTS `wp_wc_webhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_webhooks` ( + `webhook_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `status` varchar(200) NOT NULL, + `name` text NOT NULL, + `user_id` bigint(20) unsigned NOT NULL, + `delivery_url` text NOT NULL, + `secret` text NOT NULL, + `topic` varchar(200) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_created_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `api_version` smallint(4) NOT NULL, + `failure_count` smallint(10) NOT NULL DEFAULT 0, + `pending_delivery` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`webhook_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_webhooks` +-- + +LOCK TABLES `wp_wc_webhooks` WRITE; +/*!40000 ALTER TABLE `wp_wc_webhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_webhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_api_keys` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_api_keys`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_api_keys` ( + `key_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL, + `description` varchar(200) DEFAULT NULL, + `permissions` varchar(10) NOT NULL, + `consumer_key` char(64) NOT NULL, + `consumer_secret` char(43) NOT NULL, + `nonces` longtext DEFAULT NULL, + `truncated_key` char(7) NOT NULL, + `last_access` datetime DEFAULT NULL, + PRIMARY KEY (`key_id`), + KEY `consumer_key` (`consumer_key`), + KEY `consumer_secret` (`consumer_secret`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_api_keys` +-- + +LOCK TABLES `wp_woocommerce_api_keys` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_api_keys` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_api_keys` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_attribute_taxonomies` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_attribute_taxonomies`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_attribute_taxonomies` ( + `attribute_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `attribute_name` varchar(200) NOT NULL, + `attribute_label` varchar(200) DEFAULT NULL, + `attribute_type` varchar(20) NOT NULL, + `attribute_orderby` varchar(20) NOT NULL, + `attribute_public` int(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`attribute_id`), + KEY `attribute_name` (`attribute_name`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_attribute_taxonomies` +-- + +LOCK TABLES `wp_woocommerce_attribute_taxonomies` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_attribute_taxonomies` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_attribute_taxonomies` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_downloadable_product_permissions` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_downloadable_product_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_downloadable_product_permissions` ( + `permission_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `download_id` varchar(36) NOT NULL, + `product_id` bigint(20) unsigned NOT NULL, + `order_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `order_key` varchar(200) NOT NULL, + `user_email` varchar(200) NOT NULL, + `user_id` bigint(20) unsigned DEFAULT NULL, + `downloads_remaining` varchar(9) DEFAULT NULL, + `access_granted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `access_expires` datetime DEFAULT NULL, + `download_count` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`permission_id`), + KEY `download_order_key_product` (`product_id`,`order_id`,`order_key`(16),`download_id`), + KEY `download_order_product` (`download_id`,`order_id`,`product_id`), + KEY `order_id` (`order_id`), + KEY `user_order_remaining_expires` (`user_id`,`order_id`,`downloads_remaining`,`access_expires`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_downloadable_product_permissions` +-- + +LOCK TABLES `wp_woocommerce_downloadable_product_permissions` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_downloadable_product_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_downloadable_product_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_log` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_log` ( + `log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `timestamp` datetime NOT NULL, + `level` smallint(4) NOT NULL, + `source` varchar(200) NOT NULL, + `message` longtext NOT NULL, + `context` longtext DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `level` (`level`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_log` +-- + +LOCK TABLES `wp_woocommerce_log` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_order_itemmeta` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_order_itemmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_order_itemmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `order_item_id` bigint(20) unsigned NOT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `order_item_id` (`order_item_id`), + KEY `meta_key` (`meta_key`(32)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_order_itemmeta` +-- + +LOCK TABLES `wp_woocommerce_order_itemmeta` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_order_itemmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_order_itemmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_order_items` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_order_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_order_items` ( + `order_item_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `order_item_name` text NOT NULL, + `order_item_type` varchar(200) NOT NULL DEFAULT '', + `order_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`order_item_id`), + KEY `order_id` (`order_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_order_items` +-- + +LOCK TABLES `wp_woocommerce_order_items` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_order_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_order_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_payment_tokenmeta` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_payment_tokenmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_payment_tokenmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `payment_token_id` bigint(20) unsigned NOT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `payment_token_id` (`payment_token_id`), + KEY `meta_key` (`meta_key`(32)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_payment_tokenmeta` +-- + +LOCK TABLES `wp_woocommerce_payment_tokenmeta` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokenmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokenmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_payment_tokens` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_payment_tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_payment_tokens` ( + `token_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `gateway_id` varchar(200) NOT NULL, + `token` text NOT NULL, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `type` varchar(200) NOT NULL, + `is_default` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`token_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_payment_tokens` +-- + +LOCK TABLES `wp_woocommerce_payment_tokens` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_sessions` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_sessions` ( + `session_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `session_key` char(32) NOT NULL, + `session_value` longtext NOT NULL, + `session_expiry` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`session_id`), + UNIQUE KEY `session_key` (`session_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_sessions` +-- + +LOCK TABLES `wp_woocommerce_sessions` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zone_locations` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zone_locations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zone_locations` ( + `location_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `zone_id` bigint(20) unsigned NOT NULL, + `location_code` varchar(200) NOT NULL, + `location_type` varchar(40) NOT NULL, + PRIMARY KEY (`location_id`), + KEY `location_id` (`location_id`), + KEY `location_type_code` (`location_type`(10),`location_code`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zone_locations` +-- + +LOCK TABLES `wp_woocommerce_shipping_zone_locations` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_locations` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_locations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zone_methods` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zone_methods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zone_methods` ( + `zone_id` bigint(20) unsigned NOT NULL, + `instance_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `method_id` varchar(200) NOT NULL, + `method_order` bigint(20) unsigned NOT NULL, + `is_enabled` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`instance_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zone_methods` +-- + +LOCK TABLES `wp_woocommerce_shipping_zone_methods` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_methods` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_methods` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zones` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zones` ( + `zone_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `zone_name` varchar(200) NOT NULL, + `zone_order` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`zone_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zones` +-- + +LOCK TABLES `wp_woocommerce_shipping_zones` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zones` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_tax_rate_locations` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_tax_rate_locations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_tax_rate_locations` ( + `location_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `location_code` varchar(200) NOT NULL, + `tax_rate_id` bigint(20) unsigned NOT NULL, + `location_type` varchar(40) NOT NULL, + PRIMARY KEY (`location_id`), + KEY `tax_rate_id` (`tax_rate_id`), + KEY `location_type_code` (`location_type`(10),`location_code`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_tax_rate_locations` +-- + +LOCK TABLES `wp_woocommerce_tax_rate_locations` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rate_locations` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rate_locations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_tax_rates` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_tax_rates`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_tax_rates` ( + `tax_rate_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `tax_rate_country` varchar(2) NOT NULL DEFAULT '', + `tax_rate_state` varchar(200) NOT NULL DEFAULT '', + `tax_rate` varchar(8) NOT NULL DEFAULT '', + `tax_rate_name` varchar(200) NOT NULL DEFAULT '', + `tax_rate_priority` bigint(20) unsigned NOT NULL, + `tax_rate_compound` int(1) NOT NULL DEFAULT 0, + `tax_rate_shipping` int(1) NOT NULL DEFAULT 1, + `tax_rate_order` bigint(20) unsigned NOT NULL, + `tax_rate_class` varchar(200) NOT NULL DEFAULT '', + PRIMARY KEY (`tax_rate_id`), + KEY `tax_rate_country` (`tax_rate_country`), + KEY `tax_rate_state` (`tax_rate_state`(2)), + KEY `tax_rate_class` (`tax_rate_class`(10)), + KEY `tax_rate_priority` (`tax_rate_priority`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_tax_rates` +-- + +LOCK TABLES `wp_woocommerce_tax_rates` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rates` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rates` ENABLE KEYS */; +UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; @@ -1634,4 +2648,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2022-11-08 19:41:20 +-- Dump completed on 2024-02-20 10:28:25 diff --git a/tests/_data/wploader-wpdb-dump.sql b/tests/_data/wploader-wpdb-dump.sql index d3e5bd329..b50db2202 100644 --- a/tests/_data/wploader-wpdb-dump.sql +++ b/tests/_data/wploader-wpdb-dump.sql @@ -1,13 +1,13 @@ --- MariaDB dump 10.19 Distrib 10.5.19-MariaDB, for debian-linux-gnu (aarch64) +-- MySQL dump 10.13 Distrib 8.2.0, for macos14.0 (arm64) -- --- Host: database Database: wordpress +-- Host: 127.0.0.1 Database: wordpress -- ------------------------------------------------------ --- Server version 10.8.8-MariaDB-1:10.8.8+maria~ubu2204 +-- Server version 5.5.5-10.8.8-MariaDB-1:10.8.8+maria~ubu2204 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; +/*!50503 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; @@ -16,76 +16,13 @@ /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- --- Table structure for table `wp_blogmeta` --- - -DROP TABLE IF EXISTS `wp_blogmeta`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_blogmeta` ( - `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `blog_id` bigint(20) NOT NULL DEFAULT 0, - `meta_key` varchar(255) DEFAULT NULL, - `meta_value` longtext DEFAULT NULL, - PRIMARY KEY (`meta_id`), - KEY `meta_key` (`meta_key`(191)), - KEY `blog_id` (`blog_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_blogmeta` --- - -LOCK TABLES `wp_blogmeta` WRITE; -/*!40000 ALTER TABLE `wp_blogmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_blogmeta` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_blogs` --- - -DROP TABLE IF EXISTS `wp_blogs`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_blogs` ( - `blog_id` bigint(20) NOT NULL AUTO_INCREMENT, - `site_id` bigint(20) NOT NULL DEFAULT 0, - `domain` varchar(200) NOT NULL DEFAULT '', - `path` varchar(100) NOT NULL DEFAULT '', - `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `public` tinyint(2) NOT NULL DEFAULT 1, - `archived` tinyint(2) NOT NULL DEFAULT 0, - `mature` tinyint(2) NOT NULL DEFAULT 0, - `spam` tinyint(2) NOT NULL DEFAULT 0, - `deleted` tinyint(2) NOT NULL DEFAULT 0, - `lang_id` int(11) NOT NULL DEFAULT 0, - PRIMARY KEY (`blog_id`), - KEY `domain` (`domain`(50),`path`(5)), - KEY `lang_id` (`lang_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_blogs` --- - -LOCK TABLES `wp_blogs` WRITE; -/*!40000 ALTER TABLE `wp_blogs` DISABLE KEYS */; -INSERT INTO `wp_blogs` VALUES (1,1,'wordpress.test','/','2023-06-06 11:12:40','0000-00-00 00:00:00',1,0,0,0,0,0); -/*!40000 ALTER TABLE `wp_blogs` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_commentmeta` +-- Table structure for table `foo_commentmeta` -- -DROP TABLE IF EXISTS `wp_commentmeta`; +DROP TABLE IF EXISTS `foo_commentmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_commentmeta` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_commentmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, `meta_key` varchar(255) DEFAULT NULL, @@ -93,26 +30,26 @@ CREATE TABLE `wp_commentmeta` ( PRIMARY KEY (`meta_id`), KEY `comment_id` (`comment_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_commentmeta` +-- Dumping data for table `foo_commentmeta` -- -LOCK TABLES `wp_commentmeta` WRITE; -/*!40000 ALTER TABLE `wp_commentmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_commentmeta` ENABLE KEYS */; +LOCK TABLES `foo_commentmeta` WRITE; +/*!40000 ALTER TABLE `foo_commentmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `foo_commentmeta` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_comments` +-- Table structure for table `foo_comments` -- -DROP TABLE IF EXISTS `wp_comments`; +DROP TABLE IF EXISTS `foo_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_comments` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, `comment_author` tinytext NOT NULL, @@ -125,7 +62,7 @@ CREATE TABLE `wp_comments` ( `comment_karma` int(11) NOT NULL DEFAULT 0, `comment_approved` varchar(20) NOT NULL DEFAULT '1', `comment_agent` varchar(255) NOT NULL DEFAULT '', - `comment_type` varchar(20) NOT NULL DEFAULT 'comment', + `comment_type` varchar(20) NOT NULL DEFAULT '', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (`comment_ID`), @@ -134,27 +71,27 @@ CREATE TABLE `wp_comments` ( KEY `comment_date_gmt` (`comment_date_gmt`), KEY `comment_parent` (`comment_parent`), KEY `comment_author_email` (`comment_author_email`(10)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_comments` +-- Dumping data for table `foo_comments` -- -LOCK TABLES `wp_comments` WRITE; -/*!40000 ALTER TABLE `wp_comments` DISABLE KEYS */; -INSERT INTO `wp_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.test/','','2023-06-06 11:10:46','2023-06-06 11:10:46','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','comment',0,0); -/*!40000 ALTER TABLE `wp_comments` ENABLE KEYS */; +LOCK TABLES `foo_comments` WRITE; +/*!40000 ALTER TABLE `foo_comments` DISABLE KEYS */; +INSERT INTO `foo_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.org/','','2016-09-15 15:16:23','2016-09-15 15:16:23','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','',0,0); +/*!40000 ALTER TABLE `foo_comments` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_links` +-- Table structure for table `foo_links` -- -DROP TABLE IF EXISTS `wp_links`; +DROP TABLE IF EXISTS `foo_links`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_links` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_links` ( `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `link_url` varchar(255) NOT NULL DEFAULT '', `link_name` varchar(255) NOT NULL DEFAULT '', @@ -170,54 +107,53 @@ CREATE TABLE `wp_links` ( `link_rss` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`link_id`), KEY `link_visible` (`link_visible`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_links` +-- Dumping data for table `foo_links` -- -LOCK TABLES `wp_links` WRITE; -/*!40000 ALTER TABLE `wp_links` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_links` ENABLE KEYS */; +LOCK TABLES `foo_links` WRITE; +/*!40000 ALTER TABLE `foo_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `foo_links` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_options` +-- Table structure for table `foo_options` -- -DROP TABLE IF EXISTS `wp_options`; +DROP TABLE IF EXISTS `foo_options`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_options` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_options` ( `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `option_name` varchar(191) NOT NULL DEFAULT '', `option_value` longtext NOT NULL, `autoload` varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (`option_id`), - UNIQUE KEY `option_name` (`option_name`), - KEY `autoload` (`autoload`) -) ENGINE=InnoDB AUTO_INCREMENT=121 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + UNIQUE KEY `option_name` (`option_name`) +) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_options` +-- Dumping data for table `foo_options` -- -LOCK TABLES `wp_options` WRITE; -/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */; -INSERT INTO `wp_options` VALUES (1,'siteurl','https://wordpress.test','yes'),(2,'home','https://wordpress.test','yes'),(3,'blogname','Test','yes'),(4,'blogdescription','','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress.test','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/blog/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:96:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:52:\"blog/author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:47:\"blog/author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:28:\"blog/author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:40:\"blog/author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:22:\"blog/author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:74:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:69:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:50:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:62:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:44:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:61:\"blog/([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:56:\"blog/([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:37:\"blog/([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:49:\"blog/([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:31:\"blog/([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:48:\"blog/([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:43:\"blog/([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:24:\"blog/([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:36:\"blog/([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:18:\"blog/([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:63:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:73:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:93:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:88:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:88:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:69:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:58:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:62:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:82:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:77:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:70:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:77:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:66:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:52:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:62:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:82:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:77:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:77:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:58:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:69:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:56:\"blog/([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:43:\"blog/([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentythree','yes'),(41,'stylesheet','twentytwentythree','yes'),(42,'comment_registration','0','yes'),(43,'html_type','text/html','yes'),(44,'use_trackback','0','yes'),(45,'default_role','subscriber','yes'),(46,'db_version','53496','yes'),(47,'uploads_use_yearmonth_folders','1','yes'),(48,'upload_path','','yes'),(49,'blog_public','1','yes'),(50,'default_link_category','2','yes'),(51,'show_on_front','posts','yes'),(52,'tag_base','','yes'),(53,'show_avatars','1','yes'),(54,'avatar_rating','G','yes'),(55,'upload_url_path','','yes'),(56,'thumbnail_size_w','150','yes'),(57,'thumbnail_size_h','150','yes'),(58,'thumbnail_crop','1','yes'),(59,'medium_size_w','300','yes'),(60,'medium_size_h','300','yes'),(61,'avatar_default','mystery','yes'),(62,'large_size_w','1024','yes'),(63,'large_size_h','1024','yes'),(64,'image_default_link_type','none','yes'),(65,'image_default_size','','yes'),(66,'image_default_align','','yes'),(67,'close_comments_for_old_posts','0','yes'),(68,'close_comments_days_old','14','yes'),(69,'thread_comments','1','yes'),(70,'thread_comments_depth','5','yes'),(71,'page_comments','0','yes'),(72,'comments_per_page','50','yes'),(73,'default_comments_page','newest','yes'),(74,'comment_order','asc','yes'),(75,'sticky_posts','a:0:{}','yes'),(76,'widget_categories','a:0:{}','yes'),(77,'widget_text','a:0:{}','yes'),(78,'widget_rss','a:0:{}','yes'),(79,'uninstall_plugins','a:0:{}','no'),(80,'timezone_string','','yes'),(81,'page_for_posts','0','yes'),(82,'page_on_front','0','yes'),(83,'default_post_format','0','yes'),(84,'link_manager_enabled','0','yes'),(85,'finished_splitting_shared_terms','1','yes'),(86,'site_icon','0','yes'),(87,'medium_large_size_w','768','yes'),(88,'medium_large_size_h','0','yes'),(89,'wp_page_for_privacy_policy','0','yes'),(90,'show_comments_cookies_opt_in','1','yes'),(91,'admin_email_lifespan','1701601846','yes'),(92,'disallowed_keys','','no'),(93,'comment_previously_approved','1','yes'),(94,'auto_plugin_theme_update_emails','a:0:{}','no'),(95,'auto_update_core_dev','enabled','yes'),(96,'auto_update_core_minor','enabled','yes'),(97,'auto_update_core_major','enabled','yes'),(98,'wp_force_deactivated_plugins','a:0:{}','yes'),(99,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(100,'fresh_site','1','yes'),(101,'post_count','1','yes'),(102,'widget_block','a:6:{i:2;a:1:{s:7:\"content\";s:19:\"\";}i:3;a:1:{s:7:\"content\";s:154:\"

Recent Posts

\";}i:4;a:1:{s:7:\"content\";s:227:\"

Recent Comments

\";}i:5;a:1:{s:7:\"content\";s:146:\"

Archives

\";}i:6;a:1:{s:7:\"content\";s:150:\"

Categories

\";}s:12:\"_multiwidget\";i:1;}','yes'),(103,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:7:\"block-2\";i:1;s:7:\"block-3\";i:2;s:7:\"block-4\";}s:9:\"sidebar-2\";a:2:{i:0;s:7:\"block-5\";i:1;s:7:\"block-6\";}s:13:\"array_version\";i:3;}','yes'),(104,'cron','a:3:{i:1686049924;a:6:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:18:\"wp_https_detection\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1686136324;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','yes'),(105,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_archives','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(112,'widget_meta','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(113,'widget_search','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(114,'widget_recent-posts','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(115,'widget_recent-comments','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(116,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(117,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(118,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(119,'_transient_doing_cron','1686049924.8459129333496093750000','yes'),(120,'upload_space_check_disabled','1','no'); -/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; +LOCK TABLES `foo_options` WRITE; +/*!40000 ALTER TABLE `foo_options` DISABLE KEYS */; +INSERT INTO `foo_options` VALUES (1,'siteurl','http://another.dev','yes'),(2,'home','http://another.dev','yes'),(3,'blogname','Another WP installation','yes'),(4,'blogdescription','Just another WordPress site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','amdin@another.dev','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','','yes'),(29,'rewrite_rules','','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentysixteen','yes'),(41,'stylesheet','twentysixteen','yes'),(42,'comment_whitelist','1','yes'),(43,'blacklist_keys','','no'),(44,'comment_registration','0','yes'),(45,'html_type','text/html','yes'),(46,'use_trackback','0','yes'),(47,'default_role','subscriber','yes'),(48,'db_version','37965','yes'),(49,'uploads_use_yearmonth_folders','1','yes'),(50,'upload_path','','yes'),(51,'blog_public','1','yes'),(52,'default_link_category','2','yes'),(53,'show_on_front','posts','yes'),(54,'tag_base','','yes'),(55,'show_avatars','1','yes'),(56,'avatar_rating','G','yes'),(57,'upload_url_path','','yes'),(58,'thumbnail_size_w','150','yes'),(59,'thumbnail_size_h','150','yes'),(60,'thumbnail_crop','1','yes'),(61,'medium_size_w','300','yes'),(62,'medium_size_h','300','yes'),(63,'avatar_default','mystery','yes'),(64,'large_size_w','1024','yes'),(65,'large_size_h','1024','yes'),(66,'image_default_link_type','none','yes'),(67,'image_default_size','','yes'),(68,'image_default_align','','yes'),(69,'close_comments_for_old_posts','0','yes'),(70,'close_comments_days_old','14','yes'),(71,'thread_comments','1','yes'),(72,'thread_comments_depth','5','yes'),(73,'page_comments','0','yes'),(74,'comments_per_page','50','yes'),(75,'default_comments_page','newest','yes'),(76,'comment_order','asc','yes'),(77,'sticky_posts','a:0:{}','yes'),(78,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(79,'widget_text','a:0:{}','yes'),(80,'widget_rss','a:0:{}','yes'),(81,'uninstall_plugins','a:0:{}','no'),(82,'timezone_string','','yes'),(83,'page_for_posts','0','yes'),(84,'page_on_front','0','yes'),(85,'default_post_format','0','yes'),(86,'link_manager_enabled','0','yes'),(87,'finished_splitting_shared_terms','1','yes'),(88,'site_icon','0','yes'),(89,'medium_large_size_w','768','yes'),(90,'medium_large_size_h','0','yes'),(91,'initial_db_version','37965','yes'),(92,'foo_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(93,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(94,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(95,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(96,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(97,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(98,'sidebars_widgets','a:3:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:6:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";i:3;s:10:\"archives-2\";i:4;s:12:\"categories-2\";i:5;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(99,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(100,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(101,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(102,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(103,'cron','a:2:{i:1473954717;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}s:7:\"version\";i:2;}','yes'),(104,'_transient_doing_cron','1473954725.5416090488433837890625','yes'); +/*!40000 ALTER TABLE `foo_options` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_postmeta` +-- Table structure for table `foo_postmeta` -- -DROP TABLE IF EXISTS `wp_postmeta`; +DROP TABLE IF EXISTS `foo_postmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_postmeta` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_postmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, `meta_key` varchar(255) DEFAULT NULL, @@ -225,27 +161,27 @@ CREATE TABLE `wp_postmeta` ( PRIMARY KEY (`meta_id`), KEY `post_id` (`post_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_postmeta` +-- Dumping data for table `foo_postmeta` -- -LOCK TABLES `wp_postmeta` WRITE; -/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; -INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'); -/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; +LOCK TABLES `foo_postmeta` WRITE; +/*!40000 ALTER TABLE `foo_postmeta` DISABLE KEYS */; +INSERT INTO `foo_postmeta` VALUES (1,2,'_wp_page_template','default'); +/*!40000 ALTER TABLE `foo_postmeta` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_posts` +-- Table structure for table `foo_posts` -- -DROP TABLE IF EXISTS `wp_posts`; +DROP TABLE IF EXISTS `foo_posts`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_posts` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_posts` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', @@ -256,7 +192,7 @@ CREATE TABLE `wp_posts` ( `post_status` varchar(20) NOT NULL DEFAULT 'publish', `comment_status` varchar(20) NOT NULL DEFAULT 'open', `ping_status` varchar(20) NOT NULL DEFAULT 'open', - `post_password` varchar(255) NOT NULL DEFAULT '', + `post_password` varchar(20) NOT NULL DEFAULT '', `post_name` varchar(200) NOT NULL DEFAULT '', `to_ping` text NOT NULL, `pinged` text NOT NULL, @@ -274,170 +210,53 @@ CREATE TABLE `wp_posts` ( KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), KEY `post_parent` (`post_parent`), KEY `post_author` (`post_author`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_posts` --- - -LOCK TABLES `wp_posts` WRITE; -/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; -INSERT INTO `wp_posts` VALUES (1,1,'2023-06-06 11:10:46','2023-06-06 11:10:46','\n

Welcome to Wordpress.test. This is your first post. Edit or delete it, then start writing!

\n','Hello world!','','publish','open','open','','hello-world','','','2023-06-06 11:10:46','2023-06-06 11:10:46','',0,'https://wordpress.test/?p=1',0,'post','',1),(2,1,'2023-06-06 11:10:46','2023-06-06 11:10:46','\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n','Sample Page','','publish','closed','open','','sample-page','','','2023-06-06 11:10:46','2023-06-06 11:10:46','',0,'https://wordpress.test/?page_id=2',0,'page','',0); -/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_registration_log` --- - -DROP TABLE IF EXISTS `wp_registration_log`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_registration_log` ( - `ID` bigint(20) NOT NULL AUTO_INCREMENT, - `email` varchar(255) NOT NULL DEFAULT '', - `IP` varchar(30) NOT NULL DEFAULT '', - `blog_id` bigint(20) NOT NULL DEFAULT 0, - `date_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY (`ID`), - KEY `IP` (`IP`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_registration_log` --- - -LOCK TABLES `wp_registration_log` WRITE; -/*!40000 ALTER TABLE `wp_registration_log` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_registration_log` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_signups` --- - -DROP TABLE IF EXISTS `wp_signups`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_signups` ( - `signup_id` bigint(20) NOT NULL AUTO_INCREMENT, - `domain` varchar(200) NOT NULL DEFAULT '', - `path` varchar(100) NOT NULL DEFAULT '', - `title` longtext NOT NULL, - `user_login` varchar(60) NOT NULL DEFAULT '', - `user_email` varchar(100) NOT NULL DEFAULT '', - `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `activated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `active` tinyint(1) NOT NULL DEFAULT 0, - `activation_key` varchar(50) NOT NULL DEFAULT '', - `meta` longtext DEFAULT NULL, - PRIMARY KEY (`signup_id`), - KEY `activation_key` (`activation_key`), - KEY `user_email` (`user_email`), - KEY `user_login_email` (`user_login`,`user_email`), - KEY `domain_path` (`domain`(140),`path`(51)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_signups` --- - -LOCK TABLES `wp_signups` WRITE; -/*!40000 ALTER TABLE `wp_signups` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_signups` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_site` --- - -DROP TABLE IF EXISTS `wp_site`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_site` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `domain` varchar(200) NOT NULL DEFAULT '', - `path` varchar(100) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - KEY `domain` (`domain`(140),`path`(51)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `wp_site` --- - -LOCK TABLES `wp_site` WRITE; -/*!40000 ALTER TABLE `wp_site` DISABLE KEYS */; -INSERT INTO `wp_site` VALUES (1,'wordpress.test','/'); -/*!40000 ALTER TABLE `wp_site` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `wp_sitemeta` --- - -DROP TABLE IF EXISTS `wp_sitemeta`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_sitemeta` ( - `meta_id` bigint(20) NOT NULL AUTO_INCREMENT, - `site_id` bigint(20) NOT NULL DEFAULT 0, - `meta_key` varchar(255) DEFAULT NULL, - `meta_value` longtext DEFAULT NULL, - PRIMARY KEY (`meta_id`), - KEY `meta_key` (`meta_key`(191)), - KEY `site_id` (`site_id`) -) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_sitemeta` +-- Dumping data for table `foo_posts` -- -LOCK TABLES `wp_sitemeta` WRITE; -/*!40000 ALTER TABLE `wp_sitemeta` DISABLE KEYS */; -INSERT INTO `wp_sitemeta` VALUES (1,1,'user_count','1'),(2,1,'site_name','Test'),(3,1,'admin_email','admin@wordpress.test'),(4,1,'admin_user_id','1'),(5,1,'registration','none'),(6,1,'upload_filetypes','jpg jpeg png gif webp mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg flac m4a wav mp4 m4v webm ogv flv'),(7,1,'blog_upload_space','100'),(8,1,'fileupload_maxk','1500'),(9,1,'site_admins','a:1:{i:0;s:5:\"admin\";}'),(10,1,'allowedthemes','a:1:{s:17:\"twentytwentythree\";b:1;}'),(11,1,'illegal_names','a:9:{i:0;s:3:\"www\";i:1;s:3:\"web\";i:2;s:4:\"root\";i:3;s:5:\"admin\";i:4;s:4:\"main\";i:5;s:6:\"invite\";i:6;s:13:\"administrator\";i:7;s:5:\"files\";i:8;s:4:\"blog\";}'),(12,1,'wpmu_upgrade_site','53496'),(13,1,'welcome_email','Howdy USERNAME,\n\nYour new SITE_NAME site has been successfully set up at:\nBLOG_URL\n\nYou can log in to the administrator account with the following information:\n\nUsername: USERNAME\nPassword: PASSWORD\nLog in here: BLOG_URLwp-login.php\n\nWe hope you enjoy your new site. Thanks!\n\n--The Team @ SITE_NAME'),(14,1,'first_post','Welcome to %s. This is your first post. Edit or delete it, then start writing!'),(15,1,'siteurl','https://wordpress.test/'),(16,1,'add_new_users','0'),(17,1,'upload_space_check_disabled','1'),(18,1,'subdomain_install',''),(19,1,'ms_files_rewriting','0'),(20,1,'user_count',''),(21,1,'initial_db_version',''),(22,1,'active_sitewide_plugins','a:0:{}'),(23,1,'WPLANG','en_US'),(24,1,'main_site','1'); -/*!40000 ALTER TABLE `wp_sitemeta` ENABLE KEYS */; +LOCK TABLES `foo_posts` WRITE; +/*!40000 ALTER TABLE `foo_posts` DISABLE KEYS */; +INSERT INTO `foo_posts` VALUES (1,1,'2016-09-15 15:16:23','2016-09-15 15:16:23','Welcome to WordPress. This is your first post. Edit or delete it, then start writing!','Hello world!','','publish','open','open','','hello-world','','','2016-09-15 15:16:23','2016-09-15 15:16:23','',0,'http://another.dev/?p=1',0,'post','',1),(2,1,'2016-09-15 15:16:23','2016-09-15 15:16:23','This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:\n\n
Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)
\n\n...or something like this:\n\n
The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.
\n\nAs a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!','Sample Page','','publish','closed','open','','sample-page','','','2016-09-15 15:16:23','2016-09-15 15:16:23','',0,'http://another.dev/?page_id=2',0,'page','',0),(3,0,'2016-09-15 15:52:45','0000-00-00 00:00:00','foo','foo','foo','draft','open','open','','','','','2016-09-15 15:52:45','0000-00-00 00:00:00','',0,'http://another.dev/?p=3',0,'post','',0); +/*!40000 ALTER TABLE `foo_posts` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_term_relationships` +-- Table structure for table `foo_term_relationships` -- -DROP TABLE IF EXISTS `wp_term_relationships`; +DROP TABLE IF EXISTS `foo_term_relationships`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_term_relationships` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_term_relationships` ( `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, `term_order` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`object_id`,`term_taxonomy_id`), KEY `term_taxonomy_id` (`term_taxonomy_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_term_relationships` +-- Dumping data for table `foo_term_relationships` -- -LOCK TABLES `wp_term_relationships` WRITE; -/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */; -INSERT INTO `wp_term_relationships` VALUES (1,1,0); -/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */; +LOCK TABLES `foo_term_relationships` WRITE; +/*!40000 ALTER TABLE `foo_term_relationships` DISABLE KEYS */; +INSERT INTO `foo_term_relationships` VALUES (1,1,0),(3,1,0); +/*!40000 ALTER TABLE `foo_term_relationships` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_term_taxonomy` +-- Table structure for table `foo_term_taxonomy` -- -DROP TABLE IF EXISTS `wp_term_taxonomy`; +DROP TABLE IF EXISTS `foo_term_taxonomy`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_term_taxonomy` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_term_taxonomy` ( `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, `taxonomy` varchar(32) NOT NULL DEFAULT '', @@ -447,27 +266,27 @@ CREATE TABLE `wp_term_taxonomy` ( PRIMARY KEY (`term_taxonomy_id`), UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), KEY `taxonomy` (`taxonomy`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_term_taxonomy` +-- Dumping data for table `foo_term_taxonomy` -- -LOCK TABLES `wp_term_taxonomy` WRITE; -/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */; -INSERT INTO `wp_term_taxonomy` VALUES (1,1,'category','',0,1); -/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */; +LOCK TABLES `foo_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `foo_term_taxonomy` DISABLE KEYS */; +INSERT INTO `foo_term_taxonomy` VALUES (1,1,'category','',0,1); +/*!40000 ALTER TABLE `foo_term_taxonomy` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_termmeta` +-- Table structure for table `foo_termmeta` -- -DROP TABLE IF EXISTS `wp_termmeta`; +DROP TABLE IF EXISTS `foo_termmeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_termmeta` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_termmeta` ( `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, `meta_key` varchar(255) DEFAULT NULL, @@ -475,26 +294,26 @@ CREATE TABLE `wp_termmeta` ( PRIMARY KEY (`meta_id`), KEY `term_id` (`term_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_termmeta` +-- Dumping data for table `foo_termmeta` -- -LOCK TABLES `wp_termmeta` WRITE; -/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */; -/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */; +LOCK TABLES `foo_termmeta` WRITE; +/*!40000 ALTER TABLE `foo_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `foo_termmeta` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_terms` +-- Table structure for table `foo_terms` -- -DROP TABLE IF EXISTS `wp_terms`; +DROP TABLE IF EXISTS `foo_terms`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_terms` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL DEFAULT '', `slug` varchar(200) NOT NULL DEFAULT '', @@ -502,27 +321,27 @@ CREATE TABLE `wp_terms` ( PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), KEY `name` (`name`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_terms` +-- Dumping data for table `foo_terms` -- -LOCK TABLES `wp_terms` WRITE; -/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; -INSERT INTO `wp_terms` VALUES (1,'Uncategorized','uncategorized',0); -/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */; +LOCK TABLES `foo_terms` WRITE; +/*!40000 ALTER TABLE `foo_terms` DISABLE KEYS */; +INSERT INTO `foo_terms` VALUES (1,'Uncategorized','uncategorized',0); +/*!40000 ALTER TABLE `foo_terms` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_usermeta` +-- Table structure for table `foo_usermeta` -- -DROP TABLE IF EXISTS `wp_usermeta`; +DROP TABLE IF EXISTS `foo_usermeta`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_usermeta` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_usermeta` ( `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, `meta_key` varchar(255) DEFAULT NULL, @@ -530,27 +349,27 @@ CREATE TABLE `wp_usermeta` ( PRIMARY KEY (`umeta_id`), KEY `user_id` (`user_id`), KEY `meta_key` (`meta_key`(191)) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_usermeta` +-- Dumping data for table `foo_usermeta` -- -LOCK TABLES `wp_usermeta` WRITE; -/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */; -INSERT INTO `wp_usermeta` VALUES (1,1,'nickname','admin'),(2,1,'first_name',''),(3,1,'last_name',''),(4,1,'description',''),(5,1,'rich_editing','true'),(6,1,'syntax_highlighting','true'),(7,1,'comment_shortcuts','false'),(8,1,'admin_color','fresh'),(9,1,'use_ssl','0'),(10,1,'show_admin_bar_front','true'),(11,1,'locale',''),(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'),(13,1,'wp_user_level','10'),(14,1,'dismissed_wp_pointers',''),(15,1,'aim',''),(16,1,'yim',''),(17,1,'jabber',''),(18,1,'source_domain','wordpress.test'),(19,1,'primary_blog','1'); -/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */; +LOCK TABLES `foo_usermeta` WRITE; +/*!40000 ALTER TABLE `foo_usermeta` DISABLE KEYS */; +INSERT INTO `foo_usermeta` VALUES (1,1,'nickname','admin'),(2,1,'first_name',''),(3,1,'last_name',''),(4,1,'description',''),(5,1,'rich_editing','true'),(6,1,'comment_shortcuts','false'),(7,1,'admin_color','fresh'),(8,1,'use_ssl','0'),(9,1,'show_admin_bar_front','true'),(10,1,'foo_capabilities','a:1:{s:13:\"administrator\";b:1;}'),(11,1,'foo_user_level','10'),(12,1,'dismissed_wp_pointers',''),(13,1,'show_welcome_panel','1'); +/*!40000 ALTER TABLE `foo_usermeta` ENABLE KEYS */; UNLOCK TABLES; -- --- Table structure for table `wp_users` +-- Table structure for table `foo_users` -- -DROP TABLE IF EXISTS `wp_users`; +DROP TABLE IF EXISTS `foo_users`; /*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `wp_users` ( +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `foo_users` ( `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_login` varchar(60) NOT NULL DEFAULT '', `user_pass` varchar(255) NOT NULL DEFAULT '', @@ -561,23 +380,2266 @@ CREATE TABLE `wp_users` ( `user_activation_key` varchar(255) NOT NULL DEFAULT '', `user_status` int(11) NOT NULL DEFAULT 0, `display_name` varchar(250) NOT NULL DEFAULT '', - `spam` tinyint(2) NOT NULL DEFAULT 0, - `deleted` tinyint(2) NOT NULL DEFAULT 0, PRIMARY KEY (`ID`), KEY `user_login_key` (`user_login`), KEY `user_nicename` (`user_nicename`), KEY `user_email` (`user_email`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- --- Dumping data for table `wp_users` +-- Dumping data for table `foo_users` -- -LOCK TABLES `wp_users` WRITE; -/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */; -INSERT INTO `wp_users` VALUES (1,'admin','$P$BnMYRn01JxSA6T33CTl8A.H/tvRWfN0','admin','admin@wordpress.test','https://wordpress.test','2023-06-06 11:10:46','',0,'admin',0,0); -/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; +LOCK TABLES `foo_users` WRITE; +/*!40000 ALTER TABLE `foo_users` DISABLE KEYS */; +INSERT INTO `foo_users` VALUES (1,'admin','$P$B/Sn5B37uJp0gPk6Va76CjEjXsLwlp/','admin','amdin@another.dev','','2016-09-15 15:16:23','',0,'admin'); +/*!40000 ALTER TABLE `foo_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_commentmeta` +-- + +DROP TABLE IF EXISTS `wp_2_commentmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_commentmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `comment_id` (`comment_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_commentmeta` +-- + +LOCK TABLES `wp_2_commentmeta` WRITE; +/*!40000 ALTER TABLE `wp_2_commentmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_2_commentmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_comments` +-- + +DROP TABLE IF EXISTS `wp_2_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_comments` ( + `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', + `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_content` text NOT NULL, + `comment_karma` int(11) NOT NULL DEFAULT 0, + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', + `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`comment_ID`), + KEY `comment_post_ID` (`comment_post_ID`), + KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), + KEY `comment_date_gmt` (`comment_date_gmt`), + KEY `comment_parent` (`comment_parent`), + KEY `comment_author_email` (`comment_author_email`(10)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_comments` +-- + +LOCK TABLES `wp_2_comments` WRITE; +/*!40000 ALTER TABLE `wp_2_comments` DISABLE KEYS */; +INSERT INTO `wp_2_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','http://wordpress/','','2019-12-16 15:30:18','2019-12-16 15:30:18','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','',0,0); +/*!40000 ALTER TABLE `wp_2_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_links` +-- + +DROP TABLE IF EXISTS `wp_2_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_links` ( + `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', + `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, + `link_rating` int(11) NOT NULL DEFAULT 0, + `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`link_id`), + KEY `link_visible` (`link_visible`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_links` +-- + +LOCK TABLES `wp_2_links` WRITE; +/*!40000 ALTER TABLE `wp_2_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_2_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_options` +-- + +DROP TABLE IF EXISTS `wp_2_options`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_options` ( + `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', + PRIMARY KEY (`option_id`), + UNIQUE KEY `option_name` (`option_name`), + KEY `autoload` (`autoload`) +) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_options` +-- + +LOCK TABLES `wp_2_options` WRITE; +/*!40000 ALTER TABLE `wp_2_options` DISABLE KEYS */; +INSERT INTO `wp_2_options` VALUES (1,'siteurl','http://test1.wordpress','yes'),(2,'home','http://test1.wordpress','yes'),(3,'blogname','Test Subdomain 1','yes'),(4,'blogdescription','Just another Test Sites site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:90:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentyone','yes'),(41,'stylesheet','twentytwentyone','yes'),(44,'comment_registration','0','yes'),(45,'html_type','text/html','yes'),(46,'use_trackback','0','yes'),(47,'default_role','subscriber','yes'),(48,'db_version','51917','yes'),(49,'uploads_use_yearmonth_folders','1','yes'),(50,'upload_path','','yes'),(51,'blog_public','1','yes'),(52,'default_link_category','2','yes'),(53,'show_on_front','posts','yes'),(54,'tag_base','','yes'),(55,'show_avatars','1','yes'),(56,'avatar_rating','G','yes'),(57,'upload_url_path','','yes'),(58,'thumbnail_size_w','150','yes'),(59,'thumbnail_size_h','150','yes'),(60,'thumbnail_crop','1','yes'),(61,'medium_size_w','300','yes'),(62,'medium_size_h','300','yes'),(63,'avatar_default','mystery','yes'),(64,'large_size_w','1024','yes'),(65,'large_size_h','1024','yes'),(66,'image_default_link_type','none','yes'),(67,'image_default_size','','yes'),(68,'image_default_align','','yes'),(69,'close_comments_for_old_posts','0','yes'),(70,'close_comments_days_old','14','yes'),(71,'thread_comments','1','yes'),(72,'thread_comments_depth','5','yes'),(73,'page_comments','0','yes'),(74,'comments_per_page','50','yes'),(75,'default_comments_page','newest','yes'),(76,'comment_order','asc','yes'),(77,'sticky_posts','a:0:{}','yes'),(78,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(79,'widget_text','a:0:{}','yes'),(80,'widget_rss','a:0:{}','yes'),(81,'uninstall_plugins','a:0:{}','no'),(82,'timezone_string','','yes'),(83,'page_for_posts','0','yes'),(84,'page_on_front','0','yes'),(85,'default_post_format','0','yes'),(86,'link_manager_enabled','0','yes'),(87,'finished_splitting_shared_terms','1','yes'),(88,'site_icon','0','yes'),(89,'medium_large_size_w','768','yes'),(90,'medium_large_size_h','0','yes'),(91,'wp_page_for_privacy_policy','0','yes'),(92,'show_comments_cookies_opt_in','1','yes'),(93,'admin_email_lifespan','1592062218','yes'),(94,'WPLANG','en_US','yes'),(95,'wp_2_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(96,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(97,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(98,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(99,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(100,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(101,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(102,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(103,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(104,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(105,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'widget_block','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(112,'disallowed_keys','','no'),(113,'comment_previously_approved','1','yes'),(114,'auto_plugin_theme_update_emails','a:0:{}','no'),(115,'auto_update_core_dev','enabled','yes'),(116,'auto_update_core_minor','enabled','yes'),(117,'auto_update_core_major','unset','yes'),(118,'wp_force_deactivated_plugins','a:0:{}','yes'),(119,'finished_updating_comment_type','0','yes'),(120,'cron','a:2:{i:1643225433;a:1:{s:28:\"wp_update_comment_type_batch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}s:7:\"version\";i:2;}','yes'),(121,'db_upgraded','1','yes'); +/*!40000 ALTER TABLE `wp_2_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_postmeta` +-- + +DROP TABLE IF EXISTS `wp_2_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_postmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_postmeta` +-- + +LOCK TABLES `wp_2_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_2_postmeta` DISABLE KEYS */; +INSERT INTO `wp_2_postmeta` VALUES (1,2,'_wp_page_template','default'); +/*!40000 ALTER TABLE `wp_2_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_posts` +-- + +DROP TABLE IF EXISTS `wp_2_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_posts` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext NOT NULL, + `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `guid` varchar(255) NOT NULL DEFAULT '', + `menu_order` int(11) NOT NULL DEFAULT 0, + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', + `comment_count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_posts` +-- + +LOCK TABLES `wp_2_posts` WRITE; +/*!40000 ALTER TABLE `wp_2_posts` DISABLE KEYS */; +INSERT INTO `wp_2_posts` VALUES (1,1,'2019-12-16 15:30:18','2019-12-16 15:30:18','Welcome to Test Sites. This is your first post. Edit or delete it, then start writing!','Hello world!','','publish','open','open','','hello-world','','','2019-12-16 15:30:18','2019-12-16 15:30:18','',0,'http://test1.wordpress/?p=1',0,'post','',1),(2,1,'2019-12-16 15:30:18','2019-12-16 15:30:18','\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n','Sample Page','','publish','closed','open','','sample-page','','','2019-12-16 15:30:18','2019-12-16 15:30:18','',0,'http://test1.wordpress/?page_id=2',0,'page','',0); +/*!40000 ALTER TABLE `wp_2_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_2_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_term_relationships` +-- + +LOCK TABLES `wp_2_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_2_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_2_term_relationships` VALUES (1,1,0); +/*!40000 ALTER TABLE `wp_2_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_2_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_term_taxonomy` +-- + +LOCK TABLES `wp_2_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_2_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_2_term_taxonomy` VALUES (1,1,'category','',0,1); +/*!40000 ALTER TABLE `wp_2_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_termmeta` +-- + +DROP TABLE IF EXISTS `wp_2_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_termmeta` +-- + +LOCK TABLES `wp_2_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_2_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_2_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_2_terms` +-- + +DROP TABLE IF EXISTS `wp_2_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_2_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_2_terms` +-- + +LOCK TABLES `wp_2_terms` WRITE; +/*!40000 ALTER TABLE `wp_2_terms` DISABLE KEYS */; +INSERT INTO `wp_2_terms` VALUES (1,'Uncategorized','uncategorized',0); +/*!40000 ALTER TABLE `wp_2_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_commentmeta` +-- + +DROP TABLE IF EXISTS `wp_3_commentmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_commentmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `comment_id` (`comment_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_commentmeta` +-- + +LOCK TABLES `wp_3_commentmeta` WRITE; +/*!40000 ALTER TABLE `wp_3_commentmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_3_commentmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_comments` +-- + +DROP TABLE IF EXISTS `wp_3_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_comments` ( + `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', + `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_content` text NOT NULL, + `comment_karma` int(11) NOT NULL DEFAULT 0, + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', + `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`comment_ID`), + KEY `comment_post_ID` (`comment_post_ID`), + KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), + KEY `comment_date_gmt` (`comment_date_gmt`), + KEY `comment_parent` (`comment_parent`), + KEY `comment_author_email` (`comment_author_email`(10)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_comments` +-- + +LOCK TABLES `wp_3_comments` WRITE; +/*!40000 ALTER TABLE `wp_3_comments` DISABLE KEYS */; +INSERT INTO `wp_3_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','http://wordpress/','','2019-12-16 15:30:22','2019-12-16 15:30:22','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','',0,0); +/*!40000 ALTER TABLE `wp_3_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_links` +-- + +DROP TABLE IF EXISTS `wp_3_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_links` ( + `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', + `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, + `link_rating` int(11) NOT NULL DEFAULT 0, + `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`link_id`), + KEY `link_visible` (`link_visible`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_links` +-- + +LOCK TABLES `wp_3_links` WRITE; +/*!40000 ALTER TABLE `wp_3_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_3_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_options` +-- + +DROP TABLE IF EXISTS `wp_3_options`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_options` ( + `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', + PRIMARY KEY (`option_id`), + UNIQUE KEY `option_name` (`option_name`), + KEY `autoload` (`autoload`) +) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_options` +-- + +LOCK TABLES `wp_3_options` WRITE; +/*!40000 ALTER TABLE `wp_3_options` DISABLE KEYS */; +INSERT INTO `wp_3_options` VALUES (1,'siteurl','http://test2.wordpress','yes'),(2,'home','http://test2.wordpress','yes'),(3,'blogname','Test Subdomain 2','yes'),(4,'blogdescription','Just another Test Sites site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:90:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:47:\"author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:42:\"author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:23:\"author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:35:\"author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:17:\"author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:69:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:45:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:39:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:56:\"([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:51:\"([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:32:\"([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:44:\"([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:26:\"([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:43:\"([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:38:\"([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:19:\"([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:31:\"([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:13:\"([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:58:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:68:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:88:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:83:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:64:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:53:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:57:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:77:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:65:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:72:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:61:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:47:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:57:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:77:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:72:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:53:\"[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:64:\"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:51:\"([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:38:\"([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentyone','yes'),(41,'stylesheet','twentytwentyone','yes'),(44,'comment_registration','0','yes'),(45,'html_type','text/html','yes'),(46,'use_trackback','0','yes'),(47,'default_role','subscriber','yes'),(48,'db_version','51917','yes'),(49,'uploads_use_yearmonth_folders','1','yes'),(50,'upload_path','','yes'),(51,'blog_public','1','yes'),(52,'default_link_category','2','yes'),(53,'show_on_front','posts','yes'),(54,'tag_base','','yes'),(55,'show_avatars','1','yes'),(56,'avatar_rating','G','yes'),(57,'upload_url_path','','yes'),(58,'thumbnail_size_w','150','yes'),(59,'thumbnail_size_h','150','yes'),(60,'thumbnail_crop','1','yes'),(61,'medium_size_w','300','yes'),(62,'medium_size_h','300','yes'),(63,'avatar_default','mystery','yes'),(64,'large_size_w','1024','yes'),(65,'large_size_h','1024','yes'),(66,'image_default_link_type','none','yes'),(67,'image_default_size','','yes'),(68,'image_default_align','','yes'),(69,'close_comments_for_old_posts','0','yes'),(70,'close_comments_days_old','14','yes'),(71,'thread_comments','1','yes'),(72,'thread_comments_depth','5','yes'),(73,'page_comments','0','yes'),(74,'comments_per_page','50','yes'),(75,'default_comments_page','newest','yes'),(76,'comment_order','asc','yes'),(77,'sticky_posts','a:0:{}','yes'),(78,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(79,'widget_text','a:0:{}','yes'),(80,'widget_rss','a:0:{}','yes'),(81,'uninstall_plugins','a:0:{}','no'),(82,'timezone_string','','yes'),(83,'page_for_posts','0','yes'),(84,'page_on_front','0','yes'),(85,'default_post_format','0','yes'),(86,'link_manager_enabled','0','yes'),(87,'finished_splitting_shared_terms','1','yes'),(88,'site_icon','0','yes'),(89,'medium_large_size_w','768','yes'),(90,'medium_large_size_h','0','yes'),(91,'wp_page_for_privacy_policy','0','yes'),(92,'show_comments_cookies_opt_in','1','yes'),(93,'admin_email_lifespan','1592062221','yes'),(94,'WPLANG','en_US','yes'),(95,'wp_3_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(96,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(97,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(98,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(99,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(100,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(101,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(102,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(103,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(104,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(105,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'widget_block','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(112,'disallowed_keys','','no'),(113,'comment_previously_approved','1','yes'),(114,'auto_plugin_theme_update_emails','a:0:{}','no'),(115,'auto_update_core_dev','enabled','yes'),(116,'auto_update_core_minor','enabled','yes'),(117,'auto_update_core_major','unset','yes'),(118,'wp_force_deactivated_plugins','a:0:{}','yes'),(119,'finished_updating_comment_type','0','yes'),(120,'cron','a:2:{i:1643225434;a:1:{s:28:\"wp_update_comment_type_batch\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:0:{}}}}s:7:\"version\";i:2;}','yes'),(121,'db_upgraded','1','yes'); +/*!40000 ALTER TABLE `wp_3_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_postmeta` +-- + +DROP TABLE IF EXISTS `wp_3_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_postmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_postmeta` +-- + +LOCK TABLES `wp_3_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_3_postmeta` DISABLE KEYS */; +INSERT INTO `wp_3_postmeta` VALUES (1,2,'_wp_page_template','default'); +/*!40000 ALTER TABLE `wp_3_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_posts` +-- + +DROP TABLE IF EXISTS `wp_3_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_posts` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext NOT NULL, + `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `guid` varchar(255) NOT NULL DEFAULT '', + `menu_order` int(11) NOT NULL DEFAULT 0, + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', + `comment_count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_posts` +-- + +LOCK TABLES `wp_3_posts` WRITE; +/*!40000 ALTER TABLE `wp_3_posts` DISABLE KEYS */; +INSERT INTO `wp_3_posts` VALUES (1,1,'2019-12-16 15:30:22','2019-12-16 15:30:22','Welcome to Test Sites. This is your first post. Edit or delete it, then start writing!','Hello world!','','publish','open','open','','hello-world','','','2019-12-16 15:30:22','2019-12-16 15:30:22','',0,'http://test2.wordpress/?p=1',0,'post','',1),(2,1,'2019-12-16 15:30:22','2019-12-16 15:30:22','\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n','Sample Page','','publish','closed','open','','sample-page','','','2019-12-16 15:30:22','2019-12-16 15:30:22','',0,'http://test2.wordpress/?page_id=2',0,'page','',0); +/*!40000 ALTER TABLE `wp_3_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_3_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_term_relationships` +-- + +LOCK TABLES `wp_3_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_3_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_3_term_relationships` VALUES (1,1,0); +/*!40000 ALTER TABLE `wp_3_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_3_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_term_taxonomy` +-- + +LOCK TABLES `wp_3_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_3_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_3_term_taxonomy` VALUES (1,1,'category','',0,1); +/*!40000 ALTER TABLE `wp_3_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_termmeta` +-- + +DROP TABLE IF EXISTS `wp_3_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_termmeta` +-- + +LOCK TABLES `wp_3_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_3_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_3_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_3_terms` +-- + +DROP TABLE IF EXISTS `wp_3_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_3_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_3_terms` +-- + +LOCK TABLES `wp_3_terms` WRITE; +/*!40000 ALTER TABLE `wp_3_terms` DISABLE KEYS */; +INSERT INTO `wp_3_terms` VALUES (1,'Uncategorized','uncategorized',0); +/*!40000 ALTER TABLE `wp_3_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_actions` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_actions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_actions` ( + `action_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `hook` varchar(191) NOT NULL, + `status` varchar(20) NOT NULL, + `scheduled_date_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `scheduled_date_local` datetime DEFAULT '0000-00-00 00:00:00', + `priority` tinyint(3) unsigned NOT NULL DEFAULT 10, + `args` varchar(191) DEFAULT NULL, + `schedule` longtext DEFAULT NULL, + `group_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `attempts` int(11) NOT NULL DEFAULT 0, + `last_attempt_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `last_attempt_local` datetime DEFAULT '0000-00-00 00:00:00', + `claim_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `extended_args` varchar(8000) DEFAULT NULL, + PRIMARY KEY (`action_id`), + KEY `hook_status_scheduled_date_gmt` (`hook`(163),`status`,`scheduled_date_gmt`), + KEY `status_scheduled_date_gmt` (`status`,`scheduled_date_gmt`), + KEY `scheduled_date_gmt` (`scheduled_date_gmt`), + KEY `args` (`args`), + KEY `group_id` (`group_id`), + KEY `last_attempt_gmt` (`last_attempt_gmt`), + KEY `claim_id_status_scheduled_date_gmt` (`claim_id`,`status`,`scheduled_date_gmt`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_actions` +-- + +LOCK TABLES `wp_actionscheduler_actions` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_actions` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_actions` VALUES (5,'action_scheduler/migration_hook','pending','2024-02-19 09:14:55','2024-02-19 09:14:55',10,'[]','O:30:\"ActionScheduler_SimpleSchedule\":2:{s:22:\"\0*\0scheduled_timestamp\";i:1708334095;s:41:\"\0ActionScheduler_SimpleSchedule\0timestamp\";i:1708334095;}',1,0,'0000-00-00 00:00:00','0000-00-00 00:00:00',0,NULL); +/*!40000 ALTER TABLE `wp_actionscheduler_actions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_claims` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_claims`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_claims` ( + `claim_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `date_created_gmt` datetime DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`claim_id`), + KEY `date_created_gmt` (`date_created_gmt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_claims` +-- + +LOCK TABLES `wp_actionscheduler_claims` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_claims` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_actionscheduler_claims` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_groups` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_groups` ( + `group_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `slug` varchar(255) NOT NULL, + PRIMARY KEY (`group_id`), + KEY `slug` (`slug`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_groups` +-- + +LOCK TABLES `wp_actionscheduler_groups` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_groups` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_groups` VALUES (1,'action-scheduler-migration'); +/*!40000 ALTER TABLE `wp_actionscheduler_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_actionscheduler_logs` +-- + +DROP TABLE IF EXISTS `wp_actionscheduler_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_actionscheduler_logs` ( + `log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `action_id` bigint(20) unsigned NOT NULL, + `message` text NOT NULL, + `log_date_gmt` datetime DEFAULT '0000-00-00 00:00:00', + `log_date_local` datetime DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`log_id`), + KEY `action_id` (`action_id`), + KEY `log_date_gmt` (`log_date_gmt`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_actionscheduler_logs` +-- + +LOCK TABLES `wp_actionscheduler_logs` WRITE; +/*!40000 ALTER TABLE `wp_actionscheduler_logs` DISABLE KEYS */; +INSERT INTO `wp_actionscheduler_logs` VALUES (1,5,'action created','2024-02-19 09:13:55','2024-02-19 09:13:55'); +/*!40000 ALTER TABLE `wp_actionscheduler_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_blog_versions` +-- + +DROP TABLE IF EXISTS `wp_blog_versions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_blog_versions` ( + `blog_id` bigint(20) NOT NULL DEFAULT 0, + `db_version` varchar(20) NOT NULL DEFAULT '', + `last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`blog_id`), + KEY `db_version` (`db_version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_blog_versions` +-- + +LOCK TABLES `wp_blog_versions` WRITE; +/*!40000 ALTER TABLE `wp_blog_versions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_blog_versions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_blogmeta` +-- + +DROP TABLE IF EXISTS `wp_blogmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_blogmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `blog_id` bigint(20) NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `meta_key` (`meta_key`(191)), + KEY `blog_id` (`blog_id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_blogmeta` +-- + +LOCK TABLES `wp_blogmeta` WRITE; +/*!40000 ALTER TABLE `wp_blogmeta` DISABLE KEYS */; +INSERT INTO `wp_blogmeta` VALUES (1,1,'db_version','56657'),(2,1,'db_last_updated','0.12148200 1708421318'); +/*!40000 ALTER TABLE `wp_blogmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_blogs` +-- + +DROP TABLE IF EXISTS `wp_blogs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_blogs` ( + `blog_id` bigint(20) NOT NULL AUTO_INCREMENT, + `site_id` bigint(20) NOT NULL DEFAULT 0, + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', + `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `last_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `public` tinyint(2) NOT NULL DEFAULT 1, + `archived` tinyint(2) NOT NULL DEFAULT 0, + `mature` tinyint(2) NOT NULL DEFAULT 0, + `spam` tinyint(2) NOT NULL DEFAULT 0, + `deleted` tinyint(2) NOT NULL DEFAULT 0, + `lang_id` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`blog_id`), + KEY `domain` (`domain`(50),`path`(5)), + KEY `lang_id` (`lang_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_blogs` +-- + +LOCK TABLES `wp_blogs` WRITE; +/*!40000 ALTER TABLE `wp_blogs` DISABLE KEYS */; +INSERT INTO `wp_blogs` VALUES (1,1,'wordpress.test','/','2023-06-06 11:12:40','0000-00-00 00:00:00',1,0,0,0,0,0); +/*!40000 ALTER TABLE `wp_blogs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_commentmeta` +-- + +DROP TABLE IF EXISTS `wp_commentmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_commentmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `comment_id` (`comment_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_commentmeta` +-- + +LOCK TABLES `wp_commentmeta` WRITE; +/*!40000 ALTER TABLE `wp_commentmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_commentmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_comments` +-- + +DROP TABLE IF EXISTS `wp_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_comments` ( + `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, + `comment_author` tinytext NOT NULL, + `comment_author_email` varchar(100) NOT NULL DEFAULT '', + `comment_author_url` varchar(200) NOT NULL DEFAULT '', + `comment_author_IP` varchar(100) NOT NULL DEFAULT '', + `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `comment_content` text NOT NULL, + `comment_karma` int(11) NOT NULL DEFAULT 0, + `comment_approved` varchar(20) NOT NULL DEFAULT '1', + `comment_agent` varchar(255) NOT NULL DEFAULT '', + `comment_type` varchar(20) NOT NULL DEFAULT 'comment', + `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`comment_ID`), + KEY `comment_post_ID` (`comment_post_ID`), + KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), + KEY `comment_date_gmt` (`comment_date_gmt`), + KEY `comment_parent` (`comment_parent`), + KEY `comment_author_email` (`comment_author_email`(10)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_comments` +-- + +LOCK TABLES `wp_comments` WRITE; +/*!40000 ALTER TABLE `wp_comments` DISABLE KEYS */; +INSERT INTO `wp_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.test/','','2023-06-06 11:10:46','2023-06-06 11:10:46','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from Gravatar.',0,'1','','comment',0,0); +/*!40000 ALTER TABLE `wp_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_links` +-- + +DROP TABLE IF EXISTS `wp_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_links` ( + `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `link_url` varchar(255) NOT NULL DEFAULT '', + `link_name` varchar(255) NOT NULL DEFAULT '', + `link_image` varchar(255) NOT NULL DEFAULT '', + `link_target` varchar(25) NOT NULL DEFAULT '', + `link_description` varchar(255) NOT NULL DEFAULT '', + `link_visible` varchar(20) NOT NULL DEFAULT 'Y', + `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1, + `link_rating` int(11) NOT NULL DEFAULT 0, + `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `link_rel` varchar(255) NOT NULL DEFAULT '', + `link_notes` mediumtext NOT NULL, + `link_rss` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`link_id`), + KEY `link_visible` (`link_visible`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_links` +-- + +LOCK TABLES `wp_links` WRITE; +/*!40000 ALTER TABLE `wp_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_options` +-- + +DROP TABLE IF EXISTS `wp_options`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_options` ( + `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `option_name` varchar(191) NOT NULL DEFAULT '', + `option_value` longtext NOT NULL, + `autoload` varchar(20) NOT NULL DEFAULT 'yes', + PRIMARY KEY (`option_id`), + UNIQUE KEY `option_name` (`option_name`), + KEY `autoload` (`autoload`) +) ENGINE=InnoDB AUTO_INCREMENT=123 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_options` +-- + +LOCK TABLES `wp_options` WRITE; +/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */; +INSERT INTO `wp_options` VALUES (1,'siteurl','https://wordpress.test','yes'),(2,'home','https://wordpress.test','yes'),(3,'blogname','Test','yes'),(4,'blogdescription','','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','admin@wordpress.test','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','1','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','F j, Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','F j, Y g:i a','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','/blog/%year%/%monthnum%/%day%/%postname%/','yes'),(29,'rewrite_rules','a:96:{s:11:\"^wp-json/?$\";s:22:\"index.php?rest_route=/\";s:14:\"^wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:21:\"^index.php/wp-json/?$\";s:22:\"index.php?rest_route=/\";s:24:\"^index.php/wp-json/(.*)?\";s:33:\"index.php?rest_route=/$matches[1]\";s:17:\"^wp-sitemap\\.xml$\";s:23:\"index.php?sitemap=index\";s:17:\"^wp-sitemap\\.xsl$\";s:36:\"index.php?sitemap-stylesheet=sitemap\";s:23:\"^wp-sitemap-index\\.xsl$\";s:34:\"index.php?sitemap-stylesheet=index\";s:48:\"^wp-sitemap-([a-z]+?)-([a-z\\d_-]+?)-(\\d+?)\\.xml$\";s:75:\"index.php?sitemap=$matches[1]&sitemap-subtype=$matches[2]&paged=$matches[3]\";s:34:\"^wp-sitemap-([a-z]+?)-(\\d+?)\\.xml$\";s:47:\"index.php?sitemap=$matches[1]&paged=$matches[2]\";s:47:\"category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:42:\"category/(.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:52:\"index.php?category_name=$matches[1]&feed=$matches[2]\";s:23:\"category/(.+?)/embed/?$\";s:46:\"index.php?category_name=$matches[1]&embed=true\";s:35:\"category/(.+?)/page/?([0-9]{1,})/?$\";s:53:\"index.php?category_name=$matches[1]&paged=$matches[2]\";s:17:\"category/(.+?)/?$\";s:35:\"index.php?category_name=$matches[1]\";s:44:\"tag/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:39:\"tag/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?tag=$matches[1]&feed=$matches[2]\";s:20:\"tag/([^/]+)/embed/?$\";s:36:\"index.php?tag=$matches[1]&embed=true\";s:32:\"tag/([^/]+)/page/?([0-9]{1,})/?$\";s:43:\"index.php?tag=$matches[1]&paged=$matches[2]\";s:14:\"tag/([^/]+)/?$\";s:25:\"index.php?tag=$matches[1]\";s:45:\"type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:40:\"type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?post_format=$matches[1]&feed=$matches[2]\";s:21:\"type/([^/]+)/embed/?$\";s:44:\"index.php?post_format=$matches[1]&embed=true\";s:33:\"type/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?post_format=$matches[1]&paged=$matches[2]\";s:15:\"type/([^/]+)/?$\";s:33:\"index.php?post_format=$matches[1]\";s:12:\"robots\\.txt$\";s:18:\"index.php?robots=1\";s:13:\"favicon\\.ico$\";s:19:\"index.php?favicon=1\";s:48:\".*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\\.php$\";s:18:\"index.php?feed=old\";s:20:\".*wp-app\\.php(/.*)?$\";s:19:\"index.php?error=403\";s:18:\".*wp-register.php$\";s:23:\"index.php?register=true\";s:32:\"feed/(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:27:\"(feed|rdf|rss|rss2|atom)/?$\";s:27:\"index.php?&feed=$matches[1]\";s:8:\"embed/?$\";s:21:\"index.php?&embed=true\";s:20:\"page/?([0-9]{1,})/?$\";s:28:\"index.php?&paged=$matches[1]\";s:41:\"comments/feed/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:36:\"comments/(feed|rdf|rss|rss2|atom)/?$\";s:42:\"index.php?&feed=$matches[1]&withcomments=1\";s:17:\"comments/embed/?$\";s:21:\"index.php?&embed=true\";s:44:\"search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:39:\"search/(.+)/(feed|rdf|rss|rss2|atom)/?$\";s:40:\"index.php?s=$matches[1]&feed=$matches[2]\";s:20:\"search/(.+)/embed/?$\";s:34:\"index.php?s=$matches[1]&embed=true\";s:32:\"search/(.+)/page/?([0-9]{1,})/?$\";s:41:\"index.php?s=$matches[1]&paged=$matches[2]\";s:14:\"search/(.+)/?$\";s:23:\"index.php?s=$matches[1]\";s:52:\"blog/author/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:47:\"blog/author/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:50:\"index.php?author_name=$matches[1]&feed=$matches[2]\";s:28:\"blog/author/([^/]+)/embed/?$\";s:44:\"index.php?author_name=$matches[1]&embed=true\";s:40:\"blog/author/([^/]+)/page/?([0-9]{1,})/?$\";s:51:\"index.php?author_name=$matches[1]&paged=$matches[2]\";s:22:\"blog/author/([^/]+)/?$\";s:33:\"index.php?author_name=$matches[1]\";s:74:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:69:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:80:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&feed=$matches[4]\";s:50:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/embed/?$\";s:74:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&embed=true\";s:62:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[4]\";s:44:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$\";s:63:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]\";s:61:\"blog/([0-9]{4})/([0-9]{1,2})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:56:\"blog/([0-9]{4})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom)/?$\";s:64:\"index.php?year=$matches[1]&monthnum=$matches[2]&feed=$matches[3]\";s:37:\"blog/([0-9]{4})/([0-9]{1,2})/embed/?$\";s:58:\"index.php?year=$matches[1]&monthnum=$matches[2]&embed=true\";s:49:\"blog/([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]\";s:31:\"blog/([0-9]{4})/([0-9]{1,2})/?$\";s:47:\"index.php?year=$matches[1]&monthnum=$matches[2]\";s:48:\"blog/([0-9]{4})/feed/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:43:\"blog/([0-9]{4})/(feed|rdf|rss|rss2|atom)/?$\";s:43:\"index.php?year=$matches[1]&feed=$matches[2]\";s:24:\"blog/([0-9]{4})/embed/?$\";s:37:\"index.php?year=$matches[1]&embed=true\";s:36:\"blog/([0-9]{4})/page/?([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&paged=$matches[2]\";s:18:\"blog/([0-9]{4})/?$\";s:26:\"index.php?year=$matches[1]\";s:63:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:73:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:93:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:88:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:88:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:69:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:58:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/embed/?$\";s:91:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&embed=true\";s:62:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$\";s:85:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&tb=1\";s:82:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:77:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&feed=$matches[5]\";s:70:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&paged=$matches[5]\";s:77:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/comment-page-([0-9]{1,})/?$\";s:98:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&cpage=$matches[5]\";s:66:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$\";s:97:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]\";s:52:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:62:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:82:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:77:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:77:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:58:\"blog/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:69:\"blog/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:81:\"index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]\";s:56:\"blog/([0-9]{4})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$\";s:65:\"index.php?year=$matches[1]&monthnum=$matches[2]&cpage=$matches[3]\";s:43:\"blog/([0-9]{4})/comment-page-([0-9]{1,})/?$\";s:44:\"index.php?year=$matches[1]&cpage=$matches[2]\";s:27:\".?.+?/attachment/([^/]+)/?$\";s:32:\"index.php?attachment=$matches[1]\";s:37:\".?.+?/attachment/([^/]+)/trackback/?$\";s:37:\"index.php?attachment=$matches[1]&tb=1\";s:57:\".?.+?/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\";s:49:\"index.php?attachment=$matches[1]&feed=$matches[2]\";s:52:\".?.+?/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\";s:50:\"index.php?attachment=$matches[1]&cpage=$matches[2]\";s:33:\".?.+?/attachment/([^/]+)/embed/?$\";s:43:\"index.php?attachment=$matches[1]&embed=true\";s:16:\"(.?.+?)/embed/?$\";s:41:\"index.php?pagename=$matches[1]&embed=true\";s:20:\"(.?.+?)/trackback/?$\";s:35:\"index.php?pagename=$matches[1]&tb=1\";s:40:\"(.?.+?)/feed/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:35:\"(.?.+?)/(feed|rdf|rss|rss2|atom)/?$\";s:47:\"index.php?pagename=$matches[1]&feed=$matches[2]\";s:28:\"(.?.+?)/page/?([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&paged=$matches[2]\";s:35:\"(.?.+?)/comment-page-([0-9]{1,})/?$\";s:48:\"index.php?pagename=$matches[1]&cpage=$matches[2]\";s:24:\"(.?.+?)(?:/([0-9]+))?/?$\";s:47:\"index.php?pagename=$matches[1]&page=$matches[2]\";}','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentythree','yes'),(41,'stylesheet','twentytwentythree','yes'),(42,'comment_registration','0','yes'),(43,'html_type','text/html','yes'),(44,'use_trackback','0','yes'),(45,'default_role','subscriber','yes'),(46,'db_version','56657','yes'),(47,'uploads_use_yearmonth_folders','1','yes'),(48,'upload_path','','yes'),(49,'blog_public','1','yes'),(50,'default_link_category','2','yes'),(51,'show_on_front','posts','yes'),(52,'tag_base','','yes'),(53,'show_avatars','1','yes'),(54,'avatar_rating','G','yes'),(55,'upload_url_path','','yes'),(56,'thumbnail_size_w','150','yes'),(57,'thumbnail_size_h','150','yes'),(58,'thumbnail_crop','1','yes'),(59,'medium_size_w','300','yes'),(60,'medium_size_h','300','yes'),(61,'avatar_default','mystery','yes'),(62,'large_size_w','1024','yes'),(63,'large_size_h','1024','yes'),(64,'image_default_link_type','none','yes'),(65,'image_default_size','','yes'),(66,'image_default_align','','yes'),(67,'close_comments_for_old_posts','0','yes'),(68,'close_comments_days_old','14','yes'),(69,'thread_comments','1','yes'),(70,'thread_comments_depth','5','yes'),(71,'page_comments','0','yes'),(72,'comments_per_page','50','yes'),(73,'default_comments_page','newest','yes'),(74,'comment_order','asc','yes'),(75,'sticky_posts','a:0:{}','yes'),(76,'widget_categories','a:0:{}','yes'),(77,'widget_text','a:0:{}','yes'),(78,'widget_rss','a:0:{}','yes'),(79,'uninstall_plugins','a:0:{}','no'),(80,'timezone_string','','yes'),(81,'page_for_posts','0','yes'),(82,'page_on_front','0','yes'),(83,'default_post_format','0','yes'),(84,'link_manager_enabled','0','yes'),(85,'finished_splitting_shared_terms','1','yes'),(86,'site_icon','0','yes'),(87,'medium_large_size_w','768','yes'),(88,'medium_large_size_h','0','yes'),(89,'wp_page_for_privacy_policy','0','yes'),(90,'show_comments_cookies_opt_in','1','yes'),(91,'admin_email_lifespan','1701601846','yes'),(92,'disallowed_keys','','no'),(93,'comment_previously_approved','1','yes'),(94,'auto_plugin_theme_update_emails','a:0:{}','no'),(95,'auto_update_core_dev','enabled','yes'),(96,'auto_update_core_minor','enabled','yes'),(97,'auto_update_core_major','enabled','yes'),(98,'wp_force_deactivated_plugins','a:0:{}','yes'),(99,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(100,'fresh_site','1','yes'),(101,'post_count','1','yes'),(102,'widget_block','a:6:{i:2;a:1:{s:7:\"content\";s:19:\"\";}i:3;a:1:{s:7:\"content\";s:154:\"

Recent Posts

\";}i:4;a:1:{s:7:\"content\";s:227:\"

Recent Comments

\";}i:5;a:1:{s:7:\"content\";s:146:\"

Archives

\";}i:6;a:1:{s:7:\"content\";s:150:\"

Categories

\";}s:12:\"_multiwidget\";i:1;}','yes'),(103,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:7:\"block-2\";i:1;s:7:\"block-3\";i:2;s:7:\"block-4\";}s:9:\"sidebar-2\";a:2:{i:0;s:7:\"block-5\";i:1;s:7:\"block-6\";}s:13:\"array_version\";i:3;}','yes'),(104,'cron','a:3:{i:1686049924;a:5:{s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1686136324;a:1:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}}s:7:\"version\";i:2;}','yes'),(105,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(107,'widget_archives','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(108,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(109,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(112,'widget_meta','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(113,'widget_search','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(114,'widget_recent-posts','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(115,'widget_recent-comments','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(116,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(117,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(118,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(119,'_transient_doing_cron','1686049924.8459129333496093750000','yes'),(120,'upload_space_check_disabled','1','no'),(121,'wp_attachment_pages_enabled','1','yes'),(122,'db_upgraded','1','yes'); +/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_postmeta` +-- + +DROP TABLE IF EXISTS `wp_postmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_postmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `post_id` (`post_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_postmeta` +-- + +LOCK TABLES `wp_postmeta` WRITE; +/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */; +INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'); +/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_posts` +-- + +DROP TABLE IF EXISTS `wp_posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_posts` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `post_author` bigint(20) unsigned NOT NULL DEFAULT 0, + `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content` longtext NOT NULL, + `post_title` text NOT NULL, + `post_excerpt` text NOT NULL, + `post_status` varchar(20) NOT NULL DEFAULT 'publish', + `comment_status` varchar(20) NOT NULL DEFAULT 'open', + `ping_status` varchar(20) NOT NULL DEFAULT 'open', + `post_password` varchar(255) NOT NULL DEFAULT '', + `post_name` varchar(200) NOT NULL DEFAULT '', + `to_ping` text NOT NULL, + `pinged` text NOT NULL, + `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `post_content_filtered` longtext NOT NULL, + `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `guid` varchar(255) NOT NULL DEFAULT '', + `menu_order` int(11) NOT NULL DEFAULT 0, + `post_type` varchar(20) NOT NULL DEFAULT 'post', + `post_mime_type` varchar(100) NOT NULL DEFAULT '', + `comment_count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `post_name` (`post_name`(191)), + KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`), + KEY `post_parent` (`post_parent`), + KEY `post_author` (`post_author`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_posts` +-- + +LOCK TABLES `wp_posts` WRITE; +/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */; +INSERT INTO `wp_posts` VALUES (1,1,'2023-06-06 11:10:46','2023-06-06 11:10:46','\n

Welcome to Wordpress.test. This is your first post. Edit or delete it, then start writing!

\n','Hello world!','','publish','open','open','','hello-world','','','2023-06-06 11:10:46','2023-06-06 11:10:46','',0,'https://wordpress.test/?p=1',0,'post','',1),(2,1,'2023-06-06 11:10:46','2023-06-06 11:10:46','\n

This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:

\n\n\n\n

Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)

\n\n\n\n

...or something like this:

\n\n\n\n

The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.

\n\n\n\n

As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!

\n','Sample Page','','publish','closed','open','','sample-page','','','2023-06-06 11:10:46','2023-06-06 11:10:46','',0,'https://wordpress.test/?page_id=2',0,'page','',0); +/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_registration_log` +-- + +DROP TABLE IF EXISTS `wp_registration_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_registration_log` ( + `ID` bigint(20) NOT NULL AUTO_INCREMENT, + `email` varchar(255) NOT NULL DEFAULT '', + `IP` varchar(30) NOT NULL DEFAULT '', + `blog_id` bigint(20) NOT NULL DEFAULT 0, + `date_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`ID`), + KEY `IP` (`IP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_registration_log` +-- + +LOCK TABLES `wp_registration_log` WRITE; +/*!40000 ALTER TABLE `wp_registration_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_registration_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_signups` +-- + +DROP TABLE IF EXISTS `wp_signups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_signups` ( + `signup_id` bigint(20) NOT NULL AUTO_INCREMENT, + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', + `title` longtext NOT NULL, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `activated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL DEFAULT 0, + `activation_key` varchar(50) NOT NULL DEFAULT '', + `meta` longtext DEFAULT NULL, + PRIMARY KEY (`signup_id`), + KEY `activation_key` (`activation_key`), + KEY `user_email` (`user_email`), + KEY `user_login_email` (`user_login`,`user_email`), + KEY `domain_path` (`domain`(140),`path`(51)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_signups` +-- + +LOCK TABLES `wp_signups` WRITE; +/*!40000 ALTER TABLE `wp_signups` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_signups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_site` +-- + +DROP TABLE IF EXISTS `wp_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_site` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `domain` varchar(200) NOT NULL DEFAULT '', + `path` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `domain` (`domain`(140),`path`(51)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_site` +-- + +LOCK TABLES `wp_site` WRITE; +/*!40000 ALTER TABLE `wp_site` DISABLE KEYS */; +INSERT INTO `wp_site` VALUES (1,'wordpress.test','/'); +/*!40000 ALTER TABLE `wp_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_sitemeta` +-- + +DROP TABLE IF EXISTS `wp_sitemeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_sitemeta` ( + `meta_id` bigint(20) NOT NULL AUTO_INCREMENT, + `site_id` bigint(20) NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `meta_key` (`meta_key`(191)), + KEY `site_id` (`site_id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_sitemeta` +-- + +LOCK TABLES `wp_sitemeta` WRITE; +/*!40000 ALTER TABLE `wp_sitemeta` DISABLE KEYS */; +INSERT INTO `wp_sitemeta` VALUES (1,1,'user_count','1'),(2,1,'site_name','Test'),(3,1,'admin_email','admin@wordpress.test'),(4,1,'admin_user_id','1'),(5,1,'registration','none'),(6,1,'upload_filetypes','jpg jpeg png gif webp mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg flac m4a wav mp4 m4v webm ogv flv'),(7,1,'blog_upload_space','100'),(8,1,'fileupload_maxk','1500'),(9,1,'site_admins','a:1:{i:0;s:5:\"admin\";}'),(10,1,'allowedthemes','a:1:{s:17:\"twentytwentythree\";b:1;}'),(11,1,'illegal_names','a:9:{i:0;s:3:\"www\";i:1;s:3:\"web\";i:2;s:4:\"root\";i:3;s:5:\"admin\";i:4;s:4:\"main\";i:5;s:6:\"invite\";i:6;s:13:\"administrator\";i:7;s:5:\"files\";i:8;s:4:\"blog\";}'),(12,1,'wpmu_upgrade_site','53496'),(13,1,'welcome_email','Howdy USERNAME,\n\nYour new SITE_NAME site has been successfully set up at:\nBLOG_URL\n\nYou can log in to the administrator account with the following information:\n\nUsername: USERNAME\nPassword: PASSWORD\nLog in here: BLOG_URLwp-login.php\n\nWe hope you enjoy your new site. Thanks!\n\n--The Team @ SITE_NAME'),(14,1,'first_post','Welcome to %s. This is your first post. Edit or delete it, then start writing!'),(15,1,'siteurl','https://wordpress.test/'),(16,1,'add_new_users','0'),(17,1,'upload_space_check_disabled','1'),(18,1,'subdomain_install',''),(19,1,'ms_files_rewriting','0'),(20,1,'user_count',''),(21,1,'initial_db_version',''),(22,1,'active_sitewide_plugins','a:0:{}'),(23,1,'WPLANG','en_US'),(24,1,'main_site','1'),(25,1,'site_meta_supported','1'); +/*!40000 ALTER TABLE `wp_sitemeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_relationships` +-- + +DROP TABLE IF EXISTS `wp_term_relationships`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_relationships` ( + `object_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `term_order` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`object_id`,`term_taxonomy_id`), + KEY `term_taxonomy_id` (`term_taxonomy_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_relationships` +-- + +LOCK TABLES `wp_term_relationships` WRITE; +/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */; +INSERT INTO `wp_term_relationships` VALUES (1,1,0); +/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_term_taxonomy` +-- + +DROP TABLE IF EXISTS `wp_term_taxonomy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_term_taxonomy` ( + `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `taxonomy` varchar(32) NOT NULL DEFAULT '', + `description` longtext NOT NULL, + `parent` bigint(20) unsigned NOT NULL DEFAULT 0, + `count` bigint(20) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_taxonomy_id`), + UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`), + KEY `taxonomy` (`taxonomy`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_term_taxonomy` +-- + +LOCK TABLES `wp_term_taxonomy` WRITE; +/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */; +INSERT INTO `wp_term_taxonomy` VALUES (1,1,'category','',0,1); +/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_termmeta` +-- + +DROP TABLE IF EXISTS `wp_termmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_termmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `term_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `term_id` (`term_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_termmeta` +-- + +LOCK TABLES `wp_termmeta` WRITE; +/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_terms` +-- + +DROP TABLE IF EXISTS `wp_terms`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_terms` ( + `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + `term_group` bigint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`term_id`), + KEY `slug` (`slug`(191)), + KEY `name` (`name`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_terms` +-- + +LOCK TABLES `wp_terms` WRITE; +/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */; +INSERT INTO `wp_terms` VALUES (1,'Uncategorized','uncategorized',0); +/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_usermeta` +-- + +DROP TABLE IF EXISTS `wp_usermeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_usermeta` ( + `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`umeta_id`), + KEY `user_id` (`user_id`), + KEY `meta_key` (`meta_key`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_usermeta` +-- + +LOCK TABLES `wp_usermeta` WRITE; +/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */; +INSERT INTO `wp_usermeta` VALUES (1,1,'nickname','admin'),(2,1,'first_name',''),(3,1,'last_name',''),(4,1,'description',''),(5,1,'rich_editing','true'),(6,1,'syntax_highlighting','true'),(7,1,'comment_shortcuts','false'),(8,1,'admin_color','fresh'),(9,1,'use_ssl','0'),(10,1,'show_admin_bar_front','true'),(11,1,'locale',''),(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'),(13,1,'wp_user_level','10'),(14,1,'dismissed_wp_pointers',''),(15,1,'aim',''),(16,1,'yim',''),(17,1,'jabber',''),(18,1,'source_domain','wordpress.test'),(19,1,'primary_blog','1'); +/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_users` +-- + +DROP TABLE IF EXISTS `wp_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_users` ( + `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_login` varchar(60) NOT NULL DEFAULT '', + `user_pass` varchar(255) NOT NULL DEFAULT '', + `user_nicename` varchar(50) NOT NULL DEFAULT '', + `user_email` varchar(100) NOT NULL DEFAULT '', + `user_url` varchar(100) NOT NULL DEFAULT '', + `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `user_activation_key` varchar(255) NOT NULL DEFAULT '', + `user_status` int(11) NOT NULL DEFAULT 0, + `display_name` varchar(250) NOT NULL DEFAULT '', + `spam` tinyint(2) NOT NULL DEFAULT 0, + `deleted` tinyint(2) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`), + KEY `user_login_key` (`user_login`), + KEY `user_nicename` (`user_nicename`), + KEY `user_email` (`user_email`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_users` +-- + +LOCK TABLES `wp_users` WRITE; +/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */; +INSERT INTO `wp_users` VALUES (1,'admin','$P$BnMYRn01JxSA6T33CTl8A.H/tvRWfN0','admin','admin@wordpress.test','https://wordpress.test','2023-06-06 11:10:46','',0,'admin',0,0); +/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_admin_note_actions` +-- + +DROP TABLE IF EXISTS `wp_wc_admin_note_actions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_admin_note_actions` ( + `action_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `note_id` bigint(20) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `label` varchar(255) NOT NULL, + `query` longtext NOT NULL, + `status` varchar(255) NOT NULL, + `actioned_text` varchar(255) NOT NULL, + `nonce_action` varchar(255) DEFAULT NULL, + `nonce_name` varchar(255) DEFAULT NULL, + PRIMARY KEY (`action_id`), + KEY `note_id` (`note_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_admin_note_actions` +-- + +LOCK TABLES `wp_wc_admin_note_actions` WRITE; +/*!40000 ALTER TABLE `wp_wc_admin_note_actions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_admin_note_actions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_admin_notes` +-- + +DROP TABLE IF EXISTS `wp_wc_admin_notes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_admin_notes` ( + `note_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `type` varchar(20) NOT NULL, + `locale` varchar(20) NOT NULL, + `title` longtext NOT NULL, + `content` longtext NOT NULL, + `content_data` longtext DEFAULT NULL, + `status` varchar(200) NOT NULL, + `source` varchar(200) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_reminder` datetime DEFAULT NULL, + `is_snoozable` tinyint(1) NOT NULL DEFAULT 0, + `layout` varchar(20) NOT NULL DEFAULT '', + `image` varchar(200) DEFAULT NULL, + `is_deleted` tinyint(1) NOT NULL DEFAULT 0, + `is_read` tinyint(1) NOT NULL DEFAULT 0, + `icon` varchar(200) NOT NULL DEFAULT 'info', + PRIMARY KEY (`note_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_admin_notes` +-- + +LOCK TABLES `wp_wc_admin_notes` WRITE; +/*!40000 ALTER TABLE `wp_wc_admin_notes` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_admin_notes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_category_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_category_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_category_lookup` ( + `category_tree_id` bigint(20) unsigned NOT NULL, + `category_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`category_tree_id`,`category_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_category_lookup` +-- + +LOCK TABLES `wp_wc_category_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_category_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_category_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_customer_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_customer_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_customer_lookup` ( + `customer_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned DEFAULT NULL, + `username` varchar(60) NOT NULL DEFAULT '', + `first_name` varchar(255) NOT NULL, + `last_name` varchar(255) NOT NULL, + `email` varchar(100) DEFAULT NULL, + `date_last_active` timestamp NULL DEFAULT NULL, + `date_registered` timestamp NULL DEFAULT NULL, + `country` char(2) NOT NULL DEFAULT '', + `postcode` varchar(20) NOT NULL DEFAULT '', + `city` varchar(100) NOT NULL DEFAULT '', + `state` varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (`customer_id`), + UNIQUE KEY `user_id` (`user_id`), + KEY `email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_customer_lookup` +-- + +LOCK TABLES `wp_wc_customer_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_customer_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_customer_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_download_log` +-- + +DROP TABLE IF EXISTS `wp_wc_download_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_download_log` ( + `download_log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `timestamp` datetime NOT NULL, + `permission_id` bigint(20) unsigned NOT NULL, + `user_id` bigint(20) unsigned DEFAULT NULL, + `user_ip_address` varchar(100) DEFAULT '', + PRIMARY KEY (`download_log_id`), + KEY `permission_id` (`permission_id`), + KEY `timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_download_log` +-- + +LOCK TABLES `wp_wc_download_log` WRITE; +/*!40000 ALTER TABLE `wp_wc_download_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_download_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_coupon_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_coupon_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_coupon_lookup` ( + `order_id` bigint(20) unsigned NOT NULL, + `coupon_id` bigint(20) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `discount_amount` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_id`,`coupon_id`), + KEY `coupon_id` (`coupon_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_coupon_lookup` +-- + +LOCK TABLES `wp_wc_order_coupon_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_coupon_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_coupon_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_product_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_product_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_product_lookup` ( + `order_item_id` bigint(20) unsigned NOT NULL, + `order_id` bigint(20) unsigned NOT NULL, + `product_id` bigint(20) unsigned NOT NULL, + `variation_id` bigint(20) unsigned NOT NULL, + `customer_id` bigint(20) unsigned DEFAULT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `product_qty` int(11) NOT NULL, + `product_net_revenue` double NOT NULL DEFAULT 0, + `product_gross_revenue` double NOT NULL DEFAULT 0, + `coupon_amount` double NOT NULL DEFAULT 0, + `tax_amount` double NOT NULL DEFAULT 0, + `shipping_amount` double NOT NULL DEFAULT 0, + `shipping_tax_amount` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_item_id`), + KEY `order_id` (`order_id`), + KEY `product_id` (`product_id`), + KEY `customer_id` (`customer_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_product_lookup` +-- + +LOCK TABLES `wp_wc_order_product_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_product_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_product_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_stats` +-- + +DROP TABLE IF EXISTS `wp_wc_order_stats`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_stats` ( + `order_id` bigint(20) unsigned NOT NULL, + `parent_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_created_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_paid` datetime DEFAULT '0000-00-00 00:00:00', + `date_completed` datetime DEFAULT '0000-00-00 00:00:00', + `num_items_sold` int(11) NOT NULL DEFAULT 0, + `total_sales` double NOT NULL DEFAULT 0, + `tax_total` double NOT NULL DEFAULT 0, + `shipping_total` double NOT NULL DEFAULT 0, + `net_total` double NOT NULL DEFAULT 0, + `returning_customer` tinyint(1) DEFAULT NULL, + `status` varchar(200) NOT NULL, + `customer_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`order_id`), + KEY `date_created` (`date_created`), + KEY `customer_id` (`customer_id`), + KEY `status` (`status`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_stats` +-- + +LOCK TABLES `wp_wc_order_stats` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_stats` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_stats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_order_tax_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_order_tax_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_order_tax_lookup` ( + `order_id` bigint(20) unsigned NOT NULL, + `tax_rate_id` bigint(20) unsigned NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `shipping_tax` double NOT NULL DEFAULT 0, + `order_tax` double NOT NULL DEFAULT 0, + `total_tax` double NOT NULL DEFAULT 0, + PRIMARY KEY (`order_id`,`tax_rate_id`), + KEY `tax_rate_id` (`tax_rate_id`), + KEY `date_created` (`date_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_order_tax_lookup` +-- + +LOCK TABLES `wp_wc_order_tax_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_order_tax_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_order_tax_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_attributes_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_product_attributes_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_attributes_lookup` ( + `product_id` bigint(20) NOT NULL, + `product_or_parent_id` bigint(20) NOT NULL, + `taxonomy` varchar(32) NOT NULL, + `term_id` bigint(20) NOT NULL, + `is_variation_attribute` tinyint(1) NOT NULL, + `in_stock` tinyint(1) NOT NULL, + PRIMARY KEY (`product_or_parent_id`,`term_id`,`product_id`,`taxonomy`), + KEY `is_variation_attribute_term_id` (`is_variation_attribute`,`term_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_attributes_lookup` +-- + +LOCK TABLES `wp_wc_product_attributes_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_attributes_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_product_attributes_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_download_directories` +-- + +DROP TABLE IF EXISTS `wp_wc_product_download_directories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_download_directories` ( + `url_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `url` varchar(256) NOT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`url_id`), + KEY `url` (`url`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_download_directories` +-- + +LOCK TABLES `wp_wc_product_download_directories` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_download_directories` DISABLE KEYS */; +INSERT INTO `wp_wc_product_download_directories` VALUES (1,'file:///Users/lucatume/oss/wp-browser/var/wordpress/wp-content/uploads/woocommerce_uploads/',1),(2,'http://localhost:2389/wp-content/uploads/woocommerce_uploads/',1); +/*!40000 ALTER TABLE `wp_wc_product_download_directories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_product_meta_lookup` +-- + +DROP TABLE IF EXISTS `wp_wc_product_meta_lookup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_product_meta_lookup` ( + `product_id` bigint(20) NOT NULL, + `sku` varchar(100) DEFAULT '', + `virtual` tinyint(1) DEFAULT 0, + `downloadable` tinyint(1) DEFAULT 0, + `min_price` decimal(19,4) DEFAULT NULL, + `max_price` decimal(19,4) DEFAULT NULL, + `onsale` tinyint(1) DEFAULT 0, + `stock_quantity` double DEFAULT NULL, + `stock_status` varchar(100) DEFAULT 'instock', + `rating_count` bigint(20) DEFAULT 0, + `average_rating` decimal(3,2) DEFAULT 0.00, + `total_sales` bigint(20) DEFAULT 0, + `tax_status` varchar(100) DEFAULT 'taxable', + `tax_class` varchar(100) DEFAULT '', + PRIMARY KEY (`product_id`), + KEY `virtual` (`virtual`), + KEY `downloadable` (`downloadable`), + KEY `stock_status` (`stock_status`), + KEY `stock_quantity` (`stock_quantity`), + KEY `onsale` (`onsale`), + KEY `min_max_price` (`min_price`,`max_price`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_product_meta_lookup` +-- + +LOCK TABLES `wp_wc_product_meta_lookup` WRITE; +/*!40000 ALTER TABLE `wp_wc_product_meta_lookup` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_product_meta_lookup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_rate_limits` +-- + +DROP TABLE IF EXISTS `wp_wc_rate_limits`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_rate_limits` ( + `rate_limit_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `rate_limit_key` varchar(200) NOT NULL, + `rate_limit_expiry` bigint(20) unsigned NOT NULL, + `rate_limit_remaining` smallint(10) NOT NULL DEFAULT 0, + PRIMARY KEY (`rate_limit_id`), + UNIQUE KEY `rate_limit_key` (`rate_limit_key`(191)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_rate_limits` +-- + +LOCK TABLES `wp_wc_rate_limits` WRITE; +/*!40000 ALTER TABLE `wp_wc_rate_limits` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_rate_limits` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_reserved_stock` +-- + +DROP TABLE IF EXISTS `wp_wc_reserved_stock`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_reserved_stock` ( + `order_id` bigint(20) NOT NULL, + `product_id` bigint(20) NOT NULL, + `stock_quantity` double NOT NULL DEFAULT 0, + `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`order_id`,`product_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_reserved_stock` +-- + +LOCK TABLES `wp_wc_reserved_stock` WRITE; +/*!40000 ALTER TABLE `wp_wc_reserved_stock` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_reserved_stock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_tax_rate_classes` +-- + +DROP TABLE IF EXISTS `wp_wc_tax_rate_classes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_tax_rate_classes` ( + `tax_rate_class_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL DEFAULT '', + `slug` varchar(200) NOT NULL DEFAULT '', + PRIMARY KEY (`tax_rate_class_id`), + UNIQUE KEY `slug` (`slug`(191)) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_tax_rate_classes` +-- + +LOCK TABLES `wp_wc_tax_rate_classes` WRITE; +/*!40000 ALTER TABLE `wp_wc_tax_rate_classes` DISABLE KEYS */; +INSERT INTO `wp_wc_tax_rate_classes` VALUES (1,'Reduced rate','reduced-rate'),(2,'Zero rate','zero-rate'); +/*!40000 ALTER TABLE `wp_wc_tax_rate_classes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_wc_webhooks` +-- + +DROP TABLE IF EXISTS `wp_wc_webhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_wc_webhooks` ( + `webhook_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `status` varchar(200) NOT NULL, + `name` text NOT NULL, + `user_id` bigint(20) unsigned NOT NULL, + `delivery_url` text NOT NULL, + `secret` text NOT NULL, + `topic` varchar(200) NOT NULL, + `date_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_created_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `api_version` smallint(4) NOT NULL, + `failure_count` smallint(10) NOT NULL DEFAULT 0, + `pending_delivery` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`webhook_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_wc_webhooks` +-- + +LOCK TABLES `wp_wc_webhooks` WRITE; +/*!40000 ALTER TABLE `wp_wc_webhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_wc_webhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_api_keys` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_api_keys`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_api_keys` ( + `key_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint(20) unsigned NOT NULL, + `description` varchar(200) DEFAULT NULL, + `permissions` varchar(10) NOT NULL, + `consumer_key` char(64) NOT NULL, + `consumer_secret` char(43) NOT NULL, + `nonces` longtext DEFAULT NULL, + `truncated_key` char(7) NOT NULL, + `last_access` datetime DEFAULT NULL, + PRIMARY KEY (`key_id`), + KEY `consumer_key` (`consumer_key`), + KEY `consumer_secret` (`consumer_secret`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_api_keys` +-- + +LOCK TABLES `wp_woocommerce_api_keys` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_api_keys` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_api_keys` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_attribute_taxonomies` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_attribute_taxonomies`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_attribute_taxonomies` ( + `attribute_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `attribute_name` varchar(200) NOT NULL, + `attribute_label` varchar(200) DEFAULT NULL, + `attribute_type` varchar(20) NOT NULL, + `attribute_orderby` varchar(20) NOT NULL, + `attribute_public` int(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`attribute_id`), + KEY `attribute_name` (`attribute_name`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_attribute_taxonomies` +-- + +LOCK TABLES `wp_woocommerce_attribute_taxonomies` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_attribute_taxonomies` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_attribute_taxonomies` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_downloadable_product_permissions` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_downloadable_product_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_downloadable_product_permissions` ( + `permission_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `download_id` varchar(36) NOT NULL, + `product_id` bigint(20) unsigned NOT NULL, + `order_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `order_key` varchar(200) NOT NULL, + `user_email` varchar(200) NOT NULL, + `user_id` bigint(20) unsigned DEFAULT NULL, + `downloads_remaining` varchar(9) DEFAULT NULL, + `access_granted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `access_expires` datetime DEFAULT NULL, + `download_count` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`permission_id`), + KEY `download_order_key_product` (`product_id`,`order_id`,`order_key`(16),`download_id`), + KEY `download_order_product` (`download_id`,`order_id`,`product_id`), + KEY `order_id` (`order_id`), + KEY `user_order_remaining_expires` (`user_id`,`order_id`,`downloads_remaining`,`access_expires`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_downloadable_product_permissions` +-- + +LOCK TABLES `wp_woocommerce_downloadable_product_permissions` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_downloadable_product_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_downloadable_product_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_log` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_log` ( + `log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `timestamp` datetime NOT NULL, + `level` smallint(4) NOT NULL, + `source` varchar(200) NOT NULL, + `message` longtext NOT NULL, + `context` longtext DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `level` (`level`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_log` +-- + +LOCK TABLES `wp_woocommerce_log` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_order_itemmeta` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_order_itemmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_order_itemmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `order_item_id` bigint(20) unsigned NOT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `order_item_id` (`order_item_id`), + KEY `meta_key` (`meta_key`(32)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_order_itemmeta` +-- + +LOCK TABLES `wp_woocommerce_order_itemmeta` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_order_itemmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_order_itemmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_order_items` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_order_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_order_items` ( + `order_item_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `order_item_name` text NOT NULL, + `order_item_type` varchar(200) NOT NULL DEFAULT '', + `order_id` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`order_item_id`), + KEY `order_id` (`order_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_order_items` +-- + +LOCK TABLES `wp_woocommerce_order_items` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_order_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_order_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_payment_tokenmeta` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_payment_tokenmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_payment_tokenmeta` ( + `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `payment_token_id` bigint(20) unsigned NOT NULL, + `meta_key` varchar(255) DEFAULT NULL, + `meta_value` longtext DEFAULT NULL, + PRIMARY KEY (`meta_id`), + KEY `payment_token_id` (`payment_token_id`), + KEY `meta_key` (`meta_key`(32)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_payment_tokenmeta` +-- + +LOCK TABLES `wp_woocommerce_payment_tokenmeta` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokenmeta` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokenmeta` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_payment_tokens` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_payment_tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_payment_tokens` ( + `token_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `gateway_id` varchar(200) NOT NULL, + `token` text NOT NULL, + `user_id` bigint(20) unsigned NOT NULL DEFAULT 0, + `type` varchar(200) NOT NULL, + `is_default` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`token_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_payment_tokens` +-- + +LOCK TABLES `wp_woocommerce_payment_tokens` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_payment_tokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_sessions` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_sessions` ( + `session_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `session_key` char(32) NOT NULL, + `session_value` longtext NOT NULL, + `session_expiry` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`session_id`), + UNIQUE KEY `session_key` (`session_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_sessions` +-- + +LOCK TABLES `wp_woocommerce_sessions` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zone_locations` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zone_locations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zone_locations` ( + `location_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `zone_id` bigint(20) unsigned NOT NULL, + `location_code` varchar(200) NOT NULL, + `location_type` varchar(40) NOT NULL, + PRIMARY KEY (`location_id`), + KEY `location_id` (`location_id`), + KEY `location_type_code` (`location_type`(10),`location_code`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zone_locations` +-- + +LOCK TABLES `wp_woocommerce_shipping_zone_locations` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_locations` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_locations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zone_methods` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zone_methods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zone_methods` ( + `zone_id` bigint(20) unsigned NOT NULL, + `instance_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `method_id` varchar(200) NOT NULL, + `method_order` bigint(20) unsigned NOT NULL, + `is_enabled` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`instance_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zone_methods` +-- + +LOCK TABLES `wp_woocommerce_shipping_zone_methods` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_methods` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zone_methods` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_shipping_zones` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_shipping_zones`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_shipping_zones` ( + `zone_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `zone_name` varchar(200) NOT NULL, + `zone_order` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`zone_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_shipping_zones` +-- + +LOCK TABLES `wp_woocommerce_shipping_zones` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zones` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_shipping_zones` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_tax_rate_locations` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_tax_rate_locations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_tax_rate_locations` ( + `location_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `location_code` varchar(200) NOT NULL, + `tax_rate_id` bigint(20) unsigned NOT NULL, + `location_type` varchar(40) NOT NULL, + PRIMARY KEY (`location_id`), + KEY `tax_rate_id` (`tax_rate_id`), + KEY `location_type_code` (`location_type`(10),`location_code`(20)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_tax_rate_locations` +-- + +LOCK TABLES `wp_woocommerce_tax_rate_locations` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rate_locations` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rate_locations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `wp_woocommerce_tax_rates` +-- + +DROP TABLE IF EXISTS `wp_woocommerce_tax_rates`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `wp_woocommerce_tax_rates` ( + `tax_rate_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `tax_rate_country` varchar(2) NOT NULL DEFAULT '', + `tax_rate_state` varchar(200) NOT NULL DEFAULT '', + `tax_rate` varchar(8) NOT NULL DEFAULT '', + `tax_rate_name` varchar(200) NOT NULL DEFAULT '', + `tax_rate_priority` bigint(20) unsigned NOT NULL, + `tax_rate_compound` int(1) NOT NULL DEFAULT 0, + `tax_rate_shipping` int(1) NOT NULL DEFAULT 1, + `tax_rate_order` bigint(20) unsigned NOT NULL, + `tax_rate_class` varchar(200) NOT NULL DEFAULT '', + PRIMARY KEY (`tax_rate_id`), + KEY `tax_rate_country` (`tax_rate_country`), + KEY `tax_rate_state` (`tax_rate_state`(2)), + KEY `tax_rate_class` (`tax_rate_class`(10)), + KEY `tax_rate_priority` (`tax_rate_priority`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `wp_woocommerce_tax_rates` +-- + +LOCK TABLES `wp_woocommerce_tax_rates` WRITE; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rates` DISABLE KEYS */; +/*!40000 ALTER TABLE `wp_woocommerce_tax_rates` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -589,4 +2651,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-06-06 11:16:17 +-- Dump completed on 2024-02-20 10:28:43 diff --git a/tests/_support/_generated/WploaderTesterActions.php b/tests/_support/_generated/WploaderTesterActions.php index 9c489023a..db05a016b 100644 --- a/tests/_support/_generated/WploaderTesterActions.php +++ b/tests/_support/_generated/WploaderTesterActions.php @@ -1,9 +1,9 @@ -getPluginsFolder(); * $hello = $this->getPluginsFolder('hello.php'); * ``` * + * @param string $path A relative path to append to te plugins directory absolute path. + * + * @return string The absolute path to the `pluginsFolder` path or the same with a relative path appended if `$path` + * is provided. * @see \lucatume\WPBrowser\Module\WPLoader::getPluginsFolder() */ public function getPluginsFolder(string $path = ""): string { @@ -69,16 +69,16 @@ public function getPluginsFolder(string $path = ""): string { * * Returns the absolute path to the themes directory. * - * @param string $path A relative path to append to te themes directory absolute path. - * - * @return string The absolute path to the `themesFolder` path or the same with a relative path appended if `$path` - * is provided. * @example * ```php * $themes = $this->getThemesFolder(); * $twentytwenty = $this->getThemesFolder('/twentytwenty'); * ``` * + * @param string $path A relative path to append to te themes directory absolute path. + * + * @return string The absolute path to the `themesFolder` path or the same with a relative path appended if `$path` + * is provided. * @see \lucatume\WPBrowser\Module\WPLoader::getThemesFolder() */ public function getThemesFolder(string $path = ""): string { @@ -93,15 +93,15 @@ public function getThemesFolder(string $path = ""): string { * This method gives access to the same factories provided by the * [Core test suite](https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/). * - * @return FactoryStore A factory store, proxy to get hold of the Core suite object - * factories. - * * @example * ```php * $postId = $I->factory()->post->create(); * $userId = $I->factory()->user->create(['role' => 'administrator']); * ``` * + * @return FactoryStore A factory store, proxy to get hold of the Core suite object + * factories. + * * @link https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/ * @see \lucatume\WPBrowser\Module\WPLoader::factory() */ @@ -115,9 +115,6 @@ public function factory(): \lucatume\WPBrowser\Module\WPLoader\FactoryStore { * * Returns the absolute path to the WordPress content directory. * - * @param string $path An optional path to append to the content directory absolute path. - * - * @return string The content directory absolute path, or a path in it. * @example * ```php * $content = $this->getContentFolder(); @@ -125,6 +122,9 @@ public function factory(): \lucatume\WPBrowser\Module\WPLoader\FactoryStore { * $twentytwenty = $this->getContentFolder('themes/twentytwenty'); * ``` * + * @param string $path An optional path to append to the content directory absolute path. + * + * @return string The content directory absolute path, or a path in it. * @see \lucatume\WPBrowser\Module\WPLoader::getContentFolder() */ public function getContentFolder(string $path = ""): string { diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_child_theme_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_child_theme_correctly__0.snapshot index e665dea47..0c280bde4 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_child_theme_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_child_theme_correctly__0.snapshot @@ -275,8 +275,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:62160 -WORDPRESS_DOMAIN=localhost:62160 +WORDPRESS_URL=http://localhost:41251 +WORDPRESS_DOMAIN=localhost:41251 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -284,10 +284,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=20672 +CHROMEDRIVER_PORT=29174 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=62160 +BUILTIN_SERVER_PORT=41251 <<< /tests/.env <<< @@ -333,6 +333,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_multi_site_correctly__0.snapshot.txt b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_multi_site_correctly__0.snapshot.txt index e8f855ebd..257889de1 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_multi_site_correctly__0.snapshot.txt +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_multi_site_correctly__0.snapshot.txt @@ -31,6 +31,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot index 8b32b45fa..372880e4d 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot @@ -283,8 +283,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:19743 -WORDPRESS_DOMAIN=localhost:19743 +WORDPRESS_URL=http://localhost:16145 +WORDPRESS_DOMAIN=localhost:16145 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -292,10 +292,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=64617 +CHROMEDRIVER_PORT=50293 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=19743 +BUILTIN_SERVER_PORT=16145 <<< /tests/.env <<< @@ -341,6 +341,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot index 1225e06af..552451c67 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot @@ -288,8 +288,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:15161 -WORDPRESS_DOMAIN=localhost:15161 +WORDPRESS_URL=http://localhost:40096 +WORDPRESS_DOMAIN=localhost:40096 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -297,10 +297,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=59343 +CHROMEDRIVER_PORT=9351 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=15161 +BUILTIN_SERVER_PORT=40096 <<< /tests/.env <<< @@ -346,6 +346,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot index 253291183..3fdd10231 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot @@ -288,8 +288,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:17866 -WORDPRESS_DOMAIN=localhost:17866 +WORDPRESS_URL=http://localhost:61506 +WORDPRESS_DOMAIN=localhost:61506 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -297,10 +297,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=41473 +CHROMEDRIVER_PORT=2860 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=17866 +BUILTIN_SERVER_PORT=61506 <<< /tests/.env <<< @@ -346,6 +346,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot index a5dbf80eb..7dc9e9e8f 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot @@ -288,8 +288,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:24026 -WORDPRESS_DOMAIN=localhost:24026 +WORDPRESS_URL=http://localhost:24356 +WORDPRESS_DOMAIN=localhost:24356 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -297,10 +297,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=36951 +CHROMEDRIVER_PORT=54335 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=24026 +BUILTIN_SERVER_PORT=24356 <<< /tests/.env <<< @@ -346,6 +346,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_single_site_correctly__0.snapshot.txt b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_single_site_correctly__0.snapshot.txt index e8f855ebd..257889de1 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_single_site_correctly__0.snapshot.txt +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_single_site_correctly__0.snapshot.txt @@ -31,6 +31,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_correctly__0.snapshot index 6370c41ae..4e74283b0 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_correctly__0.snapshot @@ -275,8 +275,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:16536 -WORDPRESS_DOMAIN=localhost:16536 +WORDPRESS_URL=http://localhost:6493 +WORDPRESS_DOMAIN=localhost:6493 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -284,10 +284,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=55746 +CHROMEDRIVER_PORT=24266 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=16536 +BUILTIN_SERVER_PORT=6493 <<< /tests/.env <<< @@ -333,6 +333,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_custom_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_custom_correctly__0.snapshot index ec70776ce..a19a12826 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_custom_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__3.5__should_scaffold_for_theme_custom_correctly__0.snapshot @@ -282,8 +282,8 @@ TEST_TABLE_PREFIX=test_ WORDPRESS_TABLE_PREFIX=wp_ # The URL and domain of the WordPress site used in end-to-end tests. -WORDPRESS_URL=http://localhost:14852 -WORDPRESS_DOMAIN=localhost:14852 +WORDPRESS_URL=http://localhost:44512 +WORDPRESS_DOMAIN=localhost:44512 # The username and password of the administrator user of the WordPress site used in end-to-end tests. WORDPRESS_ADMIN_USER=admin @@ -291,10 +291,10 @@ WORDPRESS_ADMIN_PASSWORD=password # The host and port of the ChromeDriver server that will be used in end-to-end tests. CHROMEDRIVER_HOST=localhost -CHROMEDRIVER_PORT=48584 +CHROMEDRIVER_PORT=52294 # The port on which the PHP built-in server will serve the WordPress installation. -BUILTIN_SERVER_PORT=14852 +BUILTIN_SERVER_PORT=44512 <<< /tests/.env <<< @@ -340,6 +340,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_child_theme_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_child_theme_correctly__0.snapshot index 60a5492fc..609f26756 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_child_theme_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_child_theme_correctly__0.snapshot @@ -314,6 +314,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_multi_site_correctly__0.snapshot.txt b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_multi_site_correctly__0.snapshot.txt index 50b6051f1..39a0c43b7 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_multi_site_correctly__0.snapshot.txt +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_multi_site_correctly__0.snapshot.txt @@ -32,6 +32,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot index 59ccd8e85..9a6067d55 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file__0.snapshot @@ -322,6 +322,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot index 09562cdd2..67cbbad11 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_non_plugin_php_file_custom__0.snapshot @@ -242,6 +242,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear <<< /codeception.yml <<< diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot index 0c39dbd48..7aa3fe7ba 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file__0.snapshot @@ -327,6 +327,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot index 96c42e650..a155e1b89 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_plugin_with_plugin_php_file_custom__0.snapshot @@ -242,6 +242,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear <<< /codeception.yml <<< diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_single_site_correctly__0.snapshot.txt b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_single_site_correctly__0.snapshot.txt index 50b6051f1..39a0c43b7 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_single_site_correctly__0.snapshot.txt +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_single_site_correctly__0.snapshot.txt @@ -32,6 +32,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_correctly__0.snapshot index f5533da6c..d1dbc2fef 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_correctly__0.snapshot @@ -314,6 +314,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear - lucatume\WPBrowser\Command\DevStart - lucatume\WPBrowser\Command\DevStop - lucatume\WPBrowser\Command\DevInfo diff --git a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_custom_correctly__0.snapshot b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_custom_correctly__0.snapshot index cd4dd2356..328b5421a 100644 --- a/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_custom_correctly__0.snapshot +++ b/tests/unit/Codeception/Template/__snapshots__/WpbrowserTest__should_scaffold_for_theme_custom_correctly__0.snapshot @@ -244,6 +244,8 @@ extensions: - lucatume\WPBrowser\Command\GenerateWPUnit - lucatume\WPBrowser\Command\DbExport - lucatume\WPBrowser\Command\DbImport + - lucatume\WPBrowser\Command\MonkeyCachePath + - lucatume\WPBrowser\Command\MonkeyCacheClear <<< /codeception.yml <<< diff --git a/tests/unit/lucatume/WPBrowser/Command/MonkeyCacheClearTest.php b/tests/unit/lucatume/WPBrowser/Command/MonkeyCacheClearTest.php new file mode 100644 index 000000000..0f27913b3 --- /dev/null +++ b/tests/unit/lucatume/WPBrowser/Command/MonkeyCacheClearTest.php @@ -0,0 +1,67 @@ +assertDirectoryExists(MonkeyPatch::getCachePath()); + touch(MonkeyPatch::getCachePath() . '/some-file.txt'); + $this->assertFileExists(MonkeyPatch::getCachePath() . '/some-file.txt'); + mkdir(MonkeyPatch::getCachePath() . '/some-dir'); + touch(MonkeyPatch::getCachePath() . '/some-dir/some-file.txt'); + $this->assertFileExists(MonkeyPatch::getCachePath() . '/some-dir/some-file.txt'); + + $command = new MonkeyCacheClear(); + $command->execute($input, $output); + + $this->assertDirectoryExists(MonkeyPatch::getCachePath()); + $this->assertCount(0, (array)glob(MonkeyPatch::getCachePath() . '/*')); + /** @noinspection PhpUnitTestsInspection */ + $this->assertFalse(is_dir(MonkeyPatch::getCachePath() . '/some-dir')); + $this->assertEquals("Monkey patch cache cleared.\n", $output->fetch()); + } + + /** + * It should correctly clean cache with porcelain output + * + * @test + */ + public function should_correctly_clean_cache_with_porcelain_output(): void + { + $input = new StringInput('--porcelain'); + $output = new BufferedOutput(); + + $this->assertDirectoryExists(MonkeyPatch::getCachePath()); + touch(MonkeyPatch::getCachePath() . '/some-file.txt'); + $this->assertFileExists(MonkeyPatch::getCachePath() . '/some-file.txt'); + mkdir(MonkeyPatch::getCachePath() . '/some-dir'); + touch(MonkeyPatch::getCachePath() . '/some-dir/some-file.txt'); + $this->assertFileExists(MonkeyPatch::getCachePath() . '/some-dir/some-file.txt'); + + $command = new MonkeyCacheClear(); + $input->bind($command->getDefinition()); + $command->execute($input, $output); + + $this->assertDirectoryExists(MonkeyPatch::getCachePath()); + $this->assertCount(0, (array)glob(MonkeyPatch::getCachePath() . '/*')); + /** @noinspection PhpUnitTestsInspection */ + $this->assertFalse(is_dir(MonkeyPatch::getCachePath() . '/some-dir')); + $this->assertEquals('', $output->fetch()); + } +} diff --git a/tests/unit/lucatume/WPBrowser/Command/MonkeyCachePathTest.php b/tests/unit/lucatume/WPBrowser/Command/MonkeyCachePathTest.php new file mode 100644 index 000000000..b5bb104a0 --- /dev/null +++ b/tests/unit/lucatume/WPBrowser/Command/MonkeyCachePathTest.php @@ -0,0 +1,55 @@ +bind($command->getDefinition()); + $exitCode = $command->execute($input, $output); + + $this->assertEquals(0, $exitCode); + $this->assertEquals(MonkeyPatch::getCachePath() . "\n", $output->fetch()); + + $command = new MonkeyCachePath(); + $input = new StringInput('--porcelain'); + $input->bind($command->getDefinition()); + $exitCode = $command->execute($input, $output); + + $this->assertEquals(0, $exitCode); + $this->assertEquals(MonkeyPatch::getCachePath() . "\n", $output->fetch()); + } + + /** + * It should provide pretty output correctly + * + * @test + */ + public function should_provide_pretty_output_correctly(): void + { + $input = new StringInput(''); + $output = new BufferedOutput(); + + $command = new MonkeyCachePath(); + $exitCode = $command->execute($input, $output); + + $this->assertEquals(0, $exitCode); + $this->assertEquals('Monkey patch cache path: ' . MonkeyPatch::getCachePath() . "\n", $output->fetch()); + } +} diff --git a/tests/unit/lucatume/WPBrowser/Events/Module/WPLoader/FiltersTest.php b/tests/unit/lucatume/WPBrowser/Events/Module/WPLoader/FiltersTest.php new file mode 100644 index 000000000..06fc0170d --- /dev/null +++ b/tests/unit/lucatume/WPBrowser/Events/Module/WPLoader/FiltersTest.php @@ -0,0 +1,200 @@ + [ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback' ], + [ 'some-filter', 'some_callback' ], + ] + ]); + + $removed = []; + $sut->removeWith(function ($tag, $callback, $priority) use (&$removed) { + $removed[] = [ $tag, $callback, $priority ]; + + return true; + }); + + $sut->toRemove()->remove(); + + $this->assertEquals([ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback', 10 ], + [ 'some-filter', 'some_callback', 10 ], + ], $removed); + } + + /** + * It should allow readding removed filters + * + * @test + */ + public function should_allow_readding_removed_filters() + { + $sut = new Filters([ + 'remove' => [ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback', 10, 2 ], + [ 'some-filter', 'some_callback' ], + ] + ]); + + $added = []; + $sut->removeWith(function ($tag, $callback, $priority) { + }); + $sut->addWith(function ($tag, $callback, $priority, $acceptedArgs) use (&$added) { + $added[] = [ $tag, $callback, $priority, $acceptedArgs ]; + }); + + $sut->toRemove()->add(); + + $this->assertEquals([ + [ 'some-filter', 'some_callback', 23, 1 ], + [ 'some-other-filter', 'some_callback', 10, 2 ], + [ 'some-filter', 'some_callback', 10, 1 ], + ], $added); + } + + /** + * It should allow setting filters to add + * + * @test + */ + public function should_allow_setting_filters_to_add() + { + $sut = new Filters([ + 'add' => [ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback' ], + [ 'some-filter', 'some_callback', 12, 3 ], + ] + ]); + + $added = []; + $sut->addWith(function ($tag, $callback, $priority, $acceptedArgs) use (&$added) { + $added[] = [ $tag, $callback, $priority, $acceptedArgs ]; + + return true; + }); + + $sut->toAdd()->add(); + + $this->assertEquals([ + [ 'some-filter', 'some_callback', 23, 1 ], + [ 'some-other-filter', 'some_callback', 10, 1 ], + [ 'some-filter', 'some_callback', 12, 3 ], + ], $added); + } + + /** + * It should allow removing added filters + * + * @test + */ + public function should_allow_removing_added_filters() + { + $sut = new Filters([ + 'add' => [ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback' ], + [ 'some-filter', 'some_callback', 12, 3 ], + ] + ]); + + $removed = []; + $sut->addWith(function () { + }); + $sut->removeWith(function ($tag, $callback, $priority) use (&$removed) { + $removed[] = [ $tag, $callback, $priority ]; + }); + + $sut->toAdd()->remove(); + + $this->assertEquals([ + [ 'some-filter', 'some_callback', 23 ], + [ 'some-other-filter', 'some_callback', 10 ], + [ 'some-filter', 'some_callback', 12 ], + ], $removed); + } + + /** + * It should allow formatting the filters + * + * @test + */ + public function should_allow_formatting_the_filters() + { + $formatted = Filters::format([ + 'foo' => 'bar', + 'add' => [ + [ 'one', 'foo', 11 ], + [ 'one', 'bar' ], + [ 'two', 'foo', 23, 2 ], + ], + 'remove' => [ + [ 'one', 'foo', 11 ], + [ 'one', 'bar' ], + [ 'two', 'foo', 23, 2 ], + ] + ]); + + $this->assertEquals([ + 'remove' => [ + [ 'one', 'foo', 11, 1 ], + [ 'one', 'bar', 10, 1 ], + [ 'two', 'foo', 23, 2 ], + ], + 'add' => [ + [ 'one', 'foo', 11, 1 ], + [ 'one', 'bar', 10, 1 ], + [ 'two', 'foo', 23, 2 ], + ] + ], $formatted); + } + + public function badFilters(): array + { + return [ + [ [ 'foo', new stdClass() ] ], + [ [ new stdClass(), 'foo' ] ], + [ [ '', new stdClass() ] ], + [ [ '', '' ] ], + [ [ '' ] ], + [ [] ], + [ [ 'foo', [ 'bar' ] ] ], + [ [ 'foo', [ 'bar', new stdClass() ] ] ], + [ [ 'foo', [ new stdClass(), 'bar' ] ] ], + [ [ 'foo', 'bar', 10, 12, 23 ] ], + ]; + } + + /** + * It should throw if filters information is not correct + * + * @test + * + * @dataProvider badFilters + */ + public function should_throw_if_filters_information_is_not_correct(array $filters) + { + $this->expectException(ModuleException::class); + new Filters([ + 'remove' => [ $filters ] + ]); + } +} diff --git a/tests/unit/lucatume/WPBrowser/Events/Module/WPLoaderTest.php b/tests/unit/lucatume/WPBrowser/Events/Module/WPLoaderTest.php index 090902dfb..47cc6d073 100644 --- a/tests/unit/lucatume/WPBrowser/Events/Module/WPLoaderTest.php +++ b/tests/unit/lucatume/WPBrowser/Events/Module/WPLoaderTest.php @@ -197,8 +197,8 @@ public function should_allow_specifying_the_wp_root_folder_as_a_relative_path_to $this->assertInIsolation(static function () use ($rootDir, $wpLoader1) { chdir($rootDir); $wpLoader1->_initialize(); - Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader1->_getConfig('wpRootFolder')); - Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader1->getWpRootFolder()); + Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader1->_getConfig('wpRootFolder')); + Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader1->getWpRootFolder()); }, $rootDir); $this->config = [ @@ -214,8 +214,8 @@ public function should_allow_specifying_the_wp_root_folder_as_a_relative_path_to $this->assertInIsolation(static function () use ($rootDir, $wpLoader2) { chdir($rootDir); $wpLoader2->_initialize(); - Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader2->_getConfig('wpRootFolder')); - Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader2->getWpRootFolder()); + Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader2->_getConfig('wpRootFolder')); + Assert::assertEquals($rootDir . '/test/wordpress/', $wpLoader2->getWpRootFolder()); }, $rootDir); } @@ -244,8 +244,8 @@ public function should_allow_specifying_the_wp_root_folder_including_the_home_sy $_SERVER['HOME'] = $homeDir; $wpLoader->_initialize(); - Assert::assertEquals($homeDir . '/projects/work/acme/wordpress/', $wpLoader->_getConfig('wpRootFolder')); - Assert::assertEquals($homeDir . '/projects/work/acme/wordpress/', $wpLoader->getWpRootFolder()); + Assert::assertEquals($homeDir . '/projects/work/acme/wordpress/', $wpLoader->_getConfig('wpRootFolder')); + Assert::assertEquals($homeDir . '/projects/work/acme/wordpress/', $wpLoader->getWpRootFolder()); }); } @@ -271,8 +271,8 @@ public function should_allow_specifying_the_wp_root_folder_as_an_absolute_path() $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals($wpRootDir . '/', $wpLoader->_getConfig('wpRootFolder')); - Assert::assertEquals($wpRootDir . '/', $wpLoader->getWpRootFolder()); + Assert::assertEquals($wpRootDir . '/', $wpLoader->_getConfig('wpRootFolder')); + Assert::assertEquals($wpRootDir . '/', $wpLoader->getWpRootFolder()); }); } @@ -298,8 +298,8 @@ public function should_allow_specifying_the_wp_root_folder_as_absolute_path_with $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals($wpRootDir . '/Word Press/', $wpLoader->_getConfig('wpRootFolder')); - Assert::assertEquals($wpRootDir . '/Word Press/', $wpLoader->getWpRootFolder()); + Assert::assertEquals($wpRootDir . '/Word Press/', $wpLoader->_getConfig('wpRootFolder')); + Assert::assertEquals($wpRootDir . '/Word Press/', $wpLoader->getWpRootFolder()); }); } @@ -324,7 +324,7 @@ public function should_scaffold_the_installation_if_the_wp_root_folder_is_empty( $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertInstanceOf(Scaffolded::class, $wpLoader->getInstallation()->getState()); + Assert::assertInstanceOf(Scaffolded::class, $wpLoader->getInstallation()->getState()); }); } @@ -356,14 +356,14 @@ public function should_read_salts_from_configured_installation(): void $wpLoader->_initialize(); $installation = $wpLoader->getInstallation(); - Assert::assertEquals($installation->getAuthKey(), $wpLoader->_getConfig('AUTH_KEY')); - Assert::assertEquals($installation->getSecureAuthKey(), $wpLoader->_getConfig('SECURE_AUTH_KEY')); - Assert::assertEquals($installation->getLoggedInKey(), $wpLoader->_getConfig('LOGGED_IN_KEY')); - Assert::assertEquals($installation->getNonceKey(), $wpLoader->_getConfig('NONCE_KEY')); - Assert::assertEquals($installation->getAuthSalt(), $wpLoader->_getConfig('AUTH_SALT')); - Assert::assertEquals($installation->getSecureAuthSalt(), $wpLoader->_getConfig('SECURE_AUTH_SALT')); - Assert::assertEquals($installation->getLoggedInSalt(), $wpLoader->_getConfig('LOGGED_IN_SALT')); - Assert::assertEquals($installation->getNonceSalt(), $wpLoader->_getConfig('NONCE_SALT')); + Assert::assertEquals($installation->getAuthKey(), $wpLoader->_getConfig('AUTH_KEY')); + Assert::assertEquals($installation->getSecureAuthKey(), $wpLoader->_getConfig('SECURE_AUTH_KEY')); + Assert::assertEquals($installation->getLoggedInKey(), $wpLoader->_getConfig('LOGGED_IN_KEY')); + Assert::assertEquals($installation->getNonceKey(), $wpLoader->_getConfig('NONCE_KEY')); + Assert::assertEquals($installation->getAuthSalt(), $wpLoader->_getConfig('AUTH_SALT')); + Assert::assertEquals($installation->getSecureAuthSalt(), $wpLoader->_getConfig('SECURE_AUTH_SALT')); + Assert::assertEquals($installation->getLoggedInSalt(), $wpLoader->_getConfig('LOGGED_IN_SALT')); + Assert::assertEquals($installation->getNonceSalt(), $wpLoader->_getConfig('NONCE_SALT')); }); } @@ -389,9 +389,9 @@ public function should_allow_getting_paths_from_the_wp_root_folder(): void $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals($wpRootDir . '/foo-bar', $wpLoader->getWpRootFolder('foo-bar')); - Assert::assertEquals($wpRootDir . '/foo-bar/baz', $wpLoader->getWpRootFolder('foo-bar/baz')); - Assert::assertEquals($wpRootDir . '/wp-config.php', $wpLoader->getWpRootFolder('wp-config.php')); + Assert::assertEquals($wpRootDir . '/foo-bar', $wpLoader->getWpRootFolder('foo-bar')); + Assert::assertEquals($wpRootDir . '/foo-bar/baz', $wpLoader->getWpRootFolder('foo-bar/baz')); + Assert::assertEquals($wpRootDir . '/wp-config.php', $wpLoader->getWpRootFolder('wp-config.php')); }); } @@ -428,9 +428,9 @@ public function should_set_some_default_values_for_salt_keys(): void ]; foreach ($var as $i => $key) { if ($i > 0) { - Assert::assertNotEquals($var[$i - 1], $wpLoader->_getConfig($key)); + Assert::assertNotEquals($var[$i - 1], $wpLoader->_getConfig($key)); } - Assert::assertEquals(64, strlen($wpLoader->_getConfig($key))); + Assert::assertEquals(64, strlen($wpLoader->_getConfig($key))); } }); } @@ -456,7 +456,7 @@ public function should_load_config_files_if_set(): void $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals('test_file_001.php', getenv('LOADED')); + Assert::assertEquals('test_file_001.php', getenv('LOADED')); }); $this->config = [ @@ -476,8 +476,8 @@ public function should_load_config_files_if_set(): void $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals(getenv('LOADED_2'), 'test_file_002.php'); - Assert::assertEquals(getenv('LOADED_3'), 'test_file_003.php'); + Assert::assertEquals(getenv('LOADED_2'), 'test_file_002.php'); + Assert::assertEquals(getenv('LOADED_3'), 'test_file_003.php'); }); } @@ -505,10 +505,10 @@ public function should_throw_if_config_files_do_not_exist(): void try { $wpLoader->_initialize(); } catch (Exception $e) { - Assert::assertInstanceOf(ModuleConfigException::class, $e); + Assert::assertInstanceOf(ModuleConfigException::class, $e); $captured = true; } - Assert::assertTrue($captured); + Assert::assertTrue($captured); }); $this->config = [ @@ -651,7 +651,7 @@ public function should_throw_if_load_only_and_word_press_not_installed(): void $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Dispatcher::dispatch(Events::SUITE_BEFORE); + Dispatcher::dispatch(Events::SUITE_INIT); }); } @@ -693,8 +693,8 @@ public function should_load_word_press_before_suite_if_load_only_w_config_files( $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals('', getenv('LOADED_2')); - Assert::assertFalse(defined('ABSPATH')); + Assert::assertEquals('', getenv('LOADED_2')); + Assert::assertFalse(defined('ABSPATH')); $actions = []; Dispatcher::addListener(WPLoader::EVENT_BEFORE_LOADONLY, static function () use (&$actions) { @@ -704,15 +704,15 @@ public function should_load_word_press_before_suite_if_load_only_w_config_files( $actions[] = WPLoader::EVENT_AFTER_LOADONLY; }); - Dispatcher::dispatch(Events::SUITE_BEFORE); + Dispatcher::dispatch(Events::SUITE_INIT); - Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); - Assert::assertEquals($wpRootDir . '/', ABSPATH); - Assert::assertEquals([ + Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); + Assert::assertEquals($wpRootDir . '/', ABSPATH); + Assert::assertEquals([ WPLoader::EVENT_BEFORE_LOADONLY, WPLoader::EVENT_AFTER_LOADONLY, ], $actions); - Assert::assertInstanceOf(FactoryStore::class, $wpLoader->factory()); + Assert::assertInstanceOf(FactoryStore::class, $wpLoader->factory()); }); } @@ -794,9 +794,9 @@ public function should_not_throw_when_load_only_true_and_using_db_module( $this->assertInIsolation(static function () use ($wpLoader, $wpRootDir) { $wpLoader->_initialize(); - Dispatcher::dispatch(Events::SUITE_BEFORE); + Dispatcher::dispatch(Events::SUITE_INIT); - Assert::assertEquals($wpRootDir . '/', ABSPATH); + Assert::assertEquals($wpRootDir . '/', ABSPATH); }); } @@ -937,11 +937,11 @@ public function should_should_install_and_bootstrap_single_site_using_constants_ $this->assertInIsolation(static function () use ($wpLoader, $wpRootDir) { $wpLoader->_initialize(); - Assert::assertEquals('test_file_001.php', getenv('LOADED')); - Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); - Assert::assertEquals($wpRootDir . '/', ABSPATH); - Assert::assertTrue(defined('WP_DEBUG')); - Assert::assertTrue(WP_DEBUG); + Assert::assertEquals('test_file_001.php', getenv('LOADED')); + Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); + Assert::assertEquals($wpRootDir . '/', ABSPATH); + Assert::assertTrue(defined('WP_DEBUG')); + Assert::assertTrue(WP_DEBUG); }); } @@ -1031,31 +1031,31 @@ public function should_install_and_bootstrap_single_installation(): void if (PHP_VERSION >= 7.4) { $expectedActivePlugins[] = 'woocommerce/woocommerce.php'; } - Assert::assertEquals($expectedActivePlugins, get_option('active_plugins')); - Assert::assertEquals([ + Assert::assertEquals($expectedActivePlugins, get_option('active_plugins')); + Assert::assertEquals([ 'before_install', 'after_install', ], $actions); - Assert::assertEquals('twentytwenty', get_option('template')); - Assert::assertEquals('twentytwenty', get_option('stylesheet')); - Assert::assertEquals('test_file_001.php', getenv('LOADED')); - Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); - Assert::assertEquals($wpRootDir . '/', ABSPATH); - Assert::assertTrue(defined('WP_DEBUG')); - Assert::assertTrue(WP_DEBUG); - Assert::assertInstanceOf(\wpdb::class, $GLOBALS['wpdb']); - Assert::assertFalse(is_multisite()); - Assert::assertEquals($wpRootDir . '/wp-content/', $wpLoader->getContentFolder()); - Assert::assertEquals($wpRootDir . '/wp-content/some/path', $wpLoader->getContentFolder('some/path')); - Assert::assertEquals( + Assert::assertEquals('twentytwenty', get_option('template')); + Assert::assertEquals('twentytwenty', get_option('stylesheet')); + Assert::assertEquals('test_file_001.php', getenv('LOADED')); + Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); + Assert::assertEquals($wpRootDir . '/', ABSPATH); + Assert::assertTrue(defined('WP_DEBUG')); + Assert::assertTrue(WP_DEBUG); + Assert::assertInstanceOf(\wpdb::class, $GLOBALS['wpdb']); + Assert::assertFalse(is_multisite()); + Assert::assertEquals($wpRootDir . '/wp-content/', $wpLoader->getContentFolder()); + Assert::assertEquals($wpRootDir . '/wp-content/some/path', $wpLoader->getContentFolder('some/path')); + Assert::assertEquals( $wpRootDir . '/wp-content/some/path/some-file.php', $wpLoader->getContentFolder('some/path/some-file.php') ); - Assert::assertEquals( + Assert::assertEquals( $wpRootDir . '/wp-content/plugins/some-file.php', $wpLoader->getPluginsFolder('/some-file.php') ); - Assert::assertEquals( + Assert::assertEquals( $wpRootDir . '/wp-content/themes/some-file.php', $wpLoader->getThemesFolder('/some-file.php') ); @@ -1122,32 +1122,32 @@ public function should_install_and_bootstrap_multisite_installation(): void if (PHP_VERSION >= 7.4) { $expectedActivePlugins[] = 'woocommerce/woocommerce.php'; } - Assert::assertEquals($expectedActivePlugins, array_keys(get_site_option('active_sitewide_plugins'))); - Assert::assertEquals([ + Assert::assertEquals($expectedActivePlugins, array_keys(get_site_option('active_sitewide_plugins'))); + Assert::assertEquals([ 'before_install', 'after_install', ], $actions); - Assert::assertEquals('twentytwenty', get_option('template')); - Assert::assertEquals('twentytwenty', get_option('stylesheet')); - Assert::assertEquals(['twentytwenty' => true], WP_Theme::get_allowed()); - Assert::assertEquals('test_file_001.php', getenv('LOADED')); - Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); - Assert::assertEquals($wpRootDir . '/', ABSPATH); - Assert::assertTrue(defined('WP_DEBUG')); - Assert::assertTrue(WP_DEBUG); - Assert::assertInstanceOf(\wpdb::class, $GLOBALS['wpdb']); - Assert::assertTrue(is_multisite()); - Assert::assertEquals($wpRootDir . '/wp-content/', $wpLoader->getContentFolder()); - Assert::assertEquals($wpRootDir . '/wp-content/some/path', $wpLoader->getContentFolder('some/path')); - Assert::assertEquals( + Assert::assertEquals('twentytwenty', get_option('template')); + Assert::assertEquals('twentytwenty', get_option('stylesheet')); + Assert::assertEquals(['twentytwenty' => true], WP_Theme::get_allowed()); + Assert::assertEquals('test_file_001.php', getenv('LOADED')); + Assert::assertEquals('test_file_002.php', getenv('LOADED_2')); + Assert::assertEquals($wpRootDir . '/', ABSPATH); + Assert::assertTrue(defined('WP_DEBUG')); + Assert::assertTrue(WP_DEBUG); + Assert::assertInstanceOf(\wpdb::class, $GLOBALS['wpdb']); + Assert::assertTrue(is_multisite()); + Assert::assertEquals($wpRootDir . '/wp-content/', $wpLoader->getContentFolder()); + Assert::assertEquals($wpRootDir . '/wp-content/some/path', $wpLoader->getContentFolder('some/path')); + Assert::assertEquals( $wpRootDir . '/wp-content/some/path/some-file.php', $wpLoader->getContentFolder('some/path/some-file.php') ); - Assert::assertEquals( + Assert::assertEquals( $wpRootDir . '/wp-content/plugins/some-file.php', $wpLoader->getPluginsFolder('/some-file.php') ); - Assert::assertEquals( + Assert::assertEquals( $wpRootDir . '/wp-content/themes/some-file.php', $wpLoader->getThemesFolder('/some-file.php') ); @@ -1413,8 +1413,8 @@ public function should_correctly_activate_child_theme_in_single_installation(): $installationOutput = $this->assertInIsolation(static function () use ($wpLoader, $wpRootDir) { $wpLoader->_initialize(); - Assert::assertEquals('twentytwenty', get_option('template')); - Assert::assertEquals('some-child-theme', get_option('stylesheet')); + Assert::assertEquals('twentytwenty', get_option('template')); + Assert::assertEquals('some-child-theme', get_option('stylesheet')); return [ 'bootstrapOutput' => $wpLoader->_getBootstrapOutput(), @@ -1481,8 +1481,8 @@ public function should_correctly_activate_child_theme_in_multisite_installation( $installationOutput = $this->assertInIsolation(static function () use ($wpLoader, $wpRootDir) { $wpLoader->_initialize(); - Assert::assertEquals('twentytwenty', get_option('template')); - Assert::assertEquals('twentytwenty-child', get_option('stylesheet')); + Assert::assertEquals('twentytwenty', get_option('template')); + Assert::assertEquals('twentytwenty-child', get_option('stylesheet')); return [ 'bootstrapOutput' => $wpLoader->_getBootstrapOutput(), @@ -1613,7 +1613,7 @@ public function should_allow_loading_a_database_dump_before_tests(): void $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals('value_1', get_option('option_1')); + Assert::assertEquals('value_1', get_option('option_1')); }); } @@ -1648,9 +1648,9 @@ public function should_allow_loading_multiple_database_dumps_before_the_tests(): $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals('value_1', get_option('option_1')); - Assert::assertEquals('value_2', get_option('option_2')); - Assert::assertEquals('value_3', get_option('option_3')); + Assert::assertEquals('value_1', get_option('option_1')); + Assert::assertEquals('value_2', get_option('option_2')); + Assert::assertEquals('value_3', get_option('option_3')); }); } @@ -1716,7 +1716,7 @@ public function should_place_sq_lite_dropin_if_using_sq_lite_database_for_tests( $this->assertInIsolation(static function () use ($wpRootDir, $wpLoader) { $wpLoader->_initialize(); - Assert::assertFileExists($wpRootDir . '/wp-content/db.php'); + Assert::assertFileExists($wpRootDir . '/wp-content/db.php'); }); } @@ -1743,8 +1743,8 @@ public function should_initialize_correctly_with_sqlite_database(): void $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); - Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); + Assert::assertTrue(function_exists('do_action')); + Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); }); } @@ -1779,10 +1779,10 @@ public function should_initialize_correctly_with_sqlite_database_in_load_only_mo $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Dispatcher::dispatch(Events::SUITE_BEFORE); + Dispatcher::dispatch(Events::SUITE_INIT); - Assert::assertTrue(function_exists('do_action')); - Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); + Assert::assertTrue(function_exists('do_action')); + Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); }); } @@ -1854,12 +1854,12 @@ function plugin_2_canary() {} $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); - Assert::assertTrue(function_exists('plugin_1_canary')); - Assert::assertTrue(is_plugin_active('plugin-1/plugin.php')); - Assert::assertTrue(function_exists('plugin_2_canary')); - Assert::assertTrue(is_plugin_active('plugin-2/plugin.php')); - Assert::assertEquals('theme-1', wp_get_theme()->get_stylesheet()); + Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('plugin_1_canary')); + Assert::assertTrue(is_plugin_active('plugin-1/plugin.php')); + Assert::assertTrue(function_exists('plugin_2_canary')); + Assert::assertTrue(is_plugin_active('plugin-2/plugin.php')); + Assert::assertEquals('theme-1', wp_get_theme()->get_stylesheet()); }); } @@ -1910,18 +1910,68 @@ public function should_correctly_load_with_different_database_names(string $dbNa $this->assertInIsolation(static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); - Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); + Assert::assertTrue(function_exists('do_action')); + Assert::assertInstanceOf(\WP_User::class, wp_get_current_user()); return $wpLoader->getInstallation()->getDb()->getDbName(); }) ); } + /** + * It should not backup globals by default + * + * @test + * @group backup-globals + */ + public function should_not_backup_globals_by_default(): void + { + $wpRootDir = FS::tmpDir('wploader_'); + $installation = Installation::scaffold($wpRootDir); + $dbName = Random::dbName(); + $dbHost = Env::get('WORDPRESS_DB_HOST'); + $dbUser = Env::get('WORDPRESS_DB_USER'); + $dbPassword = Env::get('WORDPRESS_DB_PASSWORD'); + $db = new MysqlDatabase($dbName, $dbUser, $dbPassword, $dbHost, 'test_'); + $db->drop(); + $installation->configure($db); + $installation->install( + 'https://wp.local', + 'admin', + 'password', + 'admin@wp.local', + 'Test' + ); + $testcaseFile = codecept_data_dir('files/BackupControlTestCase.php'); + $overridingTestCaseFile = codecept_data_dir('files/BackupControlTestCaseOverridingTestCase.php'); + + // Do not set`WPLoader.backupGlobals`, let the default value kick in. + $this->config = [ + 'wpRootFolder' => $wpRootDir, + 'dbUrl' => $db->getDbUrl(), + ]; + $wpLoader = $this->module(); + + $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { + $wpLoader->_initialize(); + + Assert::assertTrue(function_exists('do_action')); + + require_once $testcaseFile; + + $testCase = new \BackupControlTestCase('testBackupGlobalsIsFalse'); + /** @var TestResult $result */ + $result = $testCase->run(); + + Assert::assertTrue($result->wasSuccessful()); + }); + } + /** * It should allow controlling the backup of global variables in the WPTestCase * * @test + * @group backup-globals */ public function should_allow_controlling_the_backup_of_global_variables_in_the_wp_test_case(): void { @@ -1955,7 +2005,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; @@ -1963,7 +2013,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); }); // Set `WPLoader.backupGlobals` to `true`. @@ -1977,7 +2027,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; @@ -1985,11 +2035,10 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); }); - // Do not set `WPLoader.backupGlobals`, but use the default value. - // Set `WPLoader.backupGlobals` to `true`. + // Do not set `WPLoader.backupGlobals`, but use the default value of `false`. $this->config = [ 'wpRootFolder' => $wpRootDir, 'dbUrl' => $db->getDbUrl(), @@ -1999,15 +2048,15 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; - $testCase = new \BackupControlTestCase('testBackupGlobalsIsTrue'); + $testCase = new \BackupControlTestCase('testBackupGlobalsIsFalse'); /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); }); // Set `WPLoader.backupGlobals` to `true`, but use a use-case that sets it explicitly to `false`. @@ -2021,7 +2070,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w $this->assertInIsolation(static function () use ($wpLoader, $overridingTestCaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $overridingTestCaseFile; @@ -2029,7 +2078,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); }); $this->config = [ @@ -2038,11 +2087,11 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w ]; $wpLoader = $this->module(); - // Test that globals defined before the test runs should be backed up by default. + // Test that globals defined before the test runs should not be backed up by default. $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); // Set the initial value of the global variable. global $_wpbrowser_test_global_var; @@ -2054,10 +2103,10 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); // Check that the value of the global variable has been updated. - Assert::assertEquals('initial_value', $_wpbrowser_test_global_var); + Assert::assertEquals('updated_value', $_wpbrowser_test_global_var); }); $this->config = [ @@ -2071,7 +2120,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); // Set the initial value of the global variable. global $_wpbrowser_test_global_var; @@ -2083,10 +2132,10 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); // Check that the value of the global variable has been updated. - Assert::assertEquals('updated_value', $_wpbrowser_test_global_var); + Assert::assertEquals('updated_value', $_wpbrowser_test_global_var); }); } @@ -2094,6 +2143,7 @@ public function should_allow_controlling_the_backup_of_global_variables_in_the_w * It should allow controlling the backup of static attributes in the WPTestCase * * @test + * @group backup-globals */ public function should_allow_controlling_the_backup_of_static_attributes_in_the_wp_test_case(): void { @@ -2127,7 +2177,7 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; @@ -2135,12 +2185,12 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); - Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttribute); + Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttribute); }); - // Don't set`WPLoader.backupStaticAttributes`, it should be `true` by default. + // Don't set`WPLoader.backupStaticAttributes`, it should be `false` by default. $this->config = [ 'wpRootFolder' => $wpRootDir, 'dbUrl' => $db->getDbUrl() @@ -2150,7 +2200,7 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ $this->assertInIsolation(static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; @@ -2158,9 +2208,9 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); - Assert::assertEquals('initial_value', \BackupControlTestCaseStore::$staticAttribute); + Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttribute); }); // Set the value of `WPLoader.backupStaticAttributes` to `true`, but use a use-case that sets it explicitly to `false`. @@ -2174,7 +2224,7 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ $this->assertInIsolation(static function () use ($wpLoader, $overridingTestCaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $overridingTestCaseFile; @@ -2182,15 +2232,16 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); - Assert::assertEquals('updated_value', \BackupControlTestCaseOverridingStore::$staticAttribute); + Assert::assertEquals('updated_value', \BackupControlTestCaseOverridingStore::$staticAttribute); }); // Set the value of the `WPLoader.backupStaticAttributesExcludeList` to not back up the static attribute. $this->config = [ 'wpRootFolder' => $wpRootDir, 'dbUrl' => $db->getDbUrl(), + 'backupStaticAttributes' => true, 'backupStaticAttributesExcludeList' => [ \BackupControlTestCaseStore::class => ['staticAttribute', 'staticAttributeThree'], \BackupControlTestCaseStoreTwo::class => ['staticAttributeFour'], @@ -2202,7 +2253,7 @@ public function should_allow_controlling_the_backup_of_static_attributes_in_the_ static function () use ($wpLoader, $testcaseFile) { $wpLoader->_initialize(); - Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue(function_exists('do_action')); require_once $testcaseFile; @@ -2210,16 +2261,16 @@ static function () use ($wpLoader, $testcaseFile) { /** @var TestResult $result */ $result = $testCase->run(); - Assert::assertTrue($result->wasSuccessful()); + Assert::assertTrue($result->wasSuccessful()); - Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttribute); - Assert::assertEquals('initial_value', \BackupControlTestCaseStore::$staticAttributeTwo); - Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttributeThree); - Assert::assertEquals('initial_value', \BackupControlTestCaseStore::$staticAttributeFour); - Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttribute); - Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttributeTwo); - Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttributeThree); - Assert::assertEquals('updated_value', \BackupControlTestCaseStoreTwo::$staticAttributeFour); + Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttribute); + Assert::assertEquals('initial_value', \BackupControlTestCaseStore::$staticAttributeTwo); + Assert::assertEquals('updated_value', \BackupControlTestCaseStore::$staticAttributeThree); + Assert::assertEquals('initial_value', \BackupControlTestCaseStore::$staticAttributeFour); + Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttribute); + Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttributeTwo); + Assert::assertEquals('initial_value', \BackupControlTestCaseStoreTwo::$staticAttributeThree); + Assert::assertEquals('updated_value', \BackupControlTestCaseStoreTwo::$staticAttributeFour); } ); } @@ -2240,6 +2291,7 @@ public function notABooleanProvider(): array * * @test * @dataProvider notABooleanProvider + * @group backup-globals */ public function should_throw_if_backup_globals_is_not_a_boolean($notABoolean): void { @@ -2276,6 +2328,7 @@ public function notArrayOfStringsProvider(): array * * @test * @dataProvider notArrayOfStringsProvider + * @group backup-globals */ public function should_throw_if_backup_globals_exclude_list_is_not_an_array_of_strings($input): void { @@ -2297,6 +2350,7 @@ public function should_throw_if_backup_globals_exclude_list_is_not_an_array_of_s * * @test * @dataProvider notABooleanProvider + * @group backup-globals */ public function should_throw_if_backup_static_attributes_is_not_a_boolean($notABoolean): void { @@ -2333,6 +2387,7 @@ public function notStaticAttributeExcludeListProvider(): array * * @test * @dataProvider notStaticAttributeExcludeListProvider + * @group backup-globals */ public function should_throw_if_backup_static_attributes_exclude_list_is_not_in_the_correct_format($input): void { @@ -2424,14 +2479,14 @@ static function () use ($wpLoader, $moduleSplObjectHash) { $activePlugins = $wpdb->get_var( "SELECT option_value FROM {$wpdb->options} WHERE option_name = 'active_plugins'" ); - Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); - Assert::assertNotEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); - Assert::assertTrue(function_exists('do_action')); - Assert::assertTrue($beforeInstallCalled); - Assert::assertTrue($afterInstallCalled); - Assert::assertTrue($afterBootstrapCalled); - Assert::assertTrue(function_exists('wc_get_product')); - Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); + Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); + Assert::assertNotEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); + Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue($beforeInstallCalled); + Assert::assertTrue($afterInstallCalled); + Assert::assertTrue($afterBootstrapCalled); + Assert::assertTrue(function_exists('wc_get_product')); + Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); // Set a canary value. update_option('canary', $moduleSplObjectHash); @@ -2471,15 +2526,15 @@ static function () use ($moduleSplObjectHash, $wpLoader) { $activePlugins = $wpdb->get_var( "SELECT option_value FROM {$wpdb->options} WHERE option_name = 'active_plugins'" ); - Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); - Assert::assertEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); - Assert::assertTrue(function_exists('do_action')); - Assert::assertTrue($beforeInstallCalled); - Assert::assertTrue($afterInstallCalled); - Assert::assertTrue($afterBootstrapCalled); - Assert::assertTrue(function_exists('wc_get_product')); - Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); - Assert::assertEquals($moduleSplObjectHash, get_option('canary')); + Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); + Assert::assertEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); + Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue($beforeInstallCalled); + Assert::assertTrue($afterInstallCalled); + Assert::assertTrue($afterBootstrapCalled); + Assert::assertTrue(function_exists('wc_get_product')); + Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); + Assert::assertEquals($moduleSplObjectHash, get_option('canary')); } ); @@ -2508,15 +2563,15 @@ static function () use ($wpLoader) { $activePlugins = $wpdb->get_var( "SELECT option_value FROM {$wpdb->options} WHERE option_name = 'active_plugins'" ); - Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); - Assert::assertNotEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); - Assert::assertTrue(function_exists('do_action')); - Assert::assertTrue($beforeInstallCalled); - Assert::assertTrue($afterInstallCalled); - Assert::assertTrue($afterBootstrapCalled); - Assert::assertTrue(function_exists('wc_get_product')); - Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); - Assert::assertEquals( + Assert::assertEquals(['woocommerce/woocommerce.php'], unserialize($activePlugins)); + Assert::assertNotEquals('1', getenv('WP_TESTS_SKIP_INSTALL')); + Assert::assertTrue(function_exists('do_action')); + Assert::assertTrue($beforeInstallCalled); + Assert::assertTrue($afterInstallCalled); + Assert::assertTrue($afterBootstrapCalled); + Assert::assertTrue(function_exists('wc_get_product')); + Assert::assertEquals('twentytwenty', wp_get_theme()->get_stylesheet()); + Assert::assertEquals( '', get_option('canary'), 'The value set in the previous installation should be gone.' @@ -2676,8 +2731,8 @@ function activate_my_plugin(){ static function () use ($wpLoader) { $wpLoader->_initialize(); - Assert::assertEquals('', get_option('my_plugin_activated')); - Assert::assertEquals('__loaded__', get_option('my_plugin_loaded')); + Assert::assertEquals('', get_option('my_plugin_activated')); + Assert::assertEquals('__loaded__', get_option('my_plugin_loaded')); } ); } diff --git a/tests/unit/lucatume/WPBrowser/Extension/BuiltInServerControllerTest.php b/tests/unit/lucatume/WPBrowser/Extension/BuiltInServerControllerTest.php index 2d1956b9a..e2e4668d5 100644 --- a/tests/unit/lucatume/WPBrowser/Extension/BuiltInServerControllerTest.php +++ b/tests/unit/lucatume/WPBrowser/Extension/BuiltInServerControllerTest.php @@ -50,13 +50,23 @@ class BuiltInServerControllerTest extends Unit /** * @before - * @after */ - public function removePidFiles(): void - { + public function backupPidFile():void{ $pidFile = PhpBuiltInServer::getPidFile(); + if (is_file($pidFile)) { - unlink($pidFile); + rename($pidFile, $pidFile.'.bak'); + } + } + + /** + * @after + */ + public static function restorePidFile():void{ + $pidFile = PhpBuiltInServer::getPidFile(); + + if (is_file($pidFile .'.bak')) { + rename($pidFile.'.bak', $pidFile); } } diff --git a/tests/unit/lucatume/WPBrowser/Extension/ChromeDriverControllerTest.php b/tests/unit/lucatume/WPBrowser/Extension/ChromeDriverControllerTest.php index 683b74ed9..655636907 100644 --- a/tests/unit/lucatume/WPBrowser/Extension/ChromeDriverControllerTest.php +++ b/tests/unit/lucatume/WPBrowser/Extension/ChromeDriverControllerTest.php @@ -47,6 +47,28 @@ public function _before() $this->uopzSetMock(Output::class, $this->output); } + /** + * @before + */ + public function backupPidFile():void{ + $pidFile = ChromeDriver::getPidFile(); + + if (is_file($pidFile)) { + rename($pidFile, $pidFile.'.bak'); + } + } + + /** + * @after + */ + public static function restorePidFile():void{ + $pidFile = ChromeDriver::getPidFile(); + + if (is_file($pidFile .'.bak')) { + rename($pidFile.'.bak', $pidFile); + } + } + public function notArrayOfStringsProvider(): array { return [ diff --git a/tests/unit/lucatume/WPBrowser/Extension/DockerComposeControllerTest.php b/tests/unit/lucatume/WPBrowser/Extension/DockerComposeControllerTest.php index 736049862..21e88448e 100644 --- a/tests/unit/lucatume/WPBrowser/Extension/DockerComposeControllerTest.php +++ b/tests/unit/lucatume/WPBrowser/Extension/DockerComposeControllerTest.php @@ -50,6 +50,30 @@ public function _before() $this->uopzSetMock(Output::class, $this->output); } + /** + * @before + */ + public static function backupRunFile(): void + { + $runFile = DockerComposeController::getRunningFile(); + + if (is_file($runFile)) { + rename($runFile, $runFile . '.bak'); + } + } + + /** + * @after + */ + public static function restoreRunFile(): void + { + $runFile = DockerComposeController::getRunningFile(); + + if (is_file($runFile . '.bak')) { + rename($runFile . '.bak', $runFile); + } + } + public function notArrayOfStringsProvider(): array { return [ diff --git a/tests/unit/lucatume/WPBrowser/Lib/Generator/GenerationCommandsTest.php b/tests/unit/lucatume/WPBrowser/Lib/Generator/GenerationCommandsTest.php new file mode 100644 index 000000000..89a0606bf --- /dev/null +++ b/tests/unit/lucatume/WPBrowser/Lib/Generator/GenerationCommandsTest.php @@ -0,0 +1,102 @@ +testCaseFile)) { + return; + } + + if (!unlink($this->testCaseFile)) { + throw new \RuntimeException('Cannot remove test case file.'); + } + } + + /** + * @return array + */ + public function commandsProvider(): array + { + return [ + GenerateWPAjax::class => ['GenerateWPAjax', GenerateWPAjax::getCommandName()], + GenerateWPCanonical::class => ['GenerateWPCanonical', GenerateWPCanonical::getCommandName()], + GenerateWPRestApi::class => ['GenerateWPRestApi', GenerateWPRestApi::getCommandName()], + GenerateWPRestController::class => ['GenerateWPRestController', GenerateWPRestController::getCommandName()], + GenerateWPRestPostTypeController::class => [ + 'GenerateWPRestPostTypeController', + GenerateWPRestPostTypeController::getCommandName() + ], + GenerateWPUnit::class => ['GenerateWPUnit', GenerateWPUnit::getCommandName()], + GenerateWPXML::class => ['GenerateWPXML', GenerateWPXML::getCommandName()], + GenerateWPXMLRPC::class => ['GenerateWPXMLRPC', GenerateWPXMLRPC::getCommandName()], + ]; + } + + /** + * @dataProvider commandsProvider + */ + public function test_testcase_generation(string $commandClass, string $commandName): void + { + $codeceptionBin = FS::realpath('vendor/bin/codecept'); + + $suite = static::$suite; + + // Generate the test example. + (new Process([PHP_BINARY, $codeceptionBin, $commandName, $suite, $commandClass]))->mustRun(); + + $testCaseFileRelativePath = "tests/{$suite}/{$commandClass}Test.php"; + $testCaseFile = codecept_root_dir($testCaseFileRelativePath); + + $this->assertFileExists($testCaseFile); + + $this->testCaseFile = $testCaseFile; + + $runProcess = new Process( + [PHP_BINARY, $codeceptionBin, 'codeception:run', $testCaseFileRelativePath] + ); + $runProcess->run(); + $exitCode = $runProcess->getExitCode(); + + if ($exitCode !== 0) { + $this->testCaseFile = null; + } + + $this->assertEquals(0, $exitCode, $this->formatRunProcessOutput($runProcess)); + } + + private function formatRunProcessOutput(Process $runProcess): string + { + return sprintf( + "\nSTDOUT\n---\n%s\nSTDERR\n---\n%s\n", + preg_replace('/^/mu', '> ', $runProcess->getOutput()), + preg_replace('/^/mu', '> ', $runProcess->getErrorOutput()) + ); + } +} diff --git a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php index b2a6d1d46..593a457ac 100644 --- a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php +++ b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php @@ -31,4 +31,4 @@ public function test_factory() :void $this->assertInstanceOf(\WP_Post::class, $post); } -} +} \ No newline at end of file diff --git a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_scaffold_the_test_case__0.snapshot.php b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_scaffold_the_test_case__0.snapshot.php index 999dbdab7..16848360d 100644 --- a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_scaffold_the_test_case__0.snapshot.php +++ b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__3.5__should_scaffold_the_test_case__0.snapshot.php @@ -27,4 +27,4 @@ public function test_factory() :void $this->assertInstanceOf(\WP_Post::class, $post); } -} +} \ No newline at end of file diff --git a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php index 3ce3aadec..da7e47391 100644 --- a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php +++ b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_correctly_add_the_tester_property_if_actor_is_set_in_the_settings__0.snapshot.php @@ -32,4 +32,4 @@ public function test_factory() :void $this->assertInstanceOf(\WP_Post::class, $post); } -} +} \ No newline at end of file diff --git a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_scaffold_the_test_case__0.snapshot.php b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_scaffold_the_test_case__0.snapshot.php index f2d9d0323..321af87a3 100644 --- a/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_scaffold_the_test_case__0.snapshot.php +++ b/tests/unit/lucatume/WPBrowser/Lib/Generator/__snapshots__/WPUnitTest__should_scaffold_the_test_case__0.snapshot.php @@ -28,4 +28,4 @@ public function test_factory() :void $this->assertInstanceOf(\WP_Post::class, $post); } -} +} \ No newline at end of file diff --git a/tests/unit/lucatume/WPBrowser/ManagedProcess/Polyfills/Dotenv/DotenvTest.php b/tests/unit/lucatume/WPBrowser/ManagedProcess/Polyfills/Dotenv/DotenvTest.php new file mode 100644 index 000000000..d74bb02a1 --- /dev/null +++ b/tests/unit/lucatume/WPBrowser/ManagedProcess/Polyfills/Dotenv/DotenvTest.php @@ -0,0 +1,57 @@ +load(); + + $expected = [ + 'TEST_ENV_2_VAR_INT' => 23, + 'TEST_ENV_2_VAR_FLOAT' => 23.89, + 'TEST_ENV_2_VAR_SINGLE_STRING' => 'lorem', + 'TEST_ENV_2_VAR_SINGLE_MULTI_STRING' => 'lorem dolor sit', + 'TEST_ENV_2_VAR_SINGLE_MULTI_STRING_W_QUOTES' => 'lorem dolor sit' + ]; + + foreach ($expected as $key => $value) { + $this->assertEquals($value, getenv($key)); + $this->assertEquals($value, $_ENV[ $key ]); + $this->assertEquals($value, $_SERVER[ $key ]); + } + } + + /** + * It should throw if the root dir does not exist + * + * @test + */ + public function should_throw_if_the_root_dir_does_not_exist() + { + $this->expectException(InvalidArgumentException::class); + + new Dotenv(codecept_data_dir('foo/bar')); + } + + /** + * It should throw if the env file does not exist + * + * @test + */ + public function should_throw_if_the_env_file_does_not_exist() + { + $this->expectException(InvalidArgumentException::class); + + new Dotenv(codecept_data_dir('envFiles'), '.foo.bar'); + } +} diff --git a/tests/unit/lucatume/WPBrowser/Project/PluginProjectTest.php b/tests/unit/lucatume/WPBrowser/Project/PluginProjectTest.php index f6cb57996..b86e52721 100644 --- a/tests/unit/lucatume/WPBrowser/Project/PluginProjectTest.php +++ b/tests/unit/lucatume/WPBrowser/Project/PluginProjectTest.php @@ -8,8 +8,13 @@ use lucatume\WPBrowser\Tests\Traits\CliCommandTestingTools; use lucatume\WPBrowser\Tests\Traits\TmpFilesCleanup; use lucatume\WPBrowser\Tests\Traits\UopzFunctions; +use lucatume\WPBrowser\Utils\Env; use lucatume\WPBrowser\Utils\Filesystem as FS; +use lucatume\WPBrowser\Utils\Random; +use lucatume\WPBrowser\WordPress\Database\MysqlDatabase; +use lucatume\WPBrowser\WordPress\Installation; use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\NullOutput; use tad\Codeception\SnapshotAssertions\SnapshotAssertions; @@ -67,7 +72,56 @@ public function should_build_on_plugin_directory_correctly(): void $output = new NullOutput(); $pluginProject = new PluginProject($input, $output, $pluginDir); + $this->assertEquals('Acme Plugin', $pluginProject->getName()); $this->assertEquals($pluginDir . '/plugin.php', $pluginProject->getPluginFilePathName()); } + + /** + * It should provide information about the failure to activate due to error + * + * @test + */ + public function should_provide_information_about_the_failure_to_activate_due_to_error(): void + { + $wpRootDir = FS::tmpDir('plugin_project_'); + $dbName = Random::dbName(); + $db = new MysqlDatabase( + $dbName, + Env::get('WORDPRESS_DB_USER'), + Env::get('WORDPRESS_DB_PASSWORD'), + Env::get('WORDPRESS_DB_HOST') + ); + Installation::scaffold($wpRootDir) + ->configure($db) + ->install( + 'http://localhost:1234', + 'admin', + 'password', + 'admin@example.com', + 'Test' + ); + FS::mkdirp($wpRootDir . '/wp-content/plugins/acme-plugin', [ + 'plugin.php' => <<< PHP +assertFalse($pluginProject->activate($wpRootDir, 1234)); + $expected = "Could not activate plugin: Something went wrong. \n" . + "{{wp_root_dir}}/wp-content/plugins/acme-plugin/plugin.php:3\n" . + "This might happen because the plugin has unmet dependencies; wp-browser configuration will continue, " . + "but you will need to manually activate the plugin and update the dump in tests/Support/Data/dump.sql."; + $this->assertEquals( + $expected, + trim(str_replace($wpRootDir, '{{wp_root_dir}}', $output->fetch())) + ); + } } diff --git a/tests/unit/lucatume/WPBrowser/Project/SiteProjectTest.php b/tests/unit/lucatume/WPBrowser/Project/SiteProjectTest.php index 36150dbe6..917013894 100644 --- a/tests/unit/lucatume/WPBrowser/Project/SiteProjectTest.php +++ b/tests/unit/lucatume/WPBrowser/Project/SiteProjectTest.php @@ -43,11 +43,11 @@ public function should_throw_if_trying_scaffold_on_site_that_is_empty(): void } /** - * It should throw if trying to scaffol on site that is not configured + * It should throw if trying to scaffold on site that is not configured * * @test */ - public function should_throw_if_trying_to_scaffol_on_site_that_is_not_configured(): void + public function should_throw_if_trying_to_scaffold_on_site_that_is_not_configured(): void { $composerFileCode = <<< EOT { diff --git a/tests/unit/lucatume/WPBrowser/Project/ThemeProjectTest.php b/tests/unit/lucatume/WPBrowser/Project/ThemeProjectTest.php index 726005399..319c94ca0 100644 --- a/tests/unit/lucatume/WPBrowser/Project/ThemeProjectTest.php +++ b/tests/unit/lucatume/WPBrowser/Project/ThemeProjectTest.php @@ -8,10 +8,15 @@ use lucatume\WPBrowser\Tests\Traits\CliCommandTestingTools; use lucatume\WPBrowser\Tests\Traits\TmpFilesCleanup; use lucatume\WPBrowser\Tests\Traits\UopzFunctions; +use lucatume\WPBrowser\Utils\Env; +use lucatume\WPBrowser\Utils\Filesystem as FS; +use lucatume\WPBrowser\Utils\Random; +use lucatume\WPBrowser\WordPress\Database\MysqlDatabase; +use lucatume\WPBrowser\WordPress\Installation; use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\NullOutput; use tad\Codeception\SnapshotAssertions\SnapshotAssertions; -use lucatume\WPBrowser\Utils\Filesystem as FS; class ThemeProjectTest extends Unit { @@ -113,4 +118,55 @@ public function should_build_correctly_on_child_theme_directory(): void $this->assertEquals('Some Theme', $themeProject->getName()); $this->assertEquals('theme', $themeProject->getType()); } + + /** + * It should provide information about the failure to activate due to error + * + * @test + */ + public function should_provide_information_about_the_failure_to_activate_due_to_error(): void + { + $wpRootDir = FS::tmpDir('theme_project_'); + $dbName = Random::dbName(); + $db = new MysqlDatabase( + $dbName, + Env::get('WORDPRESS_DB_USER'), + Env::get('WORDPRESS_DB_PASSWORD'), + Env::get('WORDPRESS_DB_HOST') + ); + Installation::scaffold($wpRootDir) + ->configure($db) + ->install( + 'http://localhost:1234', + 'admin', + 'password', + 'admin@example.com', + 'Test' + ); + FS::mkdirp($wpRootDir . '/wp-content/themes/acme-theme', [ + 'style.css' => << ' 'assertFalse($themeProject->activate($wpRootDir, 1234)); + $expected = "Could not activate theme: Error: Current PHP version does not meet minimum requirements for Acme Theme. \n" . + "This might happen because the theme has unmet dependencies; wp-browser configuration will continue, " . + "but you will need to manually activate the theme and update the dump in tests/Support/Data/dump.sql."; + $this->assertEquals( + $expected, + trim(str_replace($wpRootDir, '{{wp_root_dir}}', $output->fetch())) + ); + } } diff --git a/tests/unit/lucatume/WPBrowser/Utils/ChromedriverInstallerTest.php b/tests/unit/lucatume/WPBrowser/Utils/ChromedriverInstallerTest.php index 314fd1abb..91f014146 100644 --- a/tests/unit/lucatume/WPBrowser/Utils/ChromedriverInstallerTest.php +++ b/tests/unit/lucatume/WPBrowser/Utils/ChromedriverInstallerTest.php @@ -42,11 +42,62 @@ public function should_throw_if_specified_platform_is_not_supported(): void } /** - * It should throw if binary cannot be found + * It should throw if specified binary cannot be found * * @test */ - public function should_throw_if_binary_cannot_be_found(): void + public function should_throw_if_specified_binary_cannot_be_found(): void + { + $this->uopzSetFunctionReturn('is_file', function (string $file) { + return strpos($file, 'chrome') === false; + }, true); + $this->expectException(RuntimeException::class); + $this->expectExceptionCode(ChromedriverInstaller::ERR_INVALID_BINARY); + + new ChromedriverInstaller(null, 'win32', '/path/to/chrome.exe'); + } + + /** + * @return string[] + */ + public function platforms_provider(): array + { + return [ + 'win32' => ['win32', 'chrome'], + 'win64' => ['win64', 'chrome'], + 'linux64' => ['linux64', 'chrom'], + 'mac-x64' => ['mac-x64', 'Chrome'], + 'mac-arm64' => ['mac-arm64', 'Chrome'], + ]; + } + + /** + * It should throw if binary cannot be found in default paths for platform + * + * @test + * @dataProvider platforms_provider + */ + public function should_throw_if_binary_cannot_be_found_in_default_paths_for_platform( + string $platform, + string $binNamePattern + ): void { + $isNotAnExecutableFile = function (string $file) use ($binNamePattern) { + return strpos($file, $binNamePattern) === false; + }; + $this->uopzSetFunctionReturn('is_file', $isNotAnExecutableFile, true); + $this->uopzSetFunctionReturn('is_executable', $isNotAnExecutableFile, true); + $this->expectException(RuntimeException::class); + $this->expectExceptionCode(ChromedriverInstaller::ERR_INVALID_BINARY); + + new ChromedriverInstaller(null, $platform); + } + + /** + * It should throw if binary cannot be executed + * + * @test + */ + public function should_throw_if_binary_cannot_be_executed(): void { $this->uopzSetFunctionReturn('is_executable', function (string $file): bool { return strpos($file, 'chrome') === false && is_executable($file); @@ -72,9 +123,11 @@ public function should_throw_if_specified_binary_is_not_valid(): void $this->expectException(RuntimeException::class); $this->expectExceptionCode(ChromedriverInstaller::ERR_INVALID_BINARY); - new ChromedriverInstaller('1.2.3.4', + new ChromedriverInstaller( + '1.2.3.4', 'mac-arm64', - '/Applications/Chromium.app/Contents/MacOS/Chromium'); + '/Applications/Chromium.app/Contents/MacOS/Chromium' + ); } /** @@ -87,9 +140,11 @@ public function should_throw_if_version_from_binary_is_not_a_string(): void $this->expectException(RuntimeException::class); $this->expectExceptionCode(ChromedriverInstaller::ERR_VERSION_NOT_STRING); - new ChromedriverInstaller(null, + new ChromedriverInstaller( + null, null, - codecept_data_dir('bins/chrome-version-not-string')); + codecept_data_dir('bins/chrome-version-not-string') + ); } /** @@ -99,7 +154,7 @@ public function should_throw_if_version_from_binary_is_not_a_string(): void */ public function should_throw_if_version_from_binary_has_not_correct_format(): void { - $this->uopzSetFunctionReturn('exec','Could not start Google Chrome.'); + $this->uopzSetFunctionReturn('exec', 'Could not start Google Chrome.'); $this->expectException(RuntimeException::class); $this->expectExceptionCode(ChromedriverInstaller::ERR_INVALID_VERSION_FORMAT); @@ -184,6 +239,9 @@ public function should_throw_if_response_is_not_valid_json(): void $this->expectException(RuntimeException::class); $this->expectExceptionCode(ChromedriverInstaller::ERR_DECODE_MILESTONE_DOWNLOADS); + $this->expectExceptionMessage("Failed to find a version of Chromedriver to download for your platform and " . + "Chrome combination.\nTry upgrading Chrome and making sure it is executable from one of the expected " . + "locations for your platform (linux64): chromium, google-chrome"); $ci->install(__DIR__); } @@ -197,8 +255,8 @@ public function should_throw_if_download_url_for_chrome_version_cannot_be_found_ { $this->uopzSetFunctionReturn('file_get_contents', function (string $file) { return strpos($file, 'chrome-for-testing') !== false ? - '{"milestones":{"116": {"downloads":{"chrome":{},"chromedriver":{}}}}}' - : file_get_contents($file); + '{"milestones":{"116": {"downloads":{"chrome":{},"chromedriver":{}}}}}' + : file_get_contents($file); }, true); $ci = new ChromedriverInstaller(null, 'linux64', codecept_data_dir('bins/chrome-mock')); @@ -219,7 +277,7 @@ public function should_throw_if_existing_zip_file_cannot_be_removed(): void { $this->uopzSetFunctionReturn('sys_get_temp_dir', codecept_output_dir()); $this->uopzSetFunctionReturn('unlink', function (string $file): bool { - return preg_match('~chromedriver\\.zip$~' ,$file) ? false : unlink($file); + return preg_match('~chromedriver\\.zip$~', $file) ? false : unlink($file); }, true); $ci = new ChromedriverInstaller(null, 'linux64', codecept_data_dir('bins/chrome-mock')); diff --git a/tests/unit/lucatume/WPBrowser/WordPress/InstallationTest.php b/tests/unit/lucatume/WPBrowser/WordPress/InstallationTest.php index b0de7451a..35e9659e7 100644 --- a/tests/unit/lucatume/WPBrowser/WordPress/InstallationTest.php +++ b/tests/unit/lucatume/WPBrowser/WordPress/InstallationTest.php @@ -459,7 +459,7 @@ public function should_support_complex_plugin_load_in_sqlite_context(): void { $wpRoot = FS::tmpDir('installation_'); $db = new SQLiteDatabase($wpRoot, 'db.sqlite'); - $installation = Installation::scaffold($wpRoot, '6.1.1') + $installation = Installation::scaffold($wpRoot) ->configure($db) ->install( 'https://localhost:2389', diff --git a/tests/wploadersuite.suite.dist.yml b/tests/wploadersuite.suite.dist.yml index 829bc562b..67c4829ce 100644 --- a/tests/wploadersuite.suite.dist.yml +++ b/tests/wploadersuite.suite.dist.yml @@ -24,5 +24,3 @@ modules: - 'woocommerce/woocommerce.php' installationTableHandling: drop booststrapActions: [] - backupGlobalsExcludeList: - - wc_container diff --git a/tests/wploadersuite/AjaxTest.php b/tests/wploadersuite/AjaxTest.php index ff61a149e..8c33e3d73 100644 --- a/tests/wploadersuite/AjaxTest.php +++ b/tests/wploadersuite/AjaxTest.php @@ -1,9 +1,12 @@ assertFalse(isset($this->testDynamicProperty)); + $this->assertNull($this->testDynamicProperty); + + $this->testDynamicProperty = 23; + + $this->assertTrue(isset($this->testDynamicProperty)); + $this->assertEquals(23,$this->testDynamicProperty); + + $this->testDynamicProperty = 89; + + $this->assertTrue(isset($this->testDynamicProperty)); + $this->assertEquals(89,$this->testDynamicProperty); + + unset($this->testDynamicProperty); + + $this->assertFalse(isset($this->testDynamicProperty)); + $this->assertNull($this->testDynamicProperty); + } +} diff --git a/tests/wploadersuite/RunInSeparateProcessAnnotationTest.php b/tests/wploadersuite/RunInSeparateProcessAnnotationTest.php new file mode 100644 index 000000000..8c7fbbbf3 --- /dev/null +++ b/tests/wploadersuite/RunInSeparateProcessAnnotationTest.php @@ -0,0 +1,74 @@ + [23], + 'case two' => [89] + ]; + } + + /** + * @dataProvider isolation_data_provider + * @runInSeparateProcess + */ + public function test_isolation_works(int $number): void + { + define('TEST_CONST', $number); + + $this->assertTrue(defined('TEST_CONST')); + $this->assertEquals($number, TEST_CONST); + } + + public function test_state_not_leaked_from_isolated_test(): void + { + $this->assertFalse(defined('TEST_CONST')); + } + + public function closures_provider(): Generator + { + yield 'empty return closure' => [ + function () { + return null; + }, + function ($value) { + return is_null($value); + } + ]; + + yield 'numeric return closure' => [ + function () { + return 23; + }, + function ($value) { + return is_int($value); + } + ]; + + yield 'post returning closure' => [ + function () { + return static::factory()->post->create(); + }, + function ($value) { + return get_post($value) instanceof WP_Post; + } + ]; + } + + /** + * @test + * @runInSeparateProcess + * @dataProvider closures_provider + */ + public function should_correctly_serialize_closures(Closure $createCurrent, Closure $check): void + { + $this->assertTrue($check($createCurrent())); + } +} diff --git a/tests/wploadersuite/RunInSeparateProcessAttributeTest.php b/tests/wploadersuite/RunInSeparateProcessAttributeTest.php new file mode 100644 index 000000000..332456f5e --- /dev/null +++ b/tests/wploadersuite/RunInSeparateProcessAttributeTest.php @@ -0,0 +1,79 @@ + [23], + 'case two' => [89] + ]; + } + + public function test_isolation_works(int $number): void + { + define('TEST_CONST', $number); + $this->assertTrue(defined('TEST_CONST')); + $this->assertEquals($number, TEST_CONST); + } + + public function test_state_not_leaked_from_isolated_test(): void + { + $this->assertFalse(defined('TEST_CONST')); + } + + /** + * @test + */ + public function it_works(): void + { + $this->assertEquals(23, 23); + } + + /** + * @test + * @runInSeparateProcess + */ + public function it_works_2(): void + { + $this->assertEquals(23, 23); + } + + /** + * @runInSeparateProcess + * @test + */ + public function it_works_3(): void + { + $this->assertEquals(23, 23); + } + + /** + * @test + */ + public function it_works_4(): void + { + $this->assertEquals(23, 23); + } + + public function it_works_5(): void + { + $this->assertEquals(23, 23); + } + + public function it_works_6(int $number): void + { + define('TEST_CONST', $number); + $this->assertTrue(defined('TEST_CONST')); + $this->assertEquals($number, TEST_CONST); + } +} diff --git a/tests/wploadersuite/RunTestsInSeparateProcessesAnnotationTest.php b/tests/wploadersuite/RunTestsInSeparateProcessesAnnotationTest.php new file mode 100644 index 000000000..156a95b55 --- /dev/null +++ b/tests/wploadersuite/RunTestsInSeparateProcessesAnnotationTest.php @@ -0,0 +1,32 @@ +assertEquals(23, TEST_CONST); + } + + public function test_setting_another_constant(): void + { + define('TEST_CONST_2', 89); + + $this->assertFalse(defined('TEST_CONST')); + $this->assertEquals(89, TEST_CONST_2); + } + + public function test_using_post_factory(): void + { + $post = static::factory()->post->create(); + + $this->assertInstanceOf(\WP_Post::class, get_post($post)); + } +} diff --git a/tests/wploadersuite/RunTestsInSeparateProcessesAttributeTest.php b/tests/wploadersuite/RunTestsInSeparateProcessesAttributeTest.php new file mode 100644 index 000000000..14a58e91e --- /dev/null +++ b/tests/wploadersuite/RunTestsInSeparateProcessesAttributeTest.php @@ -0,0 +1,30 @@ + [23], + 'case two' => [89] + ]; + } + public function test_isolation_works(int $number): void + { + define('TEST_CONST', $number); + $this->assertTrue(defined('TEST_CONST')); + $this->assertEquals($number, TEST_CONST); + } + public function test_state_not_leaked_from_isolated_test(): void + { + $this->assertFalse(defined('TEST_CONST')); + } +} diff --git a/tests/wploadersuite/_bootstrap.php b/tests/wploadersuite/_bootstrap.php index 51e29508d..b38454ff0 100644 --- a/tests/wploadersuite/_bootstrap.php +++ b/tests/wploadersuite/_bootstrap.php @@ -5,3 +5,12 @@ if (!class_exists(WP_Post::class)) { throw new RuntimeException('WP_Post class not found'); } + +// Work around WooCommerce enqueueing this only on admin requests. +if (!function_exists('wc_get_page_screen_id')) { + function wc_get_page_screen_id(): string + { + return ''; + } +} +