diff --git a/config/Migrations/20260123091420_AlterContactUsFormSubmissionsKeywords.php b/config/Migrations/20260123091420_AlterContactUsFormSubmissionsKeywords.php
new file mode 100644
index 0000000..37916bd
--- /dev/null
+++ b/config/Migrations/20260123091420_AlterContactUsFormSubmissionsKeywords.php
@@ -0,0 +1,50 @@
+table('contact_us_form_submissions');
+ if ($table->hasColumn('subject')) {
+ $table->renameColumn('subject', 'contact_subject');
+ }
+ if ($table->hasColumn('name')) {
+ $table->renameColumn('name', 'first_name');
+ }
+ $table->addColumn('last_name', 'string', [
+ 'limit' => 255,
+ 'default' => null,
+ 'null' => true,
+ ]);
+ $table->update();
+ }
+
+ /**
+ * down Method.
+ *
+ * More information on this method is available here:
+ * https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
+ * @return void
+ */
+ public function down(): void {
+ $table = $this->table('contact_us_form_submissions');
+ if ($table->hasColumn('contact_subject')) {
+ $table->renameColumn('contact_subject', 'subject');
+ }
+ if ($table->hasColumn('fist_name')) {
+ $table->renameColumn('fist_name', 'name');
+ }
+ $table->removeColumn('last_name');
+ $table->update();
+ }
+
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index d4da298..69da4f4 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -8,11 +8,12 @@
+
-
+
tests/TestCase/
diff --git a/src/Model/Entity/ContactUsFormSubmission.php b/src/Model/Entity/ContactUsFormSubmission.php
index 9a72bca..1688aea 100644
--- a/src/Model/Entity/ContactUsFormSubmission.php
+++ b/src/Model/Entity/ContactUsFormSubmission.php
@@ -13,7 +13,7 @@ use Cake\ORM\Entity;
* @property string $client_ip
* @property string $name
* @property string|null $email
- * @property string|null $subject
+ * @property string|null $contact_subject
* @property string $message
* @property \Cake\I18n\DateTime|null $confirm_email_sent
* @property \Cake\I18n\DateTime|null $backend_email_sent
@@ -34,7 +34,7 @@ class ContactUsFormSubmission extends Entity {
'client_ip' => true,
'name' => true,
'email' => true,
- 'subject' => true,
+ 'contact_subject' => true,
'message' => true,
'confirm_email_sent' => true,
'backend_email_sent' => true,
diff --git a/src/Model/Table/ContactUsFormSubmissionsTable.php b/src/Model/Table/ContactUsFormSubmissionsTable.php
index 93f7be2..d738ce1 100644
--- a/src/Model/Table/ContactUsFormSubmissionsTable.php
+++ b/src/Model/Table/ContactUsFormSubmissionsTable.php
@@ -82,14 +82,14 @@ class ContactUsFormSubmissionsTable extends Table {
$validator->allowEmptyString('email');
}
- // subject
+ // contact_subject
$validator
- ->scalar('subject')
- ->maxLength('subject', 255);
+ ->scalar('contact_subject')
+ ->maxLength('contact_subject', 255);
if ($fields['subject'] ?? false) {
- $validator->notEmptyString('subject');
+ $validator->notEmptyString('contact_subject');
} else {
- $validator->allowEmptyString('subject');
+ $validator->allowEmptyString('contact_subject');
}
$validator
diff --git a/tests/Fixture/ContactUsFormSubmissionsFixture.php b/tests/Fixture/ContactUsFormSubmissionsFixture.php
index 9e2e53b..1dad8fb 100644
--- a/tests/Fixture/ContactUsFormSubmissionsFixture.php
+++ b/tests/Fixture/ContactUsFormSubmissionsFixture.php
@@ -10,25 +10,15 @@ use Cake\TestSuite\Fixture\TestFixture;
*/
class ContactUsFormSubmissionsFixture extends TestFixture {
+ public string $table = 'contact_us_form_submissions';
+
/**
* Init method
*
* @return void
*/
public function init(): void {
- $this->records = [
- [
- 'id' => '76fbe7fb-1949-4670-a3d2-c0b48eb98e8d',
- 'submitted_at' => '2025-01-03 09:16:50',
- 'client_ip' => 'Lorem ipsum dolor sit amet',
- 'name' => 'Lorem ipsum dolor sit amet',
- 'email' => 'Lorem ipsum dolor sit amet',
- 'subject' => 'Lorem ipsum dolor sit amet',
- 'message' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.',
- 'confirm_email_sent' => '2025-01-03 09:16:50',
- 'backend_email_sent' => '2025-01-03 09:16:50',
- ],
- ];
+ $this->records = [];
parent::init();
}
diff --git a/tests/TestCase/Controller/Component/ContactUsComponentTest.php b/tests/TestCase/Controller/Component/ContactUsComponentTest.php
index 4304849..a107101 100644
--- a/tests/TestCase/Controller/Component/ContactUsComponentTest.php
+++ b/tests/TestCase/Controller/Component/ContactUsComponentTest.php
@@ -14,19 +14,20 @@ use CakeContactUs\Model\Entity\ContactUsFormSubmission;
* CakeContactUs\Controller\Component\ContactUsComponent Test Case
*/
class ContactUsComponentTest extends TestCase {
-
- protected ContactUsComponent $component;
- protected Controller $controller;
-
- /**
+
+ protected ContactUsComponent $component;
+
+ protected Controller $controller;
+
+ /**
* Fixtures
*
* @var array
*/
- protected array $fixtures = [
- 'plugin.CakeContactUs.ContactUsFormSubmissions',
- ];
-
+ protected array $fixtures = [
+ 'plugin.CakeContactUs.ContactUsFormSubmissions',
+ ];
+
/**
* setUp method
*
@@ -34,11 +35,11 @@ class ContactUsComponentTest extends TestCase {
*/
protected function setUp(): void {
parent::setUp();
- $request = new ServerRequest();
- $this->controller = new Controller($request);
- $registry = new ComponentRegistry($this->controller);
-
- $this->component = new ContactUsComponent($registry);
+ $request = new ServerRequest();
+ $this->controller = new Controller($request);
+ $registry = new ComponentRegistry($this->controller);
+
+ $this->component = new ContactUsComponent($registry);
}
/**
@@ -51,27 +52,34 @@ class ContactUsComponentTest extends TestCase {
parent::tearDown();
}
-
- public function testNewContactUsFormWithoutCaptcha()
- {
- $this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
- }
-
- public function testNewContactUsFormWithCaptcha()
- {
- $this->component->setConfig('requireCaptcha', true);
- $this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
- }
- public function testProcessContactUsFormSaved()
- {
- $numSubmissionsBefore = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
- $result = $this->component->processContactUsForm($this->component->newContactUsForm(), [
- 'name' => 'Jane Doe',
- 'email' => 'test@example.com',
- ]);
- $this->assertNotInstanceOf(ContactUsFormSubmission::class, $result);
- $numSubmissionsAfter = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
- $this->assertEquals($numSubmissionsBefore + 1, $numSubmissionsAfter);
- }
+ /**
+ * @return void
+ */
+ public function testNewContactUsFormWithoutCaptcha() {
+ $this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
+ }
+
+ /**
+ * @return void
+ */
+ public function testNewContactUsFormWithCaptcha() {
+ $this->component->setConfig('requireCaptcha', true);
+ $this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
+ }
+
+ /**
+ * @return void
+ */
+ public function testProcessContactUsFormSaved() {
+ $numSubmissionsBefore = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
+ $result = $this->component->processContactUsForm($this->component->newContactUsForm(), [
+ 'name' => 'Jane Doe',
+ 'email' => 'test@example.com',
+ ]);
+ $this->assertNotInstanceOf(ContactUsFormSubmission::class, $result);
+ $numSubmissionsAfter = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
+ $this->assertEquals($numSubmissionsBefore + 1, $numSubmissionsAfter);
+ }
+
}
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index aa07675..fc0e90b 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -141,6 +141,7 @@ ConnectionManager::setConfig('test', [
'timezone' => 'UTC',
'quoteIdentifiers' => false,
'cacheMetadata' => true,
+ 'log' => true,
]);
/**
@@ -156,16 +157,20 @@ ConnectionManager::setConfig('test', [
// Load a schema dump file.
//(new SchemaLoader())->loadSqlFiles('tests/schema.sql', 'test');
if (!defined('SECOND')) {
- define('SECOND', 1);
- define('MINUTE', 60);
- define('HOUR', 3600);
- define('DAY', 86400);
- define('WEEK', 604800);
- define('MONTH', 2592000);
- define('YEAR', 31536000);
+ define('SECOND', 1);
+ define('MINUTE', 60);
+ define('HOUR', 3600);
+ define('DAY', 86400);
+ define('WEEK', 604800);
+ define('MONTH', 2592000);
+ define('YEAR', 31536000);
}
-
$migrator = new Migrator();
-$migrator->run(['plugin' => 'CakeContactUs']);
-$migrator->run(['plugin' => 'Captcha']);
+$migrator->runMany([
+ // Run app migrations on test connection.
+ ['connection' => 'test'],
+ // Run plugin migrations on test connection.
+ ['plugin' => 'CakeContactUs'],
+ ['plugin' => 'Captcha'],
+]);