class TwigTestExtension

Hierarchy

Expanded class hierarchy of TwigTestExtension

File

drupal/core/vendor/twig/twig/test/Twig/Tests/IntegrationTest.php, line 127

View source
class TwigTestExtension extends Twig_Extension {
  public function getTokenParsers() {
    return array(
      new TwigTestTokenParser_☃(),
    );
  }
  public function getFilters() {
    return array(
      '☃' => new Twig_Filter_Method($this, '☃Filter'),
      'escape_and_nl2br' => new Twig_Filter_Method($this, 'escape_and_nl2br', array(
        'needs_environment' => true,
        'is_safe' => array(
          'html',
        ),
      )),
      'nl2br' => new Twig_Filter_Method($this, 'nl2br', array(
        'pre_escape' => 'html',
        'is_safe' => array(
          'html',
        ),
      )),
      'escape_something' => new Twig_Filter_Method($this, 'escape_something', array(
        'is_safe' => array(
          'something',
        ),
      )),
      'preserves_safety' => new Twig_Filter_Method($this, 'preserves_safety', array(
        'preserves_safety' => array(
          'html',
        ),
      )),
      '*_path' => new Twig_Filter_Method($this, 'dynamic_path'),
      '*_foo_*_bar' => new Twig_Filter_Method($this, 'dynamic_foo'),
    );
  }
  public function getFunctions() {
    return array(
      '☃' => new Twig_Function_Method($this, '☃Function'),
      'safe_br' => new Twig_Function_Method($this, 'br', array(
        'is_safe' => array(
          'html',
        ),
      )),
      'unsafe_br' => new Twig_Function_Method($this, 'br'),
      '*_path' => new Twig_Function_Method($this, 'dynamic_path'),
      '*_foo_*_bar' => new Twig_Function_Method($this, 'dynamic_foo'),
    );
  }
  public function ☃Filter($value) {
    return "☃{$value}☃";
  }
  public function ☃Function($value) {
    return "☃{$value}☃";
  }

  /**
   * nl2br which also escapes, for testing escaper filters
   */
  public function escape_and_nl2br($env, $value, $sep = '<br />') {
    return $this
      ->nl2br(twig_escape_filter($env, $value, 'html'), $sep);
  }

  /**
   * nl2br only, for testing filters with pre_escape
   */
  public function nl2br($value, $sep = '<br />') {

    // not secure if $value contains html tags (not only entities)
    // don't use
    return str_replace("\n", "{$sep}\n", $value);
  }
  public function dynamic_path($element, $item) {
    return $element . '/' . $item;
  }
  public function dynamic_foo($foo, $bar, $item) {
    return $foo . '/' . $bar . '/' . $item;
  }
  public function escape_something($value) {
    return strtoupper($value);
  }
  public function preserves_safety($value) {
    return strtoupper($value);
  }
  public function br() {
    return '<br />';
  }
  public function getName() {
    return 'test';
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TwigTestExtension::br public function
TwigTestExtension::dynamic_foo public function
TwigTestExtension::dynamic_path public function
TwigTestExtension::escape_and_nl2br public function nl2br which also escapes, for testing escaper filters
TwigTestExtension::escape_something public function
TwigTestExtension::getFilters public function
TwigTestExtension::getFunctions public function
TwigTestExtension::getName public function
TwigTestExtension::getTokenParsers public function
TwigTestExtension::nl2br public function nl2br only, for testing filters with pre_escape
TwigTestExtension::preserves_safety public function
TwigTestExtension::☃Filter public function
TwigTestExtension::☃Function public function