/
DateTimeForwardBackTest.php
129 lines (110 loc) · 3.81 KB
/
DateTimeForwardBackTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
namespace ls\tests;
use PHPUnit\Framework\TestCase;
/**
* @since 2017-06-13
* @group dateforward
*/
class DateTimeForwardBackTest extends TestBaseClass
{
/**
* @var int
*/
public static $surveyId = null;
/**
* Import survey in tests/surveys/.
*/
public function setUp()
{
parent::setUp();
$_POST = [];
$_SESSION = [];
\Yii::app()->session['loginID'] = 1;
$surveyFile = $this->surveysFolder.'/limesurvey_survey_917744.lss';
if (!file_exists($surveyFile)) {
die('Fatal error: found no survey file');
}
$translateLinksFields = false;
$newSurveyName = null;
$result = importSurveyFile(
$surveyFile,
$translateLinksFields,
$newSurveyName,
null
);
if ($result) {
self::$surveyId = $result['newsid'];
} else {
die('Fatal error: Could not import survey');
}
}
/**
* Destroy what had been imported.
*/
public function tearDown()
{
$result = \Survey::model()->deleteSurvey(self::$surveyId, true);
if (!$result) {
die('Fatal error: Could not clean up survey ' . self::$surveyId);
}
}
/**
* q1 is hidden question with default answer "now".
* @group q01
*/
public function testQ1()
{
list($question, $group, $sgqa) = self::$testHelper->getSgqa('G1Q00001', self::$surveyId);
$surveyMode = 'group';
$LEMdebugLevel = 0;
self::$testHelper->activateSurvey(self::$surveyId);
// Must fetch this AFTER survey is activated.
$surveyOptions = self::$testHelper->getSurveyOptions(self::$surveyId);
\Yii::app()->setConfig('surveyID', self::$surveyId);
\Yii::app()->setController(new DummyController('dummyid'));
\buildsurveysession(self::$surveyId);
$result = \LimeExpressionManager::StartSurvey(
self::$surveyId,
$surveyMode,
$surveyOptions,
false,
$LEMdebugLevel
);
$this->assertEquals(
[
'hasNext' => 1,
'hasPrevious' => null
],
$result
);
$qid = $question->qid;
$gseq = 0;
$_POST['relevance' . $qid] = 1;
$_POST['relevanceG' . $gseq] = 1;
$_POST['lastgroup'] = self::$surveyId . 'X' . $group->gid;
$_POST['movenext'] = 'movenext';
$_POST['thisstep'] = 1;
$_POST['sid'] = self::$surveyId;
$_POST[$sgqa] = '10:00';
$_SESSION['survey_' . self::$surveyId]['maxstep'] = 2;
$_SESSION['survey_' . self::$surveyId]['step'] = 1;
$moveResult = \LimeExpressionManager::NavigateForwards();
$result = \LimeExpressionManager::ProcessCurrentResponses();
$this->assertEquals($result[$sgqa]['value'], '1970-01-01 10:00');
$moveResult = \LimeExpressionManager::NavigateForwards();
// Result is empty dummy text question.
\LimeExpressionManager::ProcessCurrentResponses();
// Check answer in database.
$query = 'SELECT * FROM {{survey_' . self::$surveyId . '}}';
$result = \Yii::app()->db->createCommand($query)->queryAll();
$this->assertEquals($result[0][$sgqa], '1970-01-01 10:00:00', 'Answer in database is 10:00');
// Check result from qanda.
$qanda = \retrieveAnswers(
$_SESSION['survey_' . self::$surveyId]['fieldarray'][0],
self::$surveyId
);
$this->assertEquals(false, strpos($qanda[0][1], "value=\"11:00\""), 'No 11:00 value from qanda');
$this->assertNotEquals(false, strpos($qanda[0][1], "value=\"10:00\""), 'One 10:00 value from qanda');
self::$testHelper->deactivateSurvey(self::$surveyId);
}
}