public function testSmartyTemplate() { $site = $this->getMockSite(); $render = new CM_Frontend_Render(new CM_Frontend_Environment($site)); $url = $render->getUrlResource('layout', 'browserconfig.xml'); $request = new CM_Http_Request_Get($url, ['host' => $site->getHost()]); $response = $this->processRequest($request); $this->assertContains('Content-Type: application/xml', $response->getHeaders()); $this->assertContains('Cache-Control: max-age=31536000', $response->getHeaders()); $this->assertContains('Expires: ' . gmdate('D, d M Y H:i:s \\G\\M\\T', time() + 31536000), $response->getHeaders()); $imgUrl = $render->getUrlResource('layout', 'img/meta/tile-small-128x128-transparent.png'); $this->assertContains("src=\"{$imgUrl}\"", $response->getContent()); $exception = $this->catchException(function () use($render) { $render->getLayoutFile('resource/browserconfig.xml'); }); $this->assertInstanceOf('CM_Exception_Invalid', $exception); /** @var CM_Exception_Invalid $exception */ $this->assertSame('Can\'t find template', $exception->getMessage()); $this->assertSame('resource/browserconfig.xml', $exception->getMetaInfo()['template']); }