Skip to content

Commit

Permalink
all test files sync to master
Browse files Browse the repository at this point in the history
  • Loading branch information
TonisOrmisson committed Jan 11, 2018
1 parent 8b814bc commit d8a9d46
Show file tree
Hide file tree
Showing 17 changed files with 143 additions and 462 deletions.
164 changes: 46 additions & 118 deletions tests/acceptance/admin/InstallationControllerTest.php
Expand Up @@ -17,131 +17,59 @@
use LimeSurvey\tests\TestBaseClassWeb;

/**
* @since 2017-11-24
* @group inst
* @since 2017-10-15
* @group tempcontr
* @group template
*/
class InstallationControllerTest extends TestBaseClassWeb
class TemplateControllerTest extends TestBaseClass
{
/**
*
* Test copy a template.
* @group copytemplate
*/
public static function setupBeforeClass()
public function testCopyTemplate()
{
parent::setUpBeforeClass();
\Yii::app()->session['loginID'] = 1;
\Yii::import('application.controllers.admin.themes', true);
\Yii::import('application.helpers.globalsettings_helper', true);
// Clean up from last test.
$templateName = 'foobartest';
\TemplateConfiguration::uninstall($templateName);
\Template::model()->deleteAll('name = \'foobartest\'');
\Permission::model()->deleteAllByAttributes(array('permission' => $templateName,'entity' => 'template'));
// Remove folder from last test.
$newname = 'foobartest';
$newdirname = \Yii::app()->getConfig('userthemerootdir') . "/" . $newname;
if (file_exists($newdirname)) {
exec('rm -r ' . $newdirname);
}
$config = require(\Yii::app()->getBasePath() . '/config/config-defaults.php');
// Simulate a POST.
$_POST['newname'] = $newname;
// NB: If default theme is not installed, this test will fail.
$_POST['copydir'] = $config['defaulttheme'];
$_SERVER['SERVER_NAME'] = 'localhost';
$contr = new \themes(new \ls\tests\DummyController('dummyid'));
$contr->templatecopy();
$flashes = \Yii::app()->user->getFlashes();
$this->assertEmpty($flashes, 'No flash messages');
$template = \Template::model()->find(
sprintf(
'name = \'%s\'',
$templateName
)
);
$this->assertNotEmpty($template);
$this->assertEquals($templateName, $template->name);
// Clean up.
\Template::model()->deleteAll('name = \'foobartest\'');
}

/**
*
* @todo Copy template folder that does not exist.
*/
public function testBasic()
/*
public function testCopyWrongFolder()
{
$configFile = \Yii::app()->getBasePath() . '/config/config.php';
$databaseName = 'limesurvey';

$username = getenv('ADMINUSERNAME');
if (!$username) {
$username = 'admin';
}
$password = getenv('PASSWORD');
if (!$password) {
$password = 'password';
}

$dbuser = getenv('DBUSER');
if (!$dbuser) {
$dbuser = 'root';
echo 'Default to database user "root". Use DBUSER=... from command-line to override this.' . PHP_EOL;
}
$dbpwd = getenv('DBPASSWORD');
if (!$dbpwd) {
$dbpwd = '';
echo 'Default to empty database password. Use DBPASSWORD=... from command-line to override this.' . PHP_EOL;
}

if (file_exists($configFile)) {
// Delete possible previous database.
try {
$dbo = \Yii::app()->getDb();
$dbo->createCommand('DROP DATABASE ' . $databaseName)->execute();
} catch (\CDbException $ex) {
$msg = $ex->getMessage();
// Only this error is OK.
self::assertTrue(
strpos($msg, "database doesn't exist") !== false,
'Could drop database. Error message: ' . $msg
);
}

// Remove config.php if present.
$result = unlink($configFile);
$this->assertTrue($result, 'Could unlink config.php');
}

// Run installer.
$urlMan = \Yii::app()->urlManager;
$urlMan->setBaseUrl('http://' . self::$domain . '/index.php');
$url = $urlMan->createUrl('');

// Installer start page.
self::$webDriver->get($url);

// Click "Start installation".
$start = self::$webDriver->findElement(WebDriverBy::id('ls-start-installation'));
$start->click();

// Accept license.
$accept = self::$webDriver->findElement(WebDriverBy::id('ls-accept-license'));
$accept->click();

// Click next at pre-check.
$next = self::$webDriver->findElement(WebDriverBy::id('ls-next'));
$next->click();

// Fill in database form.
$dbuserInput = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[dbuser]"]'));
$dbpwdInput = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[dbpwd]"]'));
$dbnameInput = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[dbname]"]'));
$dbuserInput->clear()->sendKeys($dbuser);
$dbpwdInput->clear()->sendKeys($dbpwd);
$dbnameInput->sendKeys($databaseName);

// Click next.
$next = self::$webDriver->findElement(WebDriverBy::id('ls-next'));
$next->click();

// Click "Create database".
$button = self::$webDriver->findElement(WebDriverBy::cssSelector('input[type="submit"]'));
$button->click();

// Click "Populate".
$button = self::$webDriver->findElement(WebDriverBy::cssSelector('input[type="submit"]'));
$button->click();

// Fill in admin username/password.
$adminLoginName = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[adminLoginName]"]'));
$adminLoginPwd = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[adminLoginPwd]"]'));
$confirmPwd = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="InstallerConfigForm[confirmPwd]"]'));
$adminLoginName->clear()->sendKeys($username);
$adminLoginPwd->clear()->sendKeys($password);
$confirmPwd->clear()->sendKeys($password);

// Confirm optional settings (admin password etc).
$button = self::$webDriver->findElement(WebDriverBy::cssSelector('input[type="submit"]'));
$button->click();

// Go to administration.
$button = self::$webDriver->findElement(WebDriverBy::id('ls-administration'));
$button->click();

// Reset urlManager to adapt to latest config.
$configFile = \Yii::app()->getBasePath() . '/config/config.php';
$config = require($configFile);
$urlMan = \Yii::app()->urlManager;
$urlMan->setUrlFormat($config['components']['urlManager']['urlFormat']);

// Login.
self::adminLogin($username, $password);

self::$testHelper->connectToOriginalDatabase();
}
}
*/
}
5 changes: 1 addition & 4 deletions tests/acceptance/admin/TemplateConfigurationTest.php
Expand Up @@ -19,10 +19,7 @@ public function testCopyMinimalTemplate()
\Yii::import('application.helpers.globalsettings_helper', true);
$tempConf = \TemplateConfiguration::getInstanceFromTemplateName('default');
$tempConf->prepareTemplateRendering('default');

