/**
  * Restores $variables in $variableContainer
  *
  * @param TemplateVariableContainer $variableContainer
  * @param array $variables
  * @param array $backups
  * @return void
  */
 public static function restoreVariables(TemplateVariableContainer $variableContainer, array $variables, array $backups)
 {
     foreach ($variables as $variableName => $variableValue) {
         $variableContainer->remove($variableName);
         if (TRUE === isset($backups[$variableName])) {
             $variableContainer->add($variableName, $variableValue);
         }
     }
 }
 /**
  * Save the associated view helper node in a static public class variable.
  * called directly after the view helper was built.
  *
  * @param \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode $syntaxTreeNode
  * @param array $viewHelperArguments
  * @param \TYPO3\CMS\Fluid\Core\ViewHelper\TemplateVariableContainer $variableContainer
  * @return void
  */
 public static function postParseEvent(\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode $syntaxTreeNode, array $viewHelperArguments, \TYPO3\CMS\Fluid\Core\ViewHelper\TemplateVariableContainer $variableContainer)
 {
     $sectionName = $viewHelperArguments['name']->getText();
     if (!$variableContainer->exists('sections')) {
         $variableContainer->add('sections', array());
     }
     $sections = $variableContainer->get('sections');
     $sections[$sectionName] = $syntaxTreeNode;
     $variableContainer->remove('sections');
     $variableContainer->add('sections', $sections);
 }
 /**
  * @param array $variables
  * @param array $backups
  * @param \TYPO3\CMS\Fluid\Core\ViewHelper\TemplateVariableContainer $templateVariableContainer
  * @return void
  */
 private static function restoreVariables(array $variables, array $backups, $templateVariableContainer)
 {
     foreach ($variables as $variableName => $variableValue) {
         $templateVariableContainer->remove($variableName);
         if (true === isset($backups[$variableName])) {
             $templateVariableContainer->add($variableName, $variableValue);
         }
     }
 }
 /**
  * @test
  * @expectedException \TYPO3\CMS\Fluid\Core\ViewHelper\Exception\InvalidVariableException
  */
 public function removeReallyRemovesVariables()
 {
     $this->variableContainer->add('variable', 'string1');
     $this->variableContainer->remove('variable');
     $this->variableContainer->get('variable');
 }