@@ -80,36 +80,53 @@ public function testCreate200Response()
80
80
$ this ->assertEquals ('deny ' , $ response ->headers ->get ('X-Frame-Options ' ));
81
81
}
82
82
83
- public function testPostCreate200Response ()
83
+ public function testPost200WithoutLocation ()
84
84
{
85
85
$ kernelProphecy = $ this ->prophesize (HttpKernelInterface::class);
86
86
87
- $ request = new Request ([], [], ['_api_respond ' => true , '_api_write_item_iri ' => '/dummy_entities/1 ' , '_api_item_operation_name ' => ' post ' ]);
87
+ $ request = new Request ([], [], ['_api_resource_class ' => Dummy::class , '_api_item_operation_name ' => 'get ' , '_api_respond ' => true , ' _api_write_item_iri ' => ' /dummy_entities/1 ' ]);
88
88
$ request ->setMethod ('POST ' );
89
- $ request ->setRequestFormat ('xml ' );
90
89
91
90
$ event = new ViewEvent (
92
91
$ kernelProphecy ->reveal (),
93
92
$ request ,
94
93
HttpKernelInterface::MASTER_REQUEST ,
95
- 'foo '
94
+ 'bar '
96
95
);
97
-
98
96
$ resourceMetadataFactoryProphecy = $ this ->prophesize (ResourceMetadataFactoryInterface::class);
99
- $ resourceMetadataFactoryProphecy ->create (Dummy::class)->willReturn (new ResourceMetadata (null , null , null , ['post ' => ['status ' => Response::HTTP_OK ]]));
97
+ $ resourceMetadataFactoryProphecy ->create (Dummy::class)->willReturn (new ResourceMetadata (null , null , null , ['get ' => ['status ' => Response::HTTP_OK ]]));
100
98
101
99
$ listener = new RespondListener ($ resourceMetadataFactoryProphecy ->reveal ());
102
100
$ listener ->onKernelView ($ event );
103
101
104
102
$ response = $ event ->getResponse ();
105
- $ this ->assertEquals ('foo ' , $ response ->getContent ());
106
- $ this ->assertEquals (Response::HTTP_OK , $ response ->getStatusCode ());
107
- $ this ->assertEquals ('text/xml; charset=utf-8 ' , $ response ->headers ->get ('Content-Type ' ));
108
- $ this ->assertEquals ('Accept ' , $ response ->headers ->get ('Vary ' ));
109
- $ this ->assertEquals ('nosniff ' , $ response ->headers ->get ('X-Content-Type-Options ' ));
110
- $ this ->assertEquals ('deny ' , $ response ->headers ->get ('X-Frame-Options ' ));
111
103
$ this ->assertFalse ($ response ->headers ->has ('Location ' ));
112
- $ this ->assertEquals ('/dummy_entities/1 ' , $ response ->headers ->get ('Content-Location ' ));
104
+ $ this ->assertSame (Response::HTTP_OK , $ event ->getResponse ()->getStatusCode ());
105
+ }
106
+
107
+ public function testPost301WithLocation ()
108
+ {
109
+ $ kernelProphecy = $ this ->prophesize (HttpKernelInterface::class);
110
+
111
+ $ request = new Request ([], [], ['_api_resource_class ' => Dummy::class, '_api_item_operation_name ' => 'get ' , '_api_respond ' => true , '_api_write_item_iri ' => '/dummy_entities/1 ' ]);
112
+ $ request ->setMethod ('POST ' );
113
+
114
+ $ event = new ViewEvent (
115
+ $ kernelProphecy ->reveal (),
116
+ $ request ,
117
+ HttpKernelInterface::MASTER_REQUEST ,
118
+ 'bar '
119
+ );
120
+ $ resourceMetadataFactoryProphecy = $ this ->prophesize (ResourceMetadataFactoryInterface::class);
121
+ $ resourceMetadataFactoryProphecy ->create (Dummy::class)->willReturn (new ResourceMetadata (null , null , null , ['get ' => ['status ' => Response::HTTP_MOVED_PERMANENTLY ]]));
122
+
123
+ $ listener = new RespondListener ($ resourceMetadataFactoryProphecy ->reveal ());
124
+ $ listener ->onKernelView ($ event );
125
+
126
+ $ response = $ event ->getResponse ();
127
+ $ this ->assertTrue ($ response ->headers ->has ('Location ' ));
128
+ $ this ->assertEquals ('/dummy_entities/1 ' , $ response ->headers ->get ('Location ' ));
129
+ $ this ->assertSame (Response::HTTP_MOVED_PERMANENTLY , $ event ->getResponse ()->getStatusCode ());
113
130
}
114
131
115
132
public function testCreate201Response ()
@@ -139,6 +156,7 @@ public function testCreate201Response()
139
156
$ this ->assertEquals ('deny ' , $ response ->headers ->get ('X-Frame-Options ' ));
140
157
$ this ->assertEquals ('/dummy_entities/1 ' , $ response ->headers ->get ('Location ' ));
141
158
$ this ->assertEquals ('/dummy_entities/1 ' , $ response ->headers ->get ('Content-Location ' ));
159
+ $ this ->assertTrue ($ response ->headers ->has ('Location ' ));
142
160
}
143
161
144
162
public function testCreate204Response ()
0 commit comments