23 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
34 'typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example'
48 'existing blog post' => [
49 [
'__identity' => 1,
'title' =>
'12'],
50 [
'blogPost[__identity]',
'blogPost[title]'],
53 'existing blog post custom validator' => [
54 [
'__identity' => 1,
'title' =>
'77'],
55 [
'blogPost[__identity]',
'blogPost[title]'],
56 [1428504122, 1480872650]
70 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'encryptionKey'] =
'testkey';
72 $this->importDataSet(
'PACKAGE:typo3/testing-framework/Resources/Core/Functional/Fixtures/pages.xml');
73 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/blogs.xml');
74 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/posts.xml');
77 $response = $objectManager->get(\
TYPO3\CMS\
Extbase\Mvc\Web\Response::class);
78 $request = $objectManager->get(\
TYPO3\CMS\
Extbase\Mvc\Web\Request::class);
80 $request->setControllerActionName(
'testForward');
81 $request->setArgument(
'blogPost', $blogPostArgument);
84 $referrerRequest[
'@action'] =
'testForm';
85 $request->setArgument(
87 [
'@request' => $this->
getHashService()->appendHmac(serialize($referrerRequest))]
90 while (!$request->isDispatched()) {
92 $blogController = $objectManager->get(BlogController::class);
93 $blogController->processRequest($request, $response);
99 $titleMappingResults = $request->getOriginalRequestMappingResults()->forProperty(
'blogPost.title');
100 $titleErrors = $titleMappingResults->getFlattenedErrors();
101 $this->assertCount(count($expectedErrorCodes), $titleErrors[
'']);
103 $titleErrors = $titleErrors[
''];
105 foreach ($titleErrors as $titleError) {
106 $this->assertContains($titleError->getCode(), $expectedErrorCodes);
108 $this->assertEquals(
'testFormAction', $response->getContent());
116 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'encryptionKey'] =
'testkey';
118 $this->importDataSet(
'PACKAGE:typo3/testing-framework/Resources/Core/Functional/Fixtures/pages.xml');
119 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/blogs.xml');
120 $this->importDataSet(ORIGINAL_ROOT .
'typo3/sysext/extbase/Tests/Functional/Persistence/Fixtures/posts.xml');
123 $response = $objectManager->get(\
TYPO3\CMS\
Extbase\Mvc\Web\Response::class);
124 $request = $objectManager->get(\
TYPO3\CMS\
Extbase\Mvc\Web\Request::class);
126 $request->setControllerActionName(
'testRelatedObject');
127 $request->setArgument(
'blog', [
'__identity' => 1,
'description' => str_repeat(
'test', 40)]);
128 $request->setArgument(
130 [
'__identity' => 1,
'title' =>
'77',
'blog' => [
'__identity' => 1,
'title' => str_repeat(
'test', 21)]]
132 $request->setArgument(
133 '__trustedProperties',
138 'blogPost[__identity]',
140 'blogPost[blog][__identity]',
141 'blogPost[blog][title]'
146 $referrerRequest[
'@action'] =
'testForm';
147 $request->setArgument(
149 [
'@request' => $this->
getHashService()->appendHmac(serialize($referrerRequest))]
152 while (!$request->isDispatched()) {
154 $blogController = $objectManager->get(BlogController::class);
155 $blogController->processRequest($request, $response);
161 $errors = $request->getOriginalRequestMappingResults()->getFlattenedErrors();
162 $this->assertCount(1,
$errors[
'blog.title']);
163 $this->assertCount(1,
$errors[
'blog.description']);
164 $this->assertCount(2,
$errors[
'blogPost.title']);
166 $this->assertEquals(
'testFormAction', $response->getContent());
176 MvcPropertyMappingConfigurationService::class
178 return $mvcPropertyMappingConfigurationService->generateTrustedPropertiesToken($formFieldNames,
'');
194 return GeneralUtility::makeInstance(ObjectManager::class);