aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/api/controllers/links/PostLinkTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/api/controllers/links/PostLinkTest.php')
-rw-r--r--tests/api/controllers/links/PostLinkTest.php56
1 files changed, 52 insertions, 4 deletions
diff --git a/tests/api/controllers/links/PostLinkTest.php b/tests/api/controllers/links/PostLinkTest.php
index 7ff92f5c..f755e2d2 100644
--- a/tests/api/controllers/links/PostLinkTest.php
+++ b/tests/api/controllers/links/PostLinkTest.php
@@ -92,8 +92,8 @@ class PostLinkTest extends TestCase
92 92
93 $mock = $this->createMock(Router::class); 93 $mock = $this->createMock(Router::class);
94 $mock->expects($this->any()) 94 $mock->expects($this->any())
95 ->method('relativePathFor') 95 ->method('pathFor')
96 ->willReturn('api/v1/bookmarks/1'); 96 ->willReturn('/api/v1/bookmarks/1');
97 97
98 // affect @property-read... seems to work 98 // affect @property-read... seems to work
99 $this->controller->getCi()->router = $mock; 99 $this->controller->getCi()->router = $mock;
@@ -128,7 +128,7 @@ class PostLinkTest extends TestCase
128 128
129 $response = $this->controller->postLink($request, new Response()); 129 $response = $this->controller->postLink($request, new Response());
130 $this->assertEquals(201, $response->getStatusCode()); 130 $this->assertEquals(201, $response->getStatusCode());
131 $this->assertEquals('api/v1/bookmarks/1', $response->getHeader('Location')[0]); 131 $this->assertEquals('/api/v1/bookmarks/1', $response->getHeader('Location')[0]);
132 $data = json_decode((string) $response->getBody(), true); 132 $data = json_decode((string) $response->getBody(), true);
133 $this->assertEquals(self::NB_FIELDS_LINK, count($data)); 133 $this->assertEquals(self::NB_FIELDS_LINK, count($data));
134 $this->assertEquals(43, $data['id']); 134 $this->assertEquals(43, $data['id']);
@@ -175,7 +175,7 @@ class PostLinkTest extends TestCase
175 $response = $this->controller->postLink($request, new Response()); 175 $response = $this->controller->postLink($request, new Response());
176 176
177 $this->assertEquals(201, $response->getStatusCode()); 177 $this->assertEquals(201, $response->getStatusCode());
178 $this->assertEquals('api/v1/bookmarks/1', $response->getHeader('Location')[0]); 178 $this->assertEquals('/api/v1/bookmarks/1', $response->getHeader('Location')[0]);
179 $data = json_decode((string) $response->getBody(), true); 179 $data = json_decode((string) $response->getBody(), true);
180 $this->assertEquals(self::NB_FIELDS_LINK, count($data)); 180 $this->assertEquals(self::NB_FIELDS_LINK, count($data));
181 $this->assertEquals(43, $data['id']); 181 $this->assertEquals(43, $data['id']);
@@ -229,4 +229,52 @@ class PostLinkTest extends TestCase
229 \DateTime::createFromFormat(\DateTime::ATOM, $data['updated']) 229 \DateTime::createFromFormat(\DateTime::ATOM, $data['updated'])
230 ); 230 );
231 } 231 }
232
233 /**
234 * Test link creation with a tag string provided
235 */
236 public function testPostLinkWithTagString(): void
237 {
238 $link = [
239 'tags' => 'one two',
240 ];
241 $env = Environment::mock([
242 'REQUEST_METHOD' => 'POST',
243 'CONTENT_TYPE' => 'application/json'
244 ]);
245
246 $request = Request::createFromEnvironment($env);
247 $request = $request->withParsedBody($link);
248 $response = $this->controller->postLink($request, new Response());
249
250 $this->assertEquals(201, $response->getStatusCode());
251 $this->assertEquals('/api/v1/bookmarks/1', $response->getHeader('Location')[0]);
252 $data = json_decode((string) $response->getBody(), true);
253 $this->assertEquals(self::NB_FIELDS_LINK, count($data));
254 $this->assertEquals(['one', 'two'], $data['tags']);
255 }
256
257 /**
258 * Test link creation with a tag string provided
259 */
260 public function testPostLinkWithTagString2(): void
261 {
262 $link = [
263 'tags' => ['one two'],
264 ];
265 $env = Environment::mock([
266 'REQUEST_METHOD' => 'POST',
267 'CONTENT_TYPE' => 'application/json'
268 ]);
269
270 $request = Request::createFromEnvironment($env);
271 $request = $request->withParsedBody($link);
272 $response = $this->controller->postLink($request, new Response());
273
274 $this->assertEquals(201, $response->getStatusCode());
275 $this->assertEquals('/api/v1/bookmarks/1', $response->getHeader('Location')[0]);
276 $data = json_decode((string) $response->getBody(), true);
277 $this->assertEquals(self::NB_FIELDS_LINK, count($data));
278 $this->assertEquals(['one', 'two'], $data['tags']);
279 }
232} 280}