Routing.php

<?php

namespace Phad\Test\Integration;

/**
 * Tests that the compiler correctly generates route data & that View class can return it
 */
class Routing extends \Phad\Tester {

    /** the template file contents */
    protected $template;

    public function prepare(){
        $_SERVER['REQUEST_METHOD'] = 'GET';
        $this->pdo = new \PDO('sqlite::memory:');
        $this->template = file_get_contents($this->file('code/template/main.php'));
    }

    public function testRouteDataFromView2(){
        $phad = new \Phad();
        $phad->item_dir = $this->file('test/input/views/');
        $view = $phad->item('Route/NoItems');
        
        $routes = $view->routes();

        $this->compare(
            [['pattern'=>'/route/no-items/'], ['pattern'=>'/route/still-no-items/']],
            $routes
        );
    }

    public function testRouteDataFromView(){
        $phad = new \Phad();
        $phad->item_dir = $this->file('test/input/views/');
        $view = $phad->item('Route/SimpleBlog');
        $view->force_compile = true;
        
        $routes = $view->routes();

        $this->compare(
            [['pattern'=>'/blog/{title}/']],
            $routes
        );
    }

    public function testRouteDataExtractedFromTemplate(){
        $compiler = new \Phad\TemplateCompiler();
        $out = $compiler->compile($this->viewSrc('Route/SimpleBlog'), $this->template);
        $phad_block = \Phad\Blocks::ROUTE_META;

        $routes = eval('?>'.$out);

        $this->compare(
            [['pattern'=>'/blog/{title}/']],
            $routes
        );
    }

}