1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace SilverStripe\Akismet\Tests; |
4
|
|
|
|
5
|
|
|
use SilverStripe\Akismet\AkismetSpamProtector; |
6
|
|
|
use SilverStripe\Core\Config\Config; |
7
|
|
|
use SilverStripe\Core\Environment; |
8
|
|
|
use SilverStripe\Dev\SapphireTest; |
9
|
|
|
|
10
|
|
|
class AkismetSpamProtectorTest extends SapphireTest |
11
|
|
|
{ |
12
|
|
|
public function testGetApiKeyPriority() |
13
|
|
|
{ |
14
|
|
|
$spamProtector = AkismetSpamProtector::singleton(); |
15
|
|
|
|
16
|
|
|
// Clear all possible values from the environment |
17
|
|
|
Config::modify()->set(AkismetSpamProtector::class, 'api_key', ''); |
18
|
|
|
Environment::setEnv('SS_AKISMET_API_KEY', ''); |
19
|
|
|
$this->assertSame('', $spamProtector->getApiKey(), 'Blank string returned by default'); |
20
|
|
|
|
21
|
|
|
// Set some values in all possible places |
22
|
|
|
$spamProtector->setApiKey('instance_api_key'); |
23
|
|
|
Config::modify()->set(AkismetSpamProtector::class, 'api_key', 'config_api_key'); |
24
|
|
|
Environment::setEnv('SS_AKISMET_API_KEY', 'env_api_key'); |
25
|
|
|
|
26
|
|
|
$this->assertSame('instance_api_key', $spamProtector->getApiKey(), 'Instance value is given priority'); |
27
|
|
|
|
28
|
|
|
$spamProtector->setApiKey(''); |
29
|
|
|
$this->assertSame('config_api_key', $spamProtector->getApiKey(), 'Config value is second priority'); |
30
|
|
|
|
31
|
|
|
Config::modify()->set(AkismetSpamProtector::class, 'api_key', ''); |
32
|
|
|
$this->assertSame('env_api_key', $spamProtector->getApiKey(), 'Environment value is last priority'); |
33
|
|
|
} |
34
|
|
|
} |
35
|
|
|
|