1 | <?php |
||
37 | class RenderingTest extends FunctionalTestCase |
||
38 | { |
||
39 | /** |
||
40 | * @var array |
||
41 | */ |
||
42 | protected $testExtensionsToLoad = array('typo3conf/ext/gslib'); |
||
43 | |||
44 | /** |
||
45 | * @var array |
||
46 | */ |
||
47 | protected $coreExtensionsToLoad = array('fluid'); |
||
48 | |||
49 | public function setUp() |
||
50 | { |
||
51 | parent::setUp(); |
||
52 | $this->importDataSet(__DIR__ . '/Fixtures/Database/pages.xml'); |
||
53 | $this->setUpFrontendRootPage(1, array('EXT:gslib/Tests/Functional/Fixtures/Frontend/Basic.ts')); |
||
54 | } |
||
55 | |||
56 | /** |
||
57 | * @test |
||
58 | */ |
||
59 | public function emailViewHelperWorksWithSpamProtection() |
||
60 | { |
||
61 | $requestArguments = array('id' => '1'); |
||
62 | $expectedContent = '<a href="javascript:linkTo_UnCryptMailto(\'ocknvq,varq5Bikndgtvuqhv0qti\');">typo3(AT)gilbertsoft(DOT)org</a>'; |
||
63 | $this->assertSame($expectedContent, $this->fetchFrontendResponse($requestArguments)->getContent()); |
||
64 | } |
||
65 | |||
66 | |||
67 | |||
68 | /* *************** |
||
69 | * Utility methods |
||
70 | * ***************/ |
||
71 | |||
72 | |||
73 | |||
74 | /** |
||
75 | * @param array $requestArguments |
||
76 | * @param bool $failOnFailure |
||
77 | * @return Response |
||
78 | */ |
||
79 | protected function fetchFrontendResponse(array $requestArguments, $failOnFailure = true) |
||
80 | { |
||
81 | if (!empty($requestArguments['url'])) { |
||
82 | $requestUrl = '/' . ltrim($requestArguments['url'], '/'); |
||
83 | } else { |
||
84 | $requestUrl = '/?' . GeneralUtility::implodeArrayForUrl('', $requestArguments); |
||
85 | } |
||
86 | if (property_exists($this, 'instancePath')) { |
||
87 | $instancePath = $this->instancePath; |
||
88 | } else { |
||
89 | $instancePath = $this->getInstancePath(); |
||
90 | } |
||
91 | $arguments = array( |
||
92 | 'documentRoot' => $instancePath, |
||
93 | 'requestUrl' => 'http://localhost' . $requestUrl, |
||
94 | ); |
||
95 | |||
96 | $template = new \Text_Template('ntf://Frontend/Request.tpl'); |
||
97 | $template->setVar( |
||
98 | array( |
||
99 | 'arguments' => var_export($arguments, true), |
||
100 | 'originalRoot' => ORIGINAL_ROOT, |
||
101 | 'ntfRoot' => __DIR__ . '/../../.Build/vendor/nimut/testing-framework/', |
||
102 | ) |
||
103 | ); |
||
104 | |||
105 | $php = \PHPUnit_Util_PHP::factory(); |
||
106 | $response = $php->runJob($template->render()); |
||
107 | $result = json_decode($response['stdout'], true); |
||
108 | |||
109 | if ($result === null) { |
||
110 | $this->fail('Frontend Response is empty.' . LF . 'Error: ' . LF . $response['stderr']); |
||
111 | } |
||
112 | |||
113 | if ($failOnFailure && $result['status'] === Response::STATUS_Failure) { |
||
114 | $this->fail('Frontend Response has failure:' . LF . $result['error']); |
||
115 | } |
||
116 | |||
117 | $response = new Response($result['status'], $result['content'], $result['error']); |
||
118 | return $response; |
||
119 | } |
||
120 | } |
||
121 |