+
+
{{ 'profile.notes.modal'|trans }}
{{ 'profile.notes.delete'|trans }}
- {{ note.comment|purify|truncate(150) }}
-
+ {% if preview is not empty %}
+
{{ preview }}
+
+ {% endif %}
+ {% block modals %}
+ {% endblock modals %}
{% endblock content %}
diff --git a/tests/Controller/NoteControllerTest.php b/tests/Controller/NoteControllerTest.php
new file mode 100644
index 000000000..84c3aa0a0
--- /dev/null
+++ b/tests/Controller/NoteControllerTest.php
@@ -0,0 +1,82 @@
+getEntityManager();
+ $owner = $this->reloadMember('member-2');
+ $contact = $this->reloadMember('member-5');
+ $note = $this->createImageNote($entityManager, $owner, $contact);
+
+ try {
+ $this->loginMember($client, $owner);
+
+ $crawler = $client->request('GET', '/members/' . $owner->getUsername() . '/notes');
+
+ $this->assertResponseIsSuccessful();
+ $trigger = $crawler->filter('[data-micromodal-trigger="note-delete-' . $note->getId() . '"]');
+ self::assertCount(1, $trigger);
+
+ $modal = $crawler->filter('#note-delete-' . $note->getId());
+ self::assertCount(1, $modal);
+ self::assertSame('true', $modal->attr('aria-hidden'));
+ self::assertStringContainsString('This is a test note.', $modal->text());
+ self::assertCount(0, $modal->filter('img'));
+ self::assertCount(0, $modal->filter('figure'));
+ } finally {
+ $entityManager->remove($note);
+ $entityManager->flush();
+ }
+ }
+
+ private function createImageNote(EntityManagerInterface $entityManager, Member $owner, Member $contact): ProfileNote
+ {
+ $note = new ProfileNote();
+ $note->setOwner($owner);
+ $note->setMember($contact);
+ $note->setCategory('Issue 344 regression');
+ $note->setComment(
+ '

'
+ . '
This is a test note.
'
+ . '

'
+ );
+ $entityManager->persist($note);
+ $entityManager->flush();
+
+ return $note;
+ }
+
+ private function loginMember(KernelBrowser $client, Member $member): void
+ {
+ $client->loginUser($member);
+ }
+
+ private function reloadMember(string $username): Member
+ {
+ $entityManager = $this->getEntityManager();
+ $member = $entityManager->getRepository(Member::class)->findOneBy(['username' => $username]);
+ $this->assertInstanceOf(Member::class, $member);
+
+ return $member;
+ }
+
+ private function getEntityManager(): EntityManagerInterface
+ {
+ return static::getContainer()->get(EntityManagerInterface::class);
+ }
+}