assertTrue($sut->supports($this->getInvoiceDocument('default.html.twig'))); $this->assertTrue($sut->supports($this->getInvoiceDocument('timesheet.html.twig'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('freelancer.pdf.twig'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('foo.html.twig'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('company.docx'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('export.csv'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('spreadsheet.xlsx'))); $this->assertFalse($sut->supports($this->getInvoiceDocument('open-spreadsheet.ods'))); } public function testRender() { $kernel = self::bootKernel(); /** @var Environment $twig */ $twig = $kernel->getContainer()->get('twig'); $stack = $kernel->getContainer()->get('request_stack'); $request = new Request(); $request->setLocale('en'); $stack->push($request); /** @var FilesystemLoader $loader */ $loader = $twig->getLoader(); $loader->addPath($this->getInvoiceTemplatePath(), 'invoice'); $sut = new TwigRenderer($twig); $model = $this->getInvoiceModel(); $model->getTemplate()->setLanguage('de'); $document = $this->getInvoiceDocument('timesheet.html.twig'); $response = $sut->render($document, $model); $content = $response->getContent(); $filename = $model->getInvoiceNumber() . '-customer_with_special_name'; $this->assertStringContainsString('' . $filename . '', $content); $this->assertStringContainsString('a very *long* test invoice / template title with [ßpecial] chäracter', $content); $this->assertEquals(3, substr_count($content, 'activity description')); $this->assertStringContainsString(nl2br("foo\n" . "foo\r\n" . 'foo' . PHP_EOL . "bar\n" . "bar\r\n" . 'Hello'), $content); } }