// FIXME

// No PHP notices.
$this->assertTrue(true);
}
}
}
15 changes: 2 additions & 13 deletions tests/acceptance/admin/TemplateControllerTest.php
Expand Up @@ -23,7 +23,6 @@
*/
class TemplateControllerTest extends TestBaseClass
{

/**
* Test copy a template.
* @group copytemplate
Expand All @@ -33,33 +32,27 @@ public function testCopyTemplate()
\Yii::app()->session['loginID'] = 1;
\Yii::import('application.controllers.admin.themes', true);
\Yii::import('application.helpers.globalsettings_helper', true);

// Clean up from last test.
$templateName = 'foobartest';
\TemplateConfiguration::uninstall($templateName);
\Template::model()->deleteAll('name = \'foobartest\'');
\Permission::model()->deleteAllByAttributes(array('permission' => $templateName,'entity' => 'template'));

// Remove folder from last test.
$newname = 'foobartest';
$newdirname = \Yii::app()->getConfig('userthemerootdir') . "/" . $newname;
if (file_exists($newdirname)) {
exec('rm -r ' . $newdirname);
}

$config = require(\Yii::app()->getBasePath() . '/config/config-defaults.php');
// Simulate a POST.
$_POST['newname'] = $newname;
// NB: If default theme is not installed, this test will fail.
$_POST['copydir'] = $config['defaulttheme'];
$_SERVER['SERVER_NAME'] = 'localhost';

$contr = new \themes(new DummyController('dummyid'));
$contr->templatecopy();

$flashes = \Yii::app()->user->getFlashes();
$this->assertEmpty($flashes, 'No flash messages');

$template = \Template::model()->find(
sprintf(
'name = \'%s\'',
Expand All @@ -68,13 +61,9 @@ public function testCopyTemplate()
);
$this->assertNotEmpty($template);
$this->assertEquals($templateName, $template->name);



// Clean up. //TODO tearDown
// Clean up.
\Template::model()->deleteAll('name = \'foobartest\'');
}

/**
* @todo Copy template folder that does not exist.
*/
Expand All @@ -83,4 +72,4 @@ public function testCopyWrongFolder()
{
}
*/
}
}
Expand Up @@ -23,44 +23,37 @@
class SaveDualScaleAnswerOptionsTest extends TestBaseClassWeb
{
/**
*
*
*/
public static function setupBeforeClass()
{
parent::setupBeforeClass();

// Permission to everything.
\Yii::app()->session['loginID'] = 1;

$username = getenv('ADMINUSERNAME');
if (!$username) {
$username = 'admin';
}

$password = getenv('PASSWORD');
if (!$password) {
$password = 'password';
}

// Permission to everything.
\Yii::app()->session['loginID'] = 1;

// Browser login.
self::adminLogin($username, $password);
}

/**
*
*
*/
public function setup()
{
// Import survey with dual scale question type.
$surveyFile = self::$surveysFolder . '/limesurvey_survey_677328.lss';
self::importSurvey($surveyFile);
}

/**
*
*
*/
public function tearDown()
{
Expand All @@ -70,9 +63,8 @@ public function tearDown()
self::$testSurvey = null;
}
}

