1
0
mirror of https://github.com/e107inc/e107.git synced 2025-02-21 06:52:28 +01:00
php-e107/e107_tests/tests/acceptance/0000_InstallCest.php

201 lines
4.4 KiB
PHP
Raw Normal View History

<?php
class InstallCest
{
2018-02-19 15:19:56 -06:00
public function _before(AcceptanceTester $I)
{
$I->unlinkE107ConfigFromTestEnvironment();
$this->dropAllDbTables($I);
2018-02-19 15:19:56 -06:00
}
public function _after(AcceptanceTester $I)
{
}
// tests
public function installWelcomePageContainsExpectedContent(AcceptanceTester $I)
{
$I->amOnPage('/install.php');
2018-02-16 13:34:08 -08:00
$I->see("e107 Installation :: Step 1");
$I->see("Language Selection");
2018-02-19 15:19:56 -06:00
}
2018-02-16 13:34:08 -08:00
public function installDefault(AcceptanceTester $I)
2018-02-19 15:19:56 -06:00
{
$I->wantTo("Install e107 with default settings");
$this->installe107($I);
$this->checkAdminButtonWelcomeMessage($I);
$this->testNoUpdatesRequired($I);
$this->checkTinyMceIsInstalled($I);
}
public function installBootstrap3(AcceptanceTester $I)
{
$I->wantTo("Install e107 with bootstrap3");
$this->installe107($I, array('sitetheme'=>'bootstrap3'));
$this->checkAdminButtonWelcomeMessage($I);
$this->testNoUpdatesRequired($I);
$this->checkTinyMceIsInstalled($I);
// Check install.xml Custom Fields in Page table.
$I->amOnPage('/page.php?id=4');
$I->see("22 Aug 2018");
$I->see("United States");
$I->see("Blue");
}
2021-01-13 18:14:09 -08:00
/*
2021-01-13 18:02:20 -08:00
public function installVoux(AcceptanceTester $I)
{
2021-01-13 18:02:20 -08:00
$I->wantTo("Install e107 with Voux theme and db starting with digits");
$this->installe107($I, array('sitetheme'=>'voux', 'db'=>'123xyz'));
$this->checkAdminButtonWelcomeMessage($I);
$this->testNoUpdatesRequired($I);
$this->checkTinyMceIsInstalled($I);
2021-01-13 18:14:09 -08:00
}*/
private function installe107(AcceptanceTester $I, $params = array())
{
// Step 1
2018-02-19 15:19:56 -06:00
$I->amOnPage('/install.php');
2018-02-16 13:34:08 -08:00
$I->selectOption("language", 'English');
$I->click('start');
// Step 2
2018-02-16 13:34:08 -08:00
$I->see("MySQL Server Details", 'h3');
2018-02-16 15:42:29 -08:00
$db = $I->getDbModule();
2018-02-16 15:42:29 -08:00
2021-01-13 18:02:20 -08:00
$database = !empty($params['db']) ? $params['db'] : $db->_getDbName();
$I->fillField('server', $db->_getDbHostname());
$I->fillField('name', $db->_getDbUsername());
$I->fillField('password', $db->_getDbPassword());
2021-01-13 18:02:20 -08:00
$I->fillField('db', $database);
if(empty($params['db']))
{
$I->uncheckOption('createdb');
}
2018-02-17 16:28:57 -08:00
$I->click('submit');
2018-02-16 15:42:29 -08:00
// Step 3
2018-02-17 16:28:57 -08:00
$I->see("MySQL Connection Verification", 'h3');
$I->see("Connection to the MySQL server established and verified");
2018-02-17 16:28:57 -08:00
$I->see("Found existing database");
$I->click('submit');
// Step 4
2018-02-17 16:28:57 -08:00
$I->see("PHP and MySQL Versions Check / File Permissions Check");
2018-02-17 16:28:57 -08:00
try
{
$I->see('You might have an existing installation'); //XXX Triggered if e107_config.php is not empty
}
catch (Exception $e)
{
$I->dontSee('You might have an existing installation');
}
2018-02-17 16:28:57 -08:00
2018-02-19 15:19:56 -06:00
$I->click('continue_install');
2018-02-17 16:28:57 -08:00
// Step 5
2018-02-17 16:28:57 -08:00
$I->see("Administration", 'h3');
2018-02-17 16:28:57 -08:00
2018-02-19 15:19:56 -06:00
$I->fillField('u_name', 'admin');
2018-02-17 16:28:57 -08:00
$I->fillField('d_name', 'admin');
$I->fillField('pass1', 'admin');
$I->fillField('pass2', 'admin');
$I->fillField('email', 'admin@admin.com');
2018-02-19 15:19:56 -06:00
$I->click('submit');
2018-02-17 16:28:57 -08:00
// Step 6
2018-02-17 16:28:57 -08:00
$I->see("Website Preferences", 'h3');
2018-02-19 15:19:56 -06:00
$I->fillField('sitename', 'Test Site');
2018-02-17 16:28:57 -08:00
if(!empty($params['sitetheme']))
{
$I->selectOption('sitetheme', $params['sitetheme']);
}
2018-02-19 15:19:56 -06:00
$I->click('submit');
2018-02-17 16:28:57 -08:00
// Step 7
2018-02-17 16:28:57 -08:00
2018-02-19 15:19:56 -06:00
$I->see("Install Confirmation", 'h3');
2018-02-17 16:28:57 -08:00
2018-02-19 15:19:56 -06:00
$I->click('submit');
2018-02-17 16:28:57 -08:00
// Step 8
$I->see("Installation Complete", 'h3');
$I->amOnPage('/index.php');
if(!empty($params['sitetheme']))
{
$I->seeInSource('e107_themes/'.$params['sitetheme']);
}
2018-02-19 15:19:56 -06:00
}
private function loginToAdmin(AcceptanceTester $I)
{
$I->amOnPage('/e107_admin/admin.php');
$I->fillField('authname', 'admin');
$I->fillField('authpass', 'admin');
$I->click('authsubmit');
$I->dontSeeInSource('Unauthorized access!');
}
private function testNoUpdatesRequired(AcceptanceTester $I)
{
// first Login
$this->loginToAdmin($I);
$I->amOnPage('/e107_admin/e107_update.php?[debug=basic+]');
$I->wantTo("Check there are no updates required after install");
$I->dontSee("Update", 'button span');
}
private function checkTinyMceIsInstalled(AcceptanceTester $I)
{
$I->amOnPage('/e107_admin/admin.php');
$I->seeInSource('TinyMce4');
$I->amOnPage('/e107_plugins/tinymce4/admin_config.php');
$I->see("Paste as text by default");
}
private function checkAdminButtonWelcomeMessage(AcceptanceTester $I)
{
$I->seeInSource('btn-large " href="e107_admin/admin.php">Go to Admin area</a>');
}
/**
* @param AcceptanceTester $I
*/
private function dropAllDbTables(AcceptanceTester $I)
{
$db = $I->getDbModule();
$db->_cleanup();
}
}