diff --git a/codeception.yml b/codeception.yml index 337234784..790f20544 100644 --- a/codeception.yml +++ b/codeception.yml @@ -19,12 +19,6 @@ extensions: - Codeception\Extension\RunFailed modules: enabled: - - \Helper\DelayedDb: - dsn: 'mysql:host=%manual.db.host%;port=%manual.db.port%;dbname=%manual.db.dbname%' - user: '%manual.db.user%' - password: '%manual.db.password%' - populate: true - dump: 'tests/_data/e107_v2.1.8.sample.sql' - \Helper\DeployerFactory: secrets: cpanel: @@ -32,3 +26,9 @@ modules: hostname: '%cpanel.hostname%' username: '%cpanel.username%' password: '%cpanel.password%' + - \Helper\DelayedDb: + dsn: 'mysql:host=%manual.db.host%;port=%manual.db.port%;dbname=%manual.db.dbname%' + user: '%manual.db.user%' + password: '%manual.db.password%' + populate: true + dump: 'tests/_data/e107_v2.1.8.sample.sql' diff --git a/tests/_support/Helper/Base.php b/tests/_support/Helper/Base.php index be0b0d482..2c6bc03fd 100644 --- a/tests/_support/Helper/Base.php +++ b/tests/_support/Helper/Base.php @@ -6,8 +6,15 @@ namespace Helper; abstract class Base extends \Codeception\Module { - protected $deployer; - protected $deployer_components = ['db', 'fs']; + protected $deployer; + protected $deployer_components = ['db', 'fs']; + + protected $db; + + public function getHelperDb() + { + return $this->db ?: $this->db = $this->getModule('\Helper\DelayedDb'); + } public function _beforeSuite($settings = array()) { @@ -24,37 +31,37 @@ abstract class Base extends \Codeception\Module } } - public function _afterSuite() - { + public function _afterSuite() + { if (is_object($this->deployer)) $this->deployer->stop(); - } + } - protected function _callbackDeployerStarted() - { - foreach ($this->deployer_components as $component) - { - $method = "_reconfigure_${component}"; - $this->$method(); - } - } + protected function _callbackDeployerStarted() + { + foreach ($this->deployer_components as $component) + { + $method = "_reconfigure_${component}"; + $this->$method(); + } + } - protected function _reconfigure_fs() - { + protected function _reconfigure_fs() + { $url = $this->deployer->getUrl(); $browser = $this->getModule('PhpBrowser'); $browser->_reconfigure(array('url' => $url)); - } + } - protected function _reconfigure_db() - { - $db = $this->getModule('\Helper\DelayedDb'); - $Db_config = $db->getConfig(); + protected function _reconfigure_db() + { + $db = $this->getHelperDb(); + $Db_config = $db->_getConfig(); $Db_config['dsn'] = $this->deployer->getDsn(); $Db_config['user'] = $this->deployer->getDbUsername(); $Db_config['password'] = $this->deployer->getDbPassword(); $db->_reconfigure($Db_config); // Next line is used to make connection available to any code after this point //$this->getModule('\Helper\DelayedDb')->_delayedInitialize(); - } + } } diff --git a/tests/_support/Helper/DelayedDb.php b/tests/_support/Helper/DelayedDb.php index 5c5503e8f..242c852b9 100644 --- a/tests/_support/Helper/DelayedDb.php +++ b/tests/_support/Helper/DelayedDb.php @@ -18,41 +18,36 @@ class DelayedDb extends \Codeception\Module\Db return parent::_initialize(); } - public function getConfig() - { - return $this->config; - } - - public function getDbHostname() + public function _getDbHostname() { $matches = []; - $matched = preg_match('~host=([^;]+)~s', $this->config['dsn'], $matches); - if (!$matched) + $matched = preg_match('~host=([^;]+)~s', $this->config['dsn'], $matches); + if (!$matched) { - return false; - } + return false; + } - return $matches[1]; + return $matches[1]; } - public function getDbName() + public function _getDbName() { $matches = []; - $matched = preg_match('~dbname=([^;]+)~s', $this->config['dsn'], $matches); - if (!$matched) + $matched = preg_match('~dbname=([^;]+)~s', $this->config['dsn'], $matches); + if (!$matched) { - return false; - } + return false; + } - return $matches[1]; + return $matches[1]; } - public function getDbUsername() + public function _getDbUsername() { return $this->config['user']; } - public function getDbPassword() + public function _getDbPassword() { return $this->config['password']; } diff --git a/tests/_support/Helper/E107Base.php b/tests/_support/Helper/E107Base.php index ae6b62348..4421ae250 100644 --- a/tests/_support/Helper/E107Base.php +++ b/tests/_support/Helper/E107Base.php @@ -31,10 +31,10 @@ abstract class E107Base extends Base $db = $this->getModule('\Helper\DelayedDb'); $e107_config = []; - $e107_config['mySQLserver'] = $db->getDbHostname(); - $e107_config['mySQLuser'] = $db->getDbUsername(); - $e107_config['mySQLpassword'] = $db->getDbPassword(); - $e107_config['mySQLdefaultdb'] = $db->getDbName(); + $e107_config['mySQLserver'] = $db->_getDbHostname(); + $e107_config['mySQLuser'] = $db->_getDbUsername(); + $e107_config['mySQLpassword'] = $db->_getDbPassword(); + $e107_config['mySQLdefaultdb'] = $db->_getDbName(); $e107_config['mySQLprefix'] = $this->e107_mySQLprefix; $e107_config_contents = $twig->render('e107_config.php', $e107_config); diff --git a/tests/acceptance/InstallCest.php b/tests/acceptance/InstallCest.php index 1852acda3..74727b336 100644 --- a/tests/acceptance/InstallCest.php +++ b/tests/acceptance/InstallCest.php @@ -3,43 +3,42 @@ class InstallCest { - public function _before(AcceptanceTester $I) - { - } + public function _before(AcceptanceTester $I) + { + } - public function _after(AcceptanceTester $I) - { - } + public function _after(AcceptanceTester $I) + { + } - // tests - public function installWelcomePageContainsExpectedContent(AcceptanceTester $I) - { - - - $I->amOnPage('/install.php'); + // tests + public function installWelcomePageContainsExpectedContent(AcceptanceTester $I) + { + $I->amOnPage('/install.php'); $I->see("e107 Installation :: Step 1"); $I->see("Language Selection"); - } + } public function installStep1ToStep2(AcceptanceTester $I) - { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 2 of the Installation"); + { + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 2 of the Installation"); $I->selectOption("language", 'English'); $I->click('start'); $I->see("MySQL Server Details", 'h3'); - } + } - public function installStep2ToStep3(AcceptanceTester $I) - { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 3 of the Installation"); - $this->installStep1ToStep2($I); + public function installStep2ToStep3(AcceptanceTester $I) + { + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 3 of the Installation"); + $db = $I->getHelperDb(); + $this->installStep1ToStep2($I); - $I->fillField('server', $I->getDbHostname()); - $I->fillField('name', $I->getDbUsername()); - $I->fillField('password', $I->getDbPassword()); - $I->fillField('db', $I->getDbName()); + $I->fillField('server', $db->_getDbHostname()); + $I->fillField('name', $db->_getDbUsername()); + $I->fillField('password', $db->_getDbPassword()); + $I->fillField('db', $db->_getDbName()); $I->uncheckOption('createdb'); $I->click('submit'); @@ -47,83 +46,83 @@ class InstallCest $I->see("MySQL Connection Verification", 'h3'); // .... - } + } public function installStep3ToStep4(AcceptanceTester $I) - { + { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 4 of the Installation"); + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 4 of the Installation"); - $this->installStep2ToStep3($I); + $this->installStep2ToStep3($I); - // $I->see("Connection to the MySQL server established and verified"); + // $I->see("Connection to the MySQL server established and verified"); $I->see("Found existing database"); $I->click('submit'); $I->see("PHP and MySQL Versions Check / File Permissions Check"); - } + } - public function installStep4ToStep5(AcceptanceTester $I) // TODO Fails due to e107_config.php being present. - { + public function installStep4ToStep5(AcceptanceTester $I) // TODO Fails due to e107_config.php being present. + { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 5 of the Installation"); + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 5 of the Installation"); $this->installStep3ToStep4($I); $I->canSee('You might have an existing installation'); //XXX Triggered if e107_config.php is not empty - $I->click('continue_install'); + $I->click('continue_install'); $I->see("Administration", 'h3'); - } + } public function installStep5ToStep6(AcceptanceTester $I) - { + { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 6 of the Installation"); - $this->installStep4ToStep5($I); + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 6 of the Installation"); + $this->installStep4ToStep5($I); - $I->fillField('u_name', 'admin'); + $I->fillField('u_name', 'admin'); $I->fillField('d_name', 'admin'); $I->fillField('pass1', 'admin'); $I->fillField('pass2', 'admin'); $I->fillField('email', 'admin@admin.com'); - $I->click('submit'); + $I->click('submit'); $I->see("Website Preferences", 'h3'); - } + } - public function installStep6ToStep7(AcceptanceTester $I) - { + public function installStep6ToStep7(AcceptanceTester $I) + { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 7 of the Installation"); - $this->installStep5ToStep6($I); + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 7 of the Installation"); + $this->installStep5ToStep6($I); - $I->fillField('sitename', 'Test Site'); + $I->fillField('sitename', 'Test Site'); - $I->click('submit'); + $I->click('submit'); $I->see("Install Confirmation", 'h3'); - } + } - public function installStep7ToStep8(AcceptanceTester $I) - { + public function installStep7ToStep8(AcceptanceTester $I) + { - $I->amOnPage('/install.php'); - $I->wantTo("Verify Proceed to Step 8 of the Installation"); - $this->installStep6ToStep7($I); - - $I->see("Install Confirmation", 'h3'); - - $I->click('submit'); + $I->amOnPage('/install.php'); + $I->wantTo("Verify Proceed to Step 8 of the Installation"); + $this->installStep6ToStep7($I); $I->see("Install Confirmation", 'h3'); - } + + $I->click('submit'); + + $I->see("Install Confirmation", 'h3'); + } }