mirror of https://github.com/flightphp/core
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							83 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							83 lines
						
					
					
						
							1.9 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
 * Flight: An extensible micro-framework.
 | 
						|
 *
 | 
						|
 * @copyright   Copyright (c) 2012, Mike Cao <mike@mikecao.com>
 | 
						|
 * @license     MIT, http://flightphp.com/license
 | 
						|
 */
 | 
						|
require_once 'vendor/autoload.php';
 | 
						|
require_once __DIR__ . '/../flight/autoload.php';
 | 
						|
 | 
						|
class ViewTest extends PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var \flight\template\View
 | 
						|
     */
 | 
						|
    private $view;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $this->view = new \flight\template\View();
 | 
						|
        $this->view->path = __DIR__ . '/views';
 | 
						|
    }
 | 
						|
 | 
						|
    // Set template variables
 | 
						|
    public function testVariables()
 | 
						|
    {
 | 
						|
        $this->view->set('test', 123);
 | 
						|
 | 
						|
        $this->assertEquals(123, $this->view->get('test'));
 | 
						|
 | 
						|
        $this->assertTrue($this->view->has('test'));
 | 
						|
        $this->assertTrue(!$this->view->has('unknown'));
 | 
						|
 | 
						|
        $this->view->clear('test');
 | 
						|
 | 
						|
        $this->assertNull($this->view->get('test'));
 | 
						|
    }
 | 
						|
 | 
						|
    // Check if template files exist
 | 
						|
    public function testTemplateExists()
 | 
						|
    {
 | 
						|
        $this->assertTrue($this->view->exists('hello.php'));
 | 
						|
        $this->assertTrue(!$this->view->exists('unknown.php'));
 | 
						|
    }
 | 
						|
 | 
						|
    // Render a template
 | 
						|
    public function testRender()
 | 
						|
    {
 | 
						|
        $this->view->render('hello', ['name' => 'Bob']);
 | 
						|
 | 
						|
        $this->expectOutputString('Hello, Bob!');
 | 
						|
    }
 | 
						|
 | 
						|
    // Fetch template output
 | 
						|
    public function testFetch()
 | 
						|
    {
 | 
						|
        $output = $this->view->fetch('hello', ['name' => 'Bob']);
 | 
						|
 | 
						|
        $this->assertEquals('Hello, Bob!', $output);
 | 
						|
    }
 | 
						|
 | 
						|
    // Default extension
 | 
						|
    public function testTemplateWithExtension()
 | 
						|
    {
 | 
						|
        $this->view->set('name', 'Bob');
 | 
						|
 | 
						|
        $this->view->render('hello.php');
 | 
						|
 | 
						|
        $this->expectOutputString('Hello, Bob!');
 | 
						|
    }
 | 
						|
 | 
						|
    // Custom extension
 | 
						|
    public function testTemplateWithCustomExtension()
 | 
						|
    {
 | 
						|
        $this->view->set('name', 'Bob');
 | 
						|
        $this->view->extension = '.html';
 | 
						|
 | 
						|
        $this->view->render('world');
 | 
						|
 | 
						|
        $this->expectOutputString('Hello world, Bob!');
 | 
						|
    }
 | 
						|
}
 |