public function setUp()
 {
     parent::setUp();
     Injector::nest();
     Injector::inst()->unregisterAllObjects();
     // Mock service
     Config::nest();
     Config::inst()->update('Injector', 'AkismetService', 'AkismetTest_Service');
     Config::inst()->update('AkismetSpamProtector', 'api_key', 'dummykey');
     AkismetSpamProtector::set_api_key(null);
     // Reset options to reasonable default
     Config::inst()->remove('AkismetSpamProtector', 'save_spam');
     Config::inst()->remove('AkismetSpamProtector', 'require_confirmation');
     Config::inst()->remove('AkismetSpamProtector', 'bypass_members');
     Config::inst()->update('AkismetSpamProtector', 'bypass_permission', 'ADMIN');
 }
 public function preRequest(SS_HTTPRequest $request, Session $session, DataModel $model)
 {
     // Skip if database isn't ready
     if (!DB::isActive() || !DB::getConn()->hasField('SiteConfig', 'AkismetKey')) {
         return;
     }
     // Skip if SiteConfig doesn't have this extension
     if (!SiteConfig::has_extension('AkismetConfig')) {
         return;
     }
     // Check if key exists
     $akismetKey = SiteConfig::current_site_config()->AkismetKey;
     if ($akismetKey) {
         AkismetSpamProtector::set_api_key($akismetKey);
     }
 }