Example #1
0
 /**
  * @param Request $request
  * @return void
  * @throws RendererException
  */
 public function render(Request $request)
 {
     $response = $request->getResponse();
     $contentType = $request->getContentType();
     if ('json' === $contentType) {
         $renderer = new JsonRenderer();
     } else {
         if ('xml' === $contentType) {
             $renderer = new XmlRenderer();
         } else {
             if ('rss' === $contentType) {
                 $renderer = new RssRenderer();
             } else {
                 if ('html' === $contentType) {
                     $renderer = new HtmlRenderer();
                 } else {
                     $renderer = new HtmlRenderer();
                     $e = new RendererException('Content type missing or invalid', Response::NOT_FOUND);
                     $response->setException($e);
                 }
             }
         }
     }
     $body = $renderer->render($request, $response);
     $response->sendHeaders();
     exit($body);
 }
<?php

// test/unit/renderer/HtmlRendererTest.php
require_once dirname(__FILE__) . '/../../bootstrap/unit.php';
$t = new lime_test(6);
// __construct
$t->diag('__construct');
$t->ok(($obj = new HtmlRenderer()) instanceof HtmlRenderer, 'HtmlRendererインスタンス化');
$t->ok(($obj = new HtmlRenderer()) instanceof Renderer, 'Rendererのサブクラス');
// render()
$t->diag('render()');
$t->is($obj->render(''), '', '空文字列の描画');
$t->is($obj->render('simple text'), 'simple text', '単純なコンテンツの描画');
$t->is($obj->render("<h1>simple text</h1>"), '<h1>simple text</h1>', 'タグ付コンテンツの描画(そのまま出力)');
$t->is($obj->render("<h1>simple text</h1>\n<a href=\"test\">foobar</a>"), "<h1>simple text</h1>\n<a href=\"test\">foobar</a>", 'タグ付コンテンツの描画2(改行などもそのまま出力)');