/**
*
*
*/
public function testBasic()
{
Expand All @@ -81,7 +73,6 @@ public function testBasic()
$this->assertNotEmpty($survey);
$this->assertCount(1, $survey->groups, 'Wrong number of groups: ' . count($survey->groups));
$this->assertCount(1, $survey->groups[0]->questions, 'We have exactly one question');

$urlMan = \Yii::app()->urlManager;
$urlMan->setBaseUrl('http://' . self::$domain . '/index.php');
$url = $urlMan->createUrl(
Expand All @@ -93,39 +84,30 @@ public function testBasic()
'qid' => $survey->groups[0]->questions[0]->qid
]
);

self::$webDriver->get($url);

$answer1 = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="answer_en_1_0"]'));
$answer1->sendKeys('123');

$answer2 = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="answer_en_1_1"]'));
$answer2->sendKeys('abc');

$savebutton = self::$webDriver->findElement(WebDriverBy::id('save-button'));
$savebutton->click();

$notif = self::$webDriver->findElement(WebDriverBy::id('notif-container'));
$notifText = $notif->getText();
$this->assertContains('Answer options were successfully saved', $notifText);

$answers = \Answer::model()->findAllByAttributes(['qid' => $survey->groups[0]->questions[0]->qid]);
$this->assertCount(2, $answers, 'Two answer options saved');
}

/**
*
*
*/
public function testUsingLinkToEditAnswers()
{
$surveyFile = self::$surveysFolder . '/limesurvey_survey_677328.lss';
self::importSurvey($surveyFile);

$survey = \Survey::model()->findByPk(self::$surveyId);
$this->assertNotEmpty($survey);
$this->assertCount(1, $survey->groups, 'Wrong number of groups: ' . count($survey->groups));
$this->assertCount(1, $survey->groups[0]->questions, 'We have exactly one question');

$urlMan = \Yii::app()->urlManager;
$urlMan->setBaseUrl('http://' . self::$domain . '/index.php');
$url = $urlMan->createUrl(
Expand All @@ -137,28 +119,20 @@ public function testUsingLinkToEditAnswers()
'qid' => $survey->groups[0]->questions[0]->qid
]
);

self::$webDriver->get($url);

$button = self::$webDriver->findElement(WebDriverBy::linkText('Edit answer options'));
$button->click();

$answer1 = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="answer_en_1_0"]'));
$answer1->sendKeys('123');

$answer2 = self::$webDriver->findElement(WebDriverBy::cssSelector('input[name="answer_en_1_1"]'));
$answer2->sendKeys('abc');

sleep(1);

$savebutton = self::$webDriver->findElement(WebDriverBy::id('save-button'));
$savebutton->click();

$notif = self::$webDriver->findElement(WebDriverBy::id('notif-container'));
$notifText = $notif->getText();
$this->assertContains('Answer options were successfully saved', $notifText);

$answers = \Answer::model()->findAllByAttributes(['qid' => $survey->groups[0]->questions[0]->qid]);
$this->assertCount(2, $answers, 'Two answer options saved');
}
}
}

0 comments on commit d8a9d46

Please sign in to comment.