public static $isSecure = false; public function isSecure() { return self::$isSecure; } } $context = sfContext::getInstance(); $context->configuration = ProjectConfiguration::getApplicationConfiguration('mobile_frontend', 'test', true); $context->inject('request', 'myRequest'); $filter = new myFilter($context); sfConfig::set('op_ssl_required_applications', array('secure_application')); sfConfig::set('op_ssl_required_actions', array('insecure_application' => array('secure/login', 'secure/logout'), 'mobile_frontend' => array())); sfConfig::set('op_ssl_selectable_actions', array('insecure_application' => array('selectable/login'), 'mobile_frontend' => array('member/register', 'member/registerInput', 'member/registerEnd', 'member/login', 'member/configUID'))); // --- $t->diag('->needToRetrieveMobileUID()'); $t->ok($filter->callNeedToRetrieveMobileUID('member', 'configUID'), 'member/configUID redirects user to HTTP'); $t->ok($filter->callNeedToRetrieveMobileUID('member', 'configUID', 0), 'member/configUID does not redirects user to HTTP when it does not retrieve uid'); $t->ok(!$filter->callNeedToRetrieveMobileUID('member', 'home'), 'member/home does not redirect user to HTTP'); $t->ok(!$filter->callNeedToRetrieveMobileUID('member', 'login'), 'member/login does not redirect user to HTTP'); $t->ok($filter->callNeedToRetrieveMobileUID('member', 'login', 1, array('authMode' => 'MobileUID')), 'member/login redirect user to HTTP when the authMode is MobileUID'); $t->diag('->handleSsl()'); sfConfig::set('op_use_ssl', true); myRequest::$isSecure = false; sfConfig::set('sf_app', 'secure_application'); $t->ok($filter->callHandleSsl('anything', 'anything'), 'ssl-required-application redirects user HTTP to HTTPS'); sfConfig::set('sf_app', 'insecure_application'); $t->ok($filter->callHandleSsl('secure', 'login'), 'ssl-required-action redirects user HTTP to HTTPS'); $t->ok(!$filter->callHandleSsl('selectable', 'login'), 'ssl-selectable-action does not redirect user HTTP to HTTPS'); sfConfig::set('sf_app', 'mobile_frontend'); $t->ok(!$filter->callHandleSsl('member', 'configUID'), 'member/configUID does not redirect user HTTP to HTTPS'); $t->ok(!$filter->callHandleSsl('anything', 'anything'), 'no ssl providable action does not redirect user HTTP to HTTPS');