public static function setUpBeforeClass() { parent::setUpBeforeClass(); self::$testConfig = TestConfig::createDefaultConfig(); self::$siteConfig = self::$testConfig->testSite; self::$cloneSiteConfig = self::getCloneSiteConfig(self::$siteConfig); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); self::$testConfig = TestConfig::createDefaultConfig(); self::$wpAutomation = new WpAutomation(self::$testConfig->testSite, self::$testConfig->wpCliVersion); self::setUpSite(); DBAsserter::assertFilesEqualDatabase(); $yamlDir = self::$wpAutomation->getPluginsDir() . '/versionpress/.versionpress'; $schemaFile = $yamlDir . '/schema.yml'; $actionsFile = $yamlDir . '/actions.yml'; $shortcodeFile = $yamlDir . '/shortcodes.yml'; /** @var $wp_db_version */ require self::$wpAutomation->getAbspath() . '/wp-includes/version.php'; if (!function_exists('get_shortcode_regex')) { require_once self::$wpAutomation->getAbspath() . '/wp-includes/shortcodes.php'; } self::$schemaInfo = new DbSchemaInfo([$schemaFile], self::$testConfig->testSite->dbTablePrefix, $wp_db_version); $actionsInfoProvider = new ActionsInfoProvider([$actionsFile]); $changeInfoFactory = new ChangeInfoFactory(self::$schemaInfo, $actionsInfoProvider); $dbHost = self::$testConfig->testSite->dbHost; $dbUser = self::$testConfig->testSite->dbUser; $dbPassword = self::$testConfig->testSite->dbPassword; $dbName = self::$testConfig->testSite->dbName; $wpdb = new wpdb($dbUser, $dbPassword, $dbName, $dbHost); $wpdb->set_prefix(self::$testConfig->testSite->dbTablePrefix); self::$database = new Database($wpdb); $shortcodesInfo = new ShortcodesInfo([$shortcodeFile]); self::$vpidRepository = new VpidRepository(self::$database, self::$schemaInfo); self::$shortcodesReplacer = new ShortcodesReplacer($shortcodesInfo, self::$vpidRepository); $vpdbPath = self::$wpAutomation->getVpdbDir(); self::$tableSchemaRepository = new TableSchemaStorage(self::$database, $vpdbPath . '/.schema'); self::$storageFactory = new StorageFactory($vpdbPath, self::$schemaInfo, self::$database, [], $changeInfoFactory, self::$tableSchemaRepository); self::$urlReplacer = new AbsoluteUrlReplacer(self::$testConfig->testSite->url); }
private static function staticInitialization() { self::$testConfig = TestConfig::createDefaultConfig(); self::$wpAutomation = new WpAutomation(self::$testConfig->testSite, self::$testConfig->wpCliVersion); $yamlDir = self::$wpAutomation->getPluginsDir() . '/versionpress/.versionpress'; $schemaFile = $yamlDir . '/schema.yml'; $shortcodeFile = $yamlDir . '/shortcodes.yml'; /** @var $wp_db_version */ require self::$wpAutomation->getAbspath() . '/wp-includes/version.php'; if (!function_exists('get_shortcode_regex')) { require_once self::$wpAutomation->getAbspath() . '/wp-includes/shortcodes.php'; } self::$schemaInfo = new DbSchemaInfo([$schemaFile], self::$testConfig->testSite->dbTablePrefix, $wp_db_version); $rawTaxonomies = self::$wpAutomation->runWpCliCommand('taxonomy', 'list', ['format' => 'json', 'fields' => 'name']); $taxonomies = array_column(json_decode($rawTaxonomies, true), 'name'); $dbHost = self::$testConfig->testSite->dbHost; $dbUser = self::$testConfig->testSite->dbUser; $dbPassword = self::$testConfig->testSite->dbPassword; $dbName = self::$testConfig->testSite->dbName; $dbPrefix = self::$testConfig->testSite->dbTablePrefix; self::$database = new \mysqli($dbHost, $dbUser, $dbPassword, $dbName); self::$wpdb = new \wpdb($dbUser, $dbPassword, $dbName, $dbHost); self::$wpdb->set_prefix($dbPrefix); self::$vp_database = new Database(self::$wpdb); $shortcodesInfo = new ShortcodesInfo([$shortcodeFile]); self::$vpidRepository = new VpidRepository(self::$vp_database, self::$schemaInfo); self::$shortcodesReplacer = new ShortcodesReplacer($shortcodesInfo, self::$vpidRepository); $vpdbPath = self::$wpAutomation->getVpdbDir(); $tableSchemaRepository = new TableSchemaStorage(self::$vp_database, $vpdbPath . '/.schema'); self::$storageFactory = new StorageFactory($vpdbPath, self::$schemaInfo, self::$vp_database, $taxonomies, null, $tableSchemaRepository); require self::$wpAutomation->getPluginsDir() . '/versionpress/.versionpress/hooks.php'; self::defineGlobalVariables(); }
/** * @test */ public function runAutomation() { $testConfig = TestConfig::createDefaultConfig(); $wpAutomation = new WpAutomation($testConfig->testSite, $testConfig->wpCliVersion); $wpAutomation->setUpSite(); $wpAutomation->copyVersionPressFiles(); $wpAutomation->activateVersionPress(); $wpAutomation->runWpCliCommand('vp', 'config', ['VP_PROJECT_ROOT', '.']); }
/** * Makes sure some static properties are initialized. Called from constructor and from static methods * that might run before it. */ private static function staticInitialization() { if (self::$staticInitializationDone) { return; } if (!self::$testConfig) { self::$testConfig = TestConfig::createDefaultConfig(); self::$wpAdminPath = self::$testConfig->testSite->wpAdminPath; } if (!self::$wpAutomation) { self::$wpAutomation = new WpAutomation(self::$testConfig->testSite, self::$testConfig->wpCliVersion); } self::$staticInitializationDone = true; }
private function staticInitialization() { self::$testConfig = TestConfig::createDefaultConfig(); $class = get_called_class(); $workerType = implode('', array_map('ucfirst', explode('-', self::$testConfig->end2endTestType))); $workerClass = $class . $workerType . 'Worker'; if (!class_exists($workerClass)) { self::$skipAllBecauseOfMissingWorker = true; return; } $worker = new $workerClass(self::$testConfig); $propertyReflection = new \ReflectionProperty($class, 'worker'); $propertyReflection->setAccessible(true); $propertyReflection->setValue(null, $worker); }
public function __construct() { self::$testConfig = TestConfig::createDefaultConfig(); self::$wpAutomation = new WpAutomation(self::$testConfig->testSite, self::$testConfig->wpCliVersion); }
/** * @test * @depends cancelDeactivationReturnsToPluginPage */ public function confirmingDeactivationFullyDeactivatesVersionPress() { $this->byCssSelector('.deactivate a[href*=\'versionpress\']')->click(); if (WpVersionComparer::compare(TestConfig::createDefaultConfig()->testSite->wpVersion, '4.2-beta1') < 0) { $deactivationUrl = 'versionpress/admin/deactivate.php'; } else { $deactivationUrl = 'versionpress%2Fadmin%2Fdeactivate.php'; } $this->assertContains($deactivationUrl, $this->url()); $this->byCssSelector('#confirm_deactivation')->click(); $this->assertContains('wp-admin/plugins.php', $this->url()); $this->assertFileNotExists(self::$wpAutomation->getAbspath() . '/wp-includes/wpdb.php.original'); $this->assertFileExists(self::$testConfig->testSite->path . '/.git'); }