Fix a bug preventing to edit bookmark with ID #0

This commit is contained in:
ArthurHoaro 2020-09-30 15:31:34 +02:00
parent 95158e7565
commit 80a3efe116
2 changed files with 25 additions and 1 deletions

View file

@ -127,7 +127,7 @@ class ManageShaareController extends ShaarliAdminController
$this->checkToken($request);
// lf_id should only be present if the link exists.
$id = $request->getParam('lf_id') ? intval(escape($request->getParam('lf_id'))) : null;
$id = $request->getParam('lf_id') !== null ? intval(escape($request->getParam('lf_id'))) : null;
if (null !== $id && true === $this->container->bookmarkService->exists($id)) {
// Edit
$bookmark = $this->container->bookmarkService->get($id);

View file

@ -238,6 +238,30 @@ class SaveBookmarkTest extends TestCase
static::assertSame(302, $result->getStatusCode());
}
/**
* Test save a bookmark - with ID #0
*/
public function testSaveBookmarkWithIdZero(): void
{
$parameters = ['lf_id' => '0'];
$request = $this->createMock(Request::class);
$request
->method('getParam')
->willReturnCallback(function (string $key) use ($parameters): ?string {
return $parameters[$key] ?? null;
})
;
$response = new Response();
$this->container->bookmarkService->expects(static::once())->method('exists')->with(0)->willReturn(true);
$this->container->bookmarkService->expects(static::once())->method('get')->with(0)->willReturn(new Bookmark());
$result = $this->controller->save($request, $response);
static::assertSame(302, $result->getStatusCode());
}
/**
* Change the password with a wrong existing password
*/