public function testSurveyName() { $survey = new Survey(); $survey->setSurveyName("yesno"); $survey->setDescription('stuff'); $q = new SurveyQuestion(); $q->setType(QuestionType::YesNo()); $q->setQuestion("A question"); $survey->addQuestion($q); //add another question $q2 = new SurveyQuestion(); $q2->setType(QuestionType::StarRating()); $secondQuestion = "Second question"; $q2->setQuestion($secondQuestion); $survey->addQuestion($q2); $this->surveyManager->createSurvey($survey); SurveyEntityManager::testClear(); $service = $this->newSurveyService(); $this->request['Body'] = "yesno"; $this->request['From'] = "1234"; $serviced = $service->service(); $this->assertTrue($serviced); $this->request['Body'] = "no"; $this->request['From'] = "1234"; $serviced = $service->service(); $this->assertTrue($serviced); $this->assertContains($secondQuestion, $service->getResponse()->getContent()); }
public function testDeleteQuestionFromSurvey() { $survey = new Survey(); $survey->setSurveyName("hi"); $survey->setDescription('stuff'); $qtypes = QuestionType::toArray(); $max = rand(4, 5); for ($i = 0; $i < $max; ++$i) { $q = new SurveyQuestion(); $q->setType(new QuestionType(rand(1, count($qtypes)))); $q->setQuestion("q" . $i); $survey->addQuestion($q); } $this->manager->createSurvey($survey); $toDelete = $survey->getQuestions()[rand(0, $max - 1)]; $idToDelete = $toDelete->getId(); $survey->deleteQuestion($idToDelete); $this->manager->updateSurvey($survey); $this->assertEquals($max - 1, count($survey->getQuestions())); }
function showEditSurveyRes() { $displaySysAdmin = new DisplaySysAdmin(); $suid = getFromSessionParams('suid'); $content = ""; if ($suid != '') { //edit $survey = new Survey($suid); $content = $displaySysAdmin->displaySuccess(Language::messageSurveyChanged(loadvar('name'))); } else { //add survey! if (loadvar('name') != "") { $surveys = new Surveys(); $newsuid = $surveys->getMaximumSuid() + 1; $_SESSION['SURVEY_MODE'] = MODE_CASI; $_SESSION['SURVEY_LANGUAGE'] = 1; $_SESSION['SUID'] = $newsuid; $survey = new Survey(); $survey->setSuid($newsuid); $survey->setObjectName($newsuid); $survey->addVersion(Language::labelVersionCurrentName(), Language::labelVersionCurrentDescription()); $survey->setDefaultMode(MODE_CASI); // self $survey->setDefaultLanguage(1); // english $survey->setAccessType(LOGIN_ANONYMOUS); $survey->setName(loadvar('name')); $survey->setTitle(loadvar(SETTING_TITLE)); $survey->setDescription(loadvar(SETTING_DESCRIPTION)); /* add base section */ $section = new Section(); $section->setSuid($newsuid); $section->setSeid(1); $section->setName(SECTION_BASE); $section->setPosition(1); $section->save(); /* add base questions */ $var = new VariableDescriptive(); $var->setVsid(1); $var->setName(VARIABLE_PRIMKEY); $var->setAnswerType(ANSWER_TYPE_STRING); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('PRIMARY KEY'); $var->setQuestion('primary key'); $var->setMaximumLength(ANSWER_PRIMKEY_LENGTH); $var->setTyd(-1); $var->setPosition(1); $var->save(); $var = new VariableDescriptive(); $var->setVsid(2); $var->setName(VARIABLE_BEGIN); $var->setAnswerType(ANSWER_TYPE_DATETIME); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('TIMESTAMP START'); $var->setQuestion('timestamp start'); $var->setTyd(-1); $var->setPosition(2); $var->save(); $var = new VariableDescriptive(); $var->setVsid(3); $var->setName(VARIABLE_END); $var->setAnswerType(ANSWER_TYPE_DATETIME); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('TIMESTAMP END'); $var->setQuestion('timestamp end'); $var->setTyd(-1); $var->setPosition(3); $var->save(); $var = new VariableDescriptive(); $var->setVsid(4); $var->setName(VARIABLE_VERSION); $var->setAnswerType(ANSWER_TYPE_INTEGER); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('VERSION INFO'); $var->setQuestion('version info'); $var->setTyd(-1); $var->setPosition(4); $var->save(); $var = new VariableDescriptive(); $var->setVsid(5); $var->setName(VARIABLE_MODE); $var->setAnswerType(ANSWER_TYPE_ENUMERATED); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('INTERVIEW MODE'); $var->setOptionsText("1 (CAPI) Face-to-face\r\n2 (CATI) Telephone\r\n3 (CASI) Self-administered\r\n4 (CADI) Data entry"); $var->setQuestion('interview mode'); $var->setTyd(-1); $var->setPosition(5); $var->save(); $var = new VariableDescriptive(); $var->setVsid(6); $var->setName(VARIABLE_LANGUAGE); $var->setAnswerType(ANSWER_TYPE_INTEGER); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('INTERVIEW LANGUAGE'); $var->setQuestion('interview language'); $var->setTyd(-1); $var->setPosition(6); $var->save(); $var = new VariableDescriptive(); $var->setVsid(7); $var->setName(VARIABLE_TEMPLATE); $var->setAnswerType(ANSWER_TYPE_INTEGER); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('SURVEY TEMPLATE'); $var->setQuestion('survey template'); $var->setTyd(-1); $var->setPosition(7); $var->save(); $var = new VariableDescriptive(); $var->setVsid(8); $var->setName(VARIABLE_PLATFORM); $var->setAnswerType(ANSWER_TYPE_STRING); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('PLATFORM AND BROWSER INFORMATION'); $var->setQuestion('platform and browser information'); $var->setTyd(-1); $var->setPosition(8); $var->save(); $var = new VariableDescriptive(); $var->setVsid(9); $var->setName(VARIABLE_INTRODUCTION); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('INTRODUCTION SCREEN'); $var->setQuestion(Language::messageWelcome()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_YES); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(9); $var->save(); $var = new VariableDescriptive(); $var->setVsid(10); $var->setName(VARIABLE_THANKS); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('THANKS SCREEN'); $var->setQuestion(Language::messageSurveyEnd()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(10); $var->save(); $var = new VariableDescriptive(); $var->setVsid(11); $var->setName(VARIABLE_COMPLETED); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('ALREADY COMPLETED SCREEN'); $var->setQuestion(Language::messageSurveyCompleted()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(11); $var->save(); $var = new VariableDescriptive(); $var->setVsid(12); $var->setName(VARIABLE_LOCKED); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('PROCESSING SCREEN'); $var->setQuestion(Language::messageSurveyProcessing()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(12); $var->save(); $var = new VariableDescriptive(); $var->setVsid(13); $var->setName(VARIABLE_DIRECT); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('DIRECT ACCESS ONLY SCREEN'); $var->setQuestion(Language::errorDirectLogin()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(13); $var->save(); $var = new VariableDescriptive(); $var->setVsid(14); $var->setName(VARIABLE_IN_PROGRESS); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('IN PROGRESS SCREEN'); $var->setQuestion(Language::errorInProgress()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(14); $var->save(); $var = new VariableDescriptive(); $var->setVsid(15); $var->setName(VARIABLE_LOGIN); $var->setAnswerType(ANSWER_TYPE_STRING); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('LOGIN SCREEN'); $var->setQuestion(Language::labelLoginCode()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_YES); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(15); $var->save(); $var = new VariableDescriptive(); $var->setVsid(16); $var->setName(VARIABLE_CLOSED); $var->setAnswerType(ANSWER_TYPE_NONE); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('CLOSED SCREEN'); $var->setQuestion(Language::messageSurveyClosed()); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowRemarkButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(16); $var->save(); $var = new VariableDescriptive(); $var->setVsid(17); $var->setName(VARIABLE_EXECUTION_MODE); $var->setAnswerType(ANSWER_TYPE_ENUMERATED); $var->setSeid(1); $var->setSuid($newsuid); $var->setDescription('EXECUTION MODE'); $var->setQuestion("execution mode"); $var->setOptionsText("0 (NORMAL) Normal mode\r\n1 (TEST) Test mode"); $var->setShowBackButton(BUTTON_NO); $var->setShowNextButton(BUTTON_NO); $var->setShowRFButton(BUTTON_NO); $var->setShowDKButton(BUTTON_NO); $var->setShowNAButton(BUTTON_NO); $var->setShowUpdateButton(BUTTON_NO); $var->setShowProgressBar(PROGRESSBAR_NO); $var->setHidden(HIDDEN_YES); $var->setTyd(-1); $var->setPosition(17); $var->save(); /* update current user for access */ $surv = new Survey($newsuid); $user = new User($_SESSION['URID']); $mods = explode("~", $surv->getAllowedModes()); foreach ($mods as $m) { $user->setLanguages($newsuid, $m, $surv->getAllowedLanguages($m)); } $user->saveChanges(); $content = $displaySysAdmin->displaySuccess(Language::messageSurveyAdded(loadvar('name'))); } } //ADD ALL SORTS OF CHECKS!! if ($suid != '' || loadvar('name') != "") { $survey->setName(loadvar('name')); $survey->setDescription(loadvar(SETTING_DESCRIPTION)); $survey->setTitle(loadvar(SETTING_TITLE)); $survey->setDefaultSurvey(loadvar(SETTING_DEFAULT_SURVEY)); $survey->save(); // default, then update setting and set all others to no $surveys = new Surveys(); $surveys = $surveys->getSurveys(); if (loadvar(SETTING_DEFAULT_SURVEY) == DEFAULT_SURVEY_YES) { if (sizeof($surveys) == 1) { $survey->setDefaultSurvey(DEFAULT_SURVEY_YES); } else { foreach ($surveys as $s) { if ($s->getSuid() != $survey->getSuid()) { $s->setDefaultSurvey(DEFAULT_SURVEY_NO); } else { $s->setDefaultSurvey(DEFAULT_SURVEY_YES); } } } } else { // if only one survey, make sure we set this one to default if (sizeof($surveys) == 1) { $survey->setDefaultSurvey(DEFAULT_SURVEY_YES); } } } /* update last page */ $_SESSION['LASTPAGE'] = substr($_SESSION['LASTPAGE'], 0, strripos($_SESSION['LASTPAGE'], "res")); if ($suid != '') { return $displaySysAdmin->showEditSurvey($_SESSION['SUID'], $content); } else { return $displaySysAdmin->showSurveys($content); } }
public function testTagCloud() { $survey = new Survey(); $survey->setSurveyName("hi"); $survey->setDescription('stuff'); $q = new SurveyQuestion(); $q->setType(QuestionType::Text()); $q->setQuestion("Your Suggestions"); $survey->addQuestion($q); $this->manager->createSurvey($survey); $max = rand(1, 20); for ($i = 0; $i < $max; ++$i) { $val = $this->getRandomString(); $ans = new SurveyAnswer(); $ans->setAnswer($val); $ans->setAnsweredBy("+12064122496"); $this->manager->addAnswer($q->getId(), $ans); } $answers = $this->manager->getAnswers($survey->getId()); $strArr = ReportChartFormatter::getChartData($answers->getAnswers($q->getId()), ChartFormats::TagCloud()); $this->assertNotNull($strArr); //TODO: how the heck do i test this? I guess that it just works? }