diff --git a/code/EditableSpamProtectionField.php b/code/EditableSpamProtectionField.php index 24a89e7..bc68ebf 100644 --- a/code/EditableSpamProtectionField.php +++ b/code/EditableSpamProtectionField.php @@ -134,12 +134,12 @@ if (class_exists('EditableFormField')) { * Using custom validateField method * as Spam Protection Field implementations may have their own error messages * and may not be based on the field being required, e.g. Honeypot Field - * + * * @param array $data * @param Form $form * @return void */ - public function validateField($data, $form) + public function validateField($data, $form) { $formField = $this->getFormField(); $formField->setForm($form); diff --git a/code/SpamProtectorManager.php b/code/SpamProtectorManager.php index 319f38d..00eb646 100644 --- a/code/SpamProtectorManager.php +++ b/code/SpamProtectorManager.php @@ -1,6 +1,6 @@ enableSpamProtection() for adding spamprotection' ); diff --git a/code/extensions/CommentSpamProtection.php b/code/extensions/CommentSpamProtection.php index e5aca62..453707d 100644 --- a/code/extensions/CommentSpamProtection.php +++ b/code/extensions/CommentSpamProtection.php @@ -1,4 +1,4 @@ -markTestSkipped('"userforms" module not installed'); + } + Config::inst()->update( - 'FormSpamProtectionExtension', 'default_spam_protector', + 'FormSpamProtectionExtension', + 'default_spam_protector', 'EditableSpamProtectionFieldTest_Protector' ); } public function testValidateFieldDoesntAddErrorOnSuccess() { - if (!class_exists('EditableSpamProtectionField')) { - $this->markTestSkipped('"userforms" module not installed'); - } - $formMock = $this->getFormMock(); $formFieldMock = $this->getEditableFormFieldMock(); @@ -39,10 +40,6 @@ class EditableSpamProtectionFieldTest extends SapphireTest public function testValidateFieldAddsErrorFromField() { - if (!class_exists('EditableSpamProtectionField')) { - $this->markTestSkipped('"userforms" module not installed'); - } - $formMock = $this->getFormMock(); $formFieldMock = $this->getEditableFormFieldMock(); @@ -57,17 +54,14 @@ class EditableSpamProtectionFieldTest extends SapphireTest $formMock ->expects($this->once()) ->method('addErrorMessage') - ->with($this->anything(), $this->stringContains('some field message'), $this->anything(), $this->anything());; + ->with($this->anything(), $this->stringContains('some field message'), $this->anything(), $this->anything()); + ; $formFieldMock->validateField(array('MyField' => null), $formMock); } public function testValidateFieldAddsDefaultError() { - if (!class_exists('EditableSpamProtectionField')) { - $this->markTestSkipped('"userforms" module not installed'); - } - $formMock = $this->getFormMock(); $formFieldMock = $this->getEditableFormFieldMock(); @@ -119,17 +113,4 @@ class EditableSpamProtectionFieldTest extends SapphireTest return $editableFormFieldMock; } - -} - -class EditableSpamProtectionFieldTest_Protector implements SpamProtector, TestOnly -{ - public function getFormField($name = null, $title = null, $value = null) - { - return new TextField($name, 'Foo', $value); - } - - public function setFieldMapping($fieldMapping) - { - } } diff --git a/tests/FormSpamProtectionExtensionTest.php b/tests/FormSpamProtectionExtensionTest.php index 91111b5..0ed82c3 100644 --- a/tests/FormSpamProtectionExtensionTest.php +++ b/tests/FormSpamProtectionExtensionTest.php @@ -11,7 +11,7 @@ class FormSpamProtectionExtensionTest extends SapphireTest * @var Form */ protected $form = null; - + public function setUp() { parent::setUp(); @@ -20,15 +20,15 @@ class FormSpamProtectionExtensionTest extends SapphireTest new TextField('Title'), new TextField('Comment'), new TextField('URL') - ), new FieldList() - ); + ), new FieldList()); $this->form->disableSecurityToken(); } public function testEnableSpamProtection() { Config::inst()->update( - 'FormSpamProtectionExtension', 'default_spam_protector', + 'FormSpamProtectionExtension', + 'default_spam_protector', 'FormSpamProtectionExtensionTest_FooProtector' ); @@ -52,7 +52,7 @@ class FormSpamProtectionExtensionTest extends SapphireTest 'protector' => 'FormSpamProtectionExtensionTest_BarProtector', 'title' => 'Baz', )); - + $this->assertEquals('Baz', $form->Fields()->fieldByName('Captcha')->Title()); } @@ -66,28 +66,28 @@ class FormSpamProtectionExtensionTest extends SapphireTest $this->assertEquals('Qux', $form->Fields()->fieldByName('Borris')->Title()); } - + public function testInsertBefore() { $form = $this->form->enableSpamProtection(array( 'protector' => 'FormSpamProtectionExtensionTest_FooProtector', 'insertBefore' => 'URL' )); - + $fields = $form->Fields(); $this->assertEquals('Title', $fields[0]->Title()); $this->assertEquals('Comment', $fields[1]->Title()); $this->assertEquals('Foo', $fields[2]->Title()); $this->assertEquals('URL', $fields[3]->Title()); } - + public function testInsertBeforeMissing() { $form = $this->form->enableSpamProtection(array( 'protector' => 'FormSpamProtectionExtensionTest_FooProtector', 'insertBefore' => 'NotAField' )); - + // field should default to the end instead $fields = $form->Fields(); $this->assertEquals('Title', $fields[0]->Title()); @@ -96,49 +96,3 @@ class FormSpamProtectionExtensionTest extends SapphireTest $this->assertEquals('Foo', $fields[3]->Title()); } } - -/** - * @package spamprotection - */ -class FormSpamProtectionExtensionTest_BazProtector implements SpamProtector, TestOnly -{ - public function getFormField($name = null, $title = null, $value = null) - { - return new TextField($name, $title, $value); - } - - public function setFieldMapping($fieldMapping) - { - } -} - -/** - * @package spamprotection - */ -class FormSpamProtectionExtensionTest_BarProtector implements SpamProtector, TestOnly -{ - public function getFormField($name = null, $title = null, $value = null) - { - $title = $title ?: 'Bar'; - return new TextField($name, $title, $value); - } - - public function setFieldMapping($fieldMapping) - { - } -} - -/** - * @package spamprotection - */ -class FormSpamProtectionExtensionTest_FooProtector implements SpamProtector, TestOnly -{ - public function getFormField($name = null, $title = null, $value = null) - { - return new TextField($name, 'Foo', $value); - } - - public function setFieldMapping($fieldMapping) - { - } -} diff --git a/tests/Stub/EditableSpamProtectionFieldTest_Protector.php b/tests/Stub/EditableSpamProtectionFieldTest_Protector.php new file mode 100644 index 0000000..eead4e5 --- /dev/null +++ b/tests/Stub/EditableSpamProtectionFieldTest_Protector.php @@ -0,0 +1,13 @@ +