Passed
Pull Request — master (#25)
by
unknown
03:27
created
tests/AkismetTest.php 2 patches
Indentation   +131 added lines, -131 removed lines patch added patch discarded remove patch
@@ -15,135 +15,135 @@
 block discarded – undo
15 15
 
16 16
 class AkismetTest extends FunctionalTest
17 17
 {
18
-    protected static $extra_dataobjects = [AkismetTestSubmission::class];
19
-
20
-    protected $usesDatabase = true;
21
-
22
-    protected static $required_extensions = [
23
-        SiteConfig::class => [
24
-            AkismetConfig::class,
25
-        ],
26
-    ];
27
-
28
-    protected static $extra_controllers = [
29
-        AkismetTestController::class,
30
-    ];
31
-
32
-    protected function setUp()
33
-    {
34
-        parent::setUp();
35
-        Injector::inst()->unregisterObjects(AkismetService::class);
36
-
37
-        // Mock service
38
-        Config::modify()->set(Injector::class, AkismetService::class, AkismetTestService::class);
39
-        Config::modify()->set(AkismetSpamProtector::class, 'api_key', 'dummykey');
40
-
41
-        // Reset options to reasonable default
42
-        Config::modify()->remove(AkismetSpamProtector::class, 'save_spam');
43
-        Config::modify()->remove(AkismetSpamProtector::class, 'require_confirmation');
44
-        Config::modify()->remove(AkismetSpamProtector::class, 'bypass_members');
45
-        Config::modify()->set(AkismetSpamProtector::class, 'bypass_permission', 'ADMIN');
46
-    }
47
-
48
-    public function testSpamDetectionForm()
49
-    {
50
-        // Test "nice" setting
51
-        $result = $this->post('AkismetTestController/Form', array(
52
-            'Name' => 'person',
53
-            'Email' => '[email protected]',
54
-            'Content' => 'what a nice comment',
55
-            'action_doSubmit' => 'Submit',
56
-        ));
57
-
58
-        $this->assertContains('Thanks for your submission, person', $result->getBody());
59
-        $saved = AkismetTestSubmission::get()->last();
60
-        $this->assertNotEmpty($saved);
61
-        $this->assertEquals('person', $saved->Name);
62
-        $this->assertEquals('[email protected]', $saved->Email);
63
-        $this->assertEquals('what a nice comment', $saved->Content);
64
-        $this->assertEquals(false, (bool)$saved->IsSpam);
65
-        $saved->delete();
66
-
67
-        // Test failed setting
68
-        $result = $this->post('AkismetTestController/Form', array(
69
-            'Name' => 'spam',
70
-            'Email' => '[email protected]',
71
-            'Content' => 'spam',
72
-            'action_doSubmit' => 'Submit',
73
-        ));
74
-
75
-        $errorMessage = _t(
76
-            'SilverStripe\\Akismet\\AkismetField.SPAM',
77
-            "Your submission has been rejected because it was treated as spam."
78
-        );
79
-        $this->assertContains($errorMessage, $result->getBody());
80
-        $saved = AkismetTestSubmission::get()->last();
81
-        $this->assertEmpty($saved);
82
-    }
83
-
84
-    public function testSaveSpam()
85
-    {
86
-        Config::modify()->set(AkismetSpamProtector::class, 'save_spam', true);
87
-
88
-        // Test "nice" setting
89
-        $result = $this->post('AkismetTestController/Form', array(
90
-            'Name' => 'person',
91
-            'Email' => '[email protected]',
92
-            'Content' => 'what a nice comment',
93
-            'action_doSubmit' => 'Submit',
94
-        ));
95
-
96
-        $this->assertContains('Thanks for your submission, person', $result->getBody());
97
-        $saved = AkismetTestSubmission::get()->last();
98
-        $this->assertNotEmpty($saved);
99
-        $this->assertEquals('person', $saved->Name);
100
-        $this->assertEquals('[email protected]', $saved->Email);
101
-        $this->assertEquals('what a nice comment', $saved->Content);
102
-        $this->assertEquals(false, (bool)$saved->IsSpam);
103
-        $saved->delete();
104
-
105
-        $this->markTestIncomplete('@todo fix form validation message in AkismetField');
106
-
107
-        // Test failed setting
108
-        $result = $this->post('AkismetTestController/Form', array(
109
-            'Name' => 'spam',
110
-            'Email' => '[email protected]',
111
-            'Content' => 'spam',
112
-            'action_doSubmit' => 'Submit',
113
-        ));
114
-
115
-        $errorMessage = _t(
116
-            'SilverStripe\\Akismet\\AkismetField.SPAM',
117
-            "Your submission has been rejected because it was treated as spam."
118
-        );
119
-        $this->assertContains($errorMessage, $result->getBody());
120
-        $saved = AkismetTestSubmission::get()->last();
121
-        $this->assertNotEmpty($saved);
122
-        $this->assertEquals('spam', $saved->Name);
123
-        $this->assertEquals('[email protected]', $saved->Email);
124
-        $this->assertEquals('spam', $saved->Content);
125
-        $this->assertEquals(true, (bool)$saved->IsSpam);
126
-    }
127
-
128
-    /**
129
-     * Test that the request processor can safely activate when able (and only then)
130
-     */
131
-    public function testProcessor()
132
-    {
133
-        $siteconfig = SiteConfig::current_site_config();
134
-        $siteconfig->write();
135
-
136
-        // Test assignment via request filter
137
-        $processor = new AkismetTestTestMiddleware();
138
-        $this->assertTrue($processor->publicIsDBReady());
139
-
140
-        try {
141
-            // Remove AkismetKey field
142
-            $siteconfigTable = DataObject::getSchema()->tableName(SiteConfig::class);
143
-            DB::query('ALTER TABLE "' . $siteconfigTable . '" DROP COLUMN "AkismetKey"');
144
-        } catch (DatabaseException $e) {
145
-            $this->markTestSkipped('Could not DROP database column');
146
-        }
147
-        $this->assertFalse($processor->publicIsDBReady());
148
-    }
18
+	protected static $extra_dataobjects = [AkismetTestSubmission::class];
19
+
20
+	protected $usesDatabase = true;
21
+
22
+	protected static $required_extensions = [
23
+		SiteConfig::class => [
24
+			AkismetConfig::class,
25
+		],
26
+	];
27
+
28
+	protected static $extra_controllers = [
29
+		AkismetTestController::class,
30
+	];
31
+
32
+	protected function setUp()
33
+	{
34
+		parent::setUp();
35
+		Injector::inst()->unregisterObjects(AkismetService::class);
36
+
37
+		// Mock service
38
+		Config::modify()->set(Injector::class, AkismetService::class, AkismetTestService::class);
39
+		Config::modify()->set(AkismetSpamProtector::class, 'api_key', 'dummykey');
40
+
41
+		// Reset options to reasonable default
42
+		Config::modify()->remove(AkismetSpamProtector::class, 'save_spam');
43
+		Config::modify()->remove(AkismetSpamProtector::class, 'require_confirmation');
44
+		Config::modify()->remove(AkismetSpamProtector::class, 'bypass_members');
45
+		Config::modify()->set(AkismetSpamProtector::class, 'bypass_permission', 'ADMIN');
46
+	}
47
+
48
+	public function testSpamDetectionForm()
49
+	{
50
+		// Test "nice" setting
51
+		$result = $this->post('AkismetTestController/Form', array(
52
+			'Name' => 'person',
53
+			'Email' => '[email protected]',
54
+			'Content' => 'what a nice comment',
55
+			'action_doSubmit' => 'Submit',
56
+		));
57
+
58
+		$this->assertContains('Thanks for your submission, person', $result->getBody());
59
+		$saved = AkismetTestSubmission::get()->last();
60
+		$this->assertNotEmpty($saved);
61
+		$this->assertEquals('person', $saved->Name);
62
+		$this->assertEquals('[email protected]', $saved->Email);
63
+		$this->assertEquals('what a nice comment', $saved->Content);
64
+		$this->assertEquals(false, (bool)$saved->IsSpam);
65
+		$saved->delete();
66
+
67
+		// Test failed setting
68
+		$result = $this->post('AkismetTestController/Form', array(
69
+			'Name' => 'spam',
70
+			'Email' => '[email protected]',
71
+			'Content' => 'spam',
72
+			'action_doSubmit' => 'Submit',
73
+		));
74
+
75
+		$errorMessage = _t(
76
+			'SilverStripe\\Akismet\\AkismetField.SPAM',
77
+			"Your submission has been rejected because it was treated as spam."
78
+		);
79
+		$this->assertContains($errorMessage, $result->getBody());
80
+		$saved = AkismetTestSubmission::get()->last();
81
+		$this->assertEmpty($saved);
82
+	}
83
+
84
+	public function testSaveSpam()
85
+	{
86
+		Config::modify()->set(AkismetSpamProtector::class, 'save_spam', true);
87
+
88
+		// Test "nice" setting
89
+		$result = $this->post('AkismetTestController/Form', array(
90
+			'Name' => 'person',
91
+			'Email' => '[email protected]',
92
+			'Content' => 'what a nice comment',
93
+			'action_doSubmit' => 'Submit',
94
+		));
95
+
96
+		$this->assertContains('Thanks for your submission, person', $result->getBody());
97
+		$saved = AkismetTestSubmission::get()->last();
98
+		$this->assertNotEmpty($saved);
99
+		$this->assertEquals('person', $saved->Name);
100
+		$this->assertEquals('[email protected]', $saved->Email);
101
+		$this->assertEquals('what a nice comment', $saved->Content);
102
+		$this->assertEquals(false, (bool)$saved->IsSpam);
103
+		$saved->delete();
104
+
105
+		$this->markTestIncomplete('@todo fix form validation message in AkismetField');
106
+
107
+		// Test failed setting
108
+		$result = $this->post('AkismetTestController/Form', array(
109
+			'Name' => 'spam',
110
+			'Email' => '[email protected]',
111
+			'Content' => 'spam',
112
+			'action_doSubmit' => 'Submit',
113
+		));
114
+
115
+		$errorMessage = _t(
116
+			'SilverStripe\\Akismet\\AkismetField.SPAM',
117
+			"Your submission has been rejected because it was treated as spam."
118
+		);
119
+		$this->assertContains($errorMessage, $result->getBody());
120
+		$saved = AkismetTestSubmission::get()->last();
121
+		$this->assertNotEmpty($saved);
122
+		$this->assertEquals('spam', $saved->Name);
123
+		$this->assertEquals('[email protected]', $saved->Email);
124
+		$this->assertEquals('spam', $saved->Content);
125
+		$this->assertEquals(true, (bool)$saved->IsSpam);
126
+	}
127
+
128
+	/**
129
+	 * Test that the request processor can safely activate when able (and only then)
130
+	 */
131
+	public function testProcessor()
132
+	{
133
+		$siteconfig = SiteConfig::current_site_config();
134
+		$siteconfig->write();
135
+
136
+		// Test assignment via request filter
137
+		$processor = new AkismetTestTestMiddleware();
138
+		$this->assertTrue($processor->publicIsDBReady());
139
+
140
+		try {
141
+			// Remove AkismetKey field
142
+			$siteconfigTable = DataObject::getSchema()->tableName(SiteConfig::class);
143
+			DB::query('ALTER TABLE "' . $siteconfigTable . '" DROP COLUMN "AkismetKey"');
144
+		} catch (DatabaseException $e) {
145
+			$this->markTestSkipped('Could not DROP database column');
146
+		}
147
+		$this->assertFalse($processor->publicIsDBReady());
148
+	}
149 149
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -61,7 +61,7 @@  discard block
 block discarded – undo
61 61
         $this->assertEquals('person', $saved->Name);
62 62
         $this->assertEquals('[email protected]', $saved->Email);
63 63
         $this->assertEquals('what a nice comment', $saved->Content);
64
-        $this->assertEquals(false, (bool)$saved->IsSpam);
64
+        $this->assertEquals(false, (bool) $saved->IsSpam);
65 65
         $saved->delete();
66 66
 
67 67
         // Test failed setting
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
         $this->assertEquals('person', $saved->Name);
100 100
         $this->assertEquals('[email protected]', $saved->Email);
101 101
         $this->assertEquals('what a nice comment', $saved->Content);
102
-        $this->assertEquals(false, (bool)$saved->IsSpam);
102
+        $this->assertEquals(false, (bool) $saved->IsSpam);
103 103
         $saved->delete();
104 104
 
105 105
         $this->markTestIncomplete('@todo fix form validation message in AkismetField');
@@ -122,7 +122,7 @@  discard block
 block discarded – undo
122 122
         $this->assertEquals('spam', $saved->Name);
123 123
         $this->assertEquals('[email protected]', $saved->Email);
124 124
         $this->assertEquals('spam', $saved->Content);
125
-        $this->assertEquals(true, (bool)$saved->IsSpam);
125
+        $this->assertEquals(true, (bool) $saved->IsSpam);
126 126
     }
127 127
 
128 128
     /**
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
         try {
141 141
             // Remove AkismetKey field
142 142
             $siteconfigTable = DataObject::getSchema()->tableName(SiteConfig::class);
143
-            DB::query('ALTER TABLE "' . $siteconfigTable . '" DROP COLUMN "AkismetKey"');
143
+            DB::query('ALTER TABLE "'.$siteconfigTable.'" DROP COLUMN "AkismetKey"');
144 144
         } catch (DatabaseException $e) {
145 145
             $this->markTestSkipped('Could not DROP database column');
146 146
         }
Please login to merge, or discard this patch.