/** * Ask the test session to move to the previous RouteItem in the Route sequence. * * If $allowTimeout is set to true, the previous RouteItem in the Route sequence will bet set * as the current RouteItem, whether or not it is timed out. * * On the other hand, if $allowTimeout is set to false, the previous RouteItem in the Route sequence * which is not timed out will be set as the current RouteItem. If there is no more previous RouteItems * that are not timed out in the Route sequence, the current RouteItem remains the same and an * AssessmentTestSessionException with the appropriate timing error code is thrown. * * @param boolean $allowTimeout If set to true, the next RouteItem in the sequence does not have to respect timeLimits in force. Default value is false. * @throws AssessmentTestSessionException If the test session is not running or an issue occurs during the transition (e.g. branching, preConditions, ...) or if $allowTimeout = false and there absolutely no possibility to move backward (even the first RouteItem is timed out). * @qtism-test-interaction * @qtism-test-duration-update */ public function moveBack($allowTimeout = false) { $sessionMemento = $this->getSessionMemento(); parent::moveBack($allowTimeout); $this->triggerEventChange($sessionMemento); }