Skip to content

Commit

Permalink
Dev: Add test for multiple choice with expression
Browse files Browse the repository at this point in the history
  • Loading branch information
olleharstedt committed Dec 12, 2017
1 parent f42a959 commit 98d0305
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 1 deletion.
6 changes: 5 additions & 1 deletion tests/TestBaseClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,11 @@ protected static function importSurvey($fileName)
public static function tearDownAfterClass()
{
parent::tearDownAfterClass();
if(self::$testSurvey){

// Make sure we have permission to delete survey.
\Yii::app()->session['loginID'] = 1;

if (self::$testSurvey) {
if (!self::$testSurvey->delete()) {
echo 'Fatal error: Could not clean up survey ' . self::$testSurvey->sid . '; errors: ' . json_encode(self::$testSurvey->errors);
exit(3);
Expand Down
58 changes: 58 additions & 0 deletions tests/surveys/MultipleChoiceWithExpressionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,63 @@ public function testBasic()
// Import survey.
$surveyFile = self::$surveysFolder . '/limesurvey_survey_352985.lss';
self::importSurvey($surveyFile);

// Preview survey.
$urlMan = \Yii::app()->urlManager;
$urlMan->setBaseUrl('http://' . self::$domain . '/index.php');
$url = $urlMan->createUrl(
'survey/index',
[
'sid' => self::$surveyId,
'newtest' => 'Y',
'lang' => 'pt'
]
);

// Get questions.
$survey = \Survey::model()->findByPk(self::$surveyId);
$questionObjects = $survey->groups[0]->questions;
$questions = [];
foreach ($questionObjects as $q) {
$questions[$q->title] = $q;
}
$subquestions = [];
foreach ($questions['Q1']->subquestions as $subq) {
$subquestions[$subq->title] = $subq;
}
$sgqa = self::$surveyId . 'X' . $survey->groups[0]->gid . 'X' . $questions['Q1']->qid . '123'; // 123 = first subquestion title.

try {
// Get first page.
self::$webDriver->get($url);

// Click on first multiple choice checkbox.
$label = self::$webDriver->findElement(
WebDriverBy::cssSelector(
sprintf(
'label[for="%s"]',
'answer' . $sgqa
)
)
);
$label->click();

// Check that equation reacts.
$equation = self::$webDriver->findElement(WebDriverBy::id('question' . $questions['equation1']->qid));
$equestionText = $equation->getText();
$trues = substr_count($equestionText, 'true');
$this->assertEquals(2, $trues, 'Found two "true"');

$label->click();
$equestionText = $equation->getText();
$trues = substr_count($equestionText, 'true');
$this->assertEquals(0, $trues, 'Found no "true"');
} catch (\Exception $ex) {
self::$testHelper->takeScreenshot(self::$webDriver, __CLASS__ . '_' . __FUNCTION__);
$this->assertFalse(
true,
self::$testHelper->javaTrace($ex)
);
}
}
}

0 comments on commit 98d0305

Please sign in to comment.