Skip to content
Snippets Groups Projects
Select Git revision
  • 7fc5a63d87ad17e493fa529f3a97b0efc122964b
  • master default protected
  • cesnet_simplesamlphp-1.19.8
  • elixir_simplesamlphp-1.19.8
  • simplesamlphp-1.19.8
  • cesnet_simplesamlphp-1.19.5
  • simplesamlphp-2.0
  • feature/assets
  • feature/rac-source-selector
  • cleanup/remove-base64-attributes
  • simplesamlphp-1.19
  • elixir_simplesamlphp-1.19.5
  • aarc_idp_hinting
  • feature/validate-authstate-before-processing
  • feature/build-two-tarballs
  • dependabot/composer/twig/twig-3.4.3
  • tvdijen-patch-1
  • unchanged-acs-url-no-www-script
  • feature/translation-improvements
  • symfony6
  • move_tests
  • v1.19.9
  • v2.1.3
  • v2.0.10
  • v2.1.2
  • v2.0.9
  • v2.1.1
  • v2.0.8
  • v2.1.0
  • v2.0.7
  • v2.1.0-rc1
  • v2.0.6
  • v2.0.5
  • 2.0.4-alpha.1
  • v2.0.4-alpha.1
  • v2.0.4
  • v2.0.3
  • v2.0.2
  • v2.0.1-alpha.1
  • v2.0.1
  • v1.19.8
41 results

TemplateTest.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    TemplateTest.php 2.18 KiB
    <?php
    
    namespace SimpleSAML\Test\Web;
    
    use PHPUnit\Framework\TestCase;
    use SimpleSAML\Configuration;
    use SimpleSAML\XHTML\Template;
    use SimpleSAML\Module;
    use Twig\Error\SyntaxError;
    
    /**
     * Simple test for syntax-checking Twig-templates.
     *
     * @author Tim van Dijen <tvdijen@gmail.com>
     * @package SimpleSAMLphp
     */
    class TemplateTest extends TestCase
    {
        /**
         * @return void
         */
        public function testSyntax()
        {
            $config = Configuration::loadFromArray([
                'usenewui' => true,
                'module.enable' => array_fill_keys(Module::getModules(), true),
            ]);
            Configuration::setPreLoadedConfig($config);
    
            $basedir = dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . 'templates';
    
            // Base templates
            $files = array_diff(scandir($basedir), ['.', '..']);
            foreach ($files as $file) {
                if (preg_match('/.twig$/', $file)) {
                    $t = new Template($config, $file);
                    ob_start();
                    try {
                        $t->show();
                        $this->addToAssertionCount(1);
                    } catch (SyntaxError $e) {
                        $this->fail($e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
                    }
                    ob_end_clean();
                }
            }
    
            // Module templates
            foreach (Module::getModules() as $module) {
                $basedir = Module::getModuleDir($module) . DIRECTORY_SEPARATOR . 'templates';
                if (file_exists($basedir)) {
                    $files = array_diff(scandir($basedir), ['.', '..']);
                    foreach ($files as $file) {
                        if (preg_match('/.twig$/', $file)) {
                            $t = new Template($config, $module . ':' . $file);
                            ob_start();
                            try {
                                $t->show();
                                $this->addToAssertionCount(1);
                            } catch (SyntaxError $e) {
                                $this->fail($e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine());
                            }
                            ob_end_clean();
                        }
                    }
                }
            }
        }
    }