From 21178d9a1f9892040734645d4954aa029a111c63 Mon Sep 17 00:00:00 2001 From: Skylar Sadlier Date: Sat, 14 Oct 2023 14:23:47 -0600 Subject: [PATCH] Make domain CRUD pages look a little better --- templates/domain/_delete_form.html.twig | 2 +- templates/domain/_form.html.twig | 4 +- templates/domain/edit.html.twig | 2 +- templates/domain/new.html.twig | 2 +- tests/Controller/DomainControllerTest.php | 137 ++++++++++++++++++++++ 5 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 tests/Controller/DomainControllerTest.php diff --git a/templates/domain/_delete_form.html.twig b/templates/domain/_delete_form.html.twig index 39ab091..23a60aa 100644 --- a/templates/domain/_delete_form.html.twig +++ b/templates/domain/_delete_form.html.twig @@ -1,4 +1,4 @@
- +
diff --git a/templates/domain/_form.html.twig b/templates/domain/_form.html.twig index bf20b98..8d10c5f 100644 --- a/templates/domain/_form.html.twig +++ b/templates/domain/_form.html.twig @@ -1,4 +1,4 @@ -{{ form_start(form) }} +{{ form_start(form, { 'attr' : { 'class': 'mb-3' } }) }} {{ form_widget(form) }} - + {{ form_end(form) }} diff --git a/templates/domain/edit.html.twig b/templates/domain/edit.html.twig index b547d50..4ddabc0 100644 --- a/templates/domain/edit.html.twig +++ b/templates/domain/edit.html.twig @@ -7,7 +7,7 @@ {{ include('domain/_form.html.twig', {'button_label': 'Update'}) }} - back to list + Cancel {{ include('domain/_delete_form.html.twig') }} {% endblock %} diff --git a/templates/domain/new.html.twig b/templates/domain/new.html.twig index fc61541..0602acf 100644 --- a/templates/domain/new.html.twig +++ b/templates/domain/new.html.twig @@ -7,5 +7,5 @@ {{ include('domain/_form.html.twig') }} - back to list + Cancel {% endblock %} diff --git a/tests/Controller/DomainControllerTest.php b/tests/Controller/DomainControllerTest.php new file mode 100644 index 0000000..235153f --- /dev/null +++ b/tests/Controller/DomainControllerTest.php @@ -0,0 +1,137 @@ +client = static::createClient(); + $this->repository = static::getContainer()->get('doctrine')->getRepository(Domain::class); + + foreach ($this->repository->findAll() as $object) { + $this->manager->remove($object); + } + } + + public function testIndex(): void + { + $crawler = $this->client->request('GET', $this->path); + + self::assertResponseStatusCodeSame(200); + self::assertPageTitleContains('Domain index'); + + // Use the $crawler to perform additional assertions e.g. + // self::assertSame('Some text on the page', $crawler->filter('.p')->first()); + } + + public function testNew(): void + { + $originalNumObjectsInRepository = count($this->repository->findAll()); + + $this->markTestIncomplete(); + $this->client->request('GET', sprintf('%snew', $this->path)); + + self::assertResponseStatusCodeSame(200); + + $this->client->submitForm('Save', [ + 'domain[domain]' => 'Testing', + 'domain[name]' => 'Testing', + 'domain[enabled]' => 'Testing', + 'domain[defaultSortPolicy]' => 'Testing', + ]); + + self::assertResponseRedirects('/domain/'); + + self::assertSame($originalNumObjectsInRepository + 1, count($this->repository->findAll())); + } + + public function testShow(): void + { + $this->markTestIncomplete(); + $fixture = new Domain(); + $fixture->setDomain('localhost'); + $fixture->setName('My Title'); + $fixture->setEnabled(true); + $fixture->setDefaultSortPolicy(Domain::SORT_POLICIES[0]); + + $this->manager->persist($fixture); + $this->manager->flush(); + + $this->client->request('GET', sprintf('%s%s', $this->path, $fixture->getId())); + + self::assertResponseStatusCodeSame(200); + self::assertPageTitleContains('Domain'); + + // Use assertions to check that the properties are properly displayed. + } + + public function testEdit(): void + { + $this->markTestIncomplete(); + $fixture = new Domain(); + $fixture->setDomain('localhost'); + $fixture->setName('My Title'); + $fixture->setEnabled(true); + $fixture->setDefaultSortPolicy(Domain::SORT_POLICIES[0]); + + $this->manager->persist($fixture); + $this->manager->flush(); + + $this->client->request('GET', sprintf('%s%s/edit', $this->path, $fixture->getId())); + + $this->client->submitForm('Update', [ + 'domain[domain]' => 'example.com', + 'domain[name]' => 'Something New', + 'domain[enabled]' => false, + 'domain[defaultSortPolicy]' => Domain::SORT_POLICIES[1], + ]); + + self::assertResponseRedirects('/domain/'); + + $fixture = $this->repository->findAll(); + + self::assertSame('example.com', $fixture[0]->getDomain()); + self::assertSame('Something New', $fixture[0]->getName()); + self::assertSame(false, $fixture[0]->getEnabled()); + self::assertSame(Domain::SORT_POLICIES[1], $fixture[0]->getDefaultSortPolicy()); + } + + public function testRemove(): void + { + $this->markTestIncomplete(); + + $originalNumObjectsInRepository = count($this->repository->findAll()); + + $fixture = new Domain(); + $fixture->setDomain('My Title'); + $fixture->setOwnerToken('My Title'); + $fixture->setName('My Title'); + $fixture->setEnabled('My Title'); + $fixture->setDefaultSortPolicy('My Title'); + $fixture->setUpdatedAt('My Title'); + $fixture->setCreatedAt('My Title'); + + $this->manager->persist($fixture); + $this->manager->flush(); + + self::assertSame($originalNumObjectsInRepository + 1, count($this->repository->findAll())); + + $this->client->request('GET', sprintf('%s%s', $this->path, $fixture->getId())); + $this->client->submitForm('Delete'); + + self::assertSame($originalNumObjectsInRepository, count($this->repository->findAll())); + self::assertResponseRedirects('/domain/'); + } +}