{ public function getCSRFToken($secret = null) { return '==TOKEN=='; } } sfForm::enableCSRFProtection(); $request = new myRequest($dispatcher); try { $request->checkCSRFProtection(); $t->fail('->checkCSRFProtection() throws a validator error if CSRF protection fails'); } catch (sfValidatorErrorSchema $error) { $t->pass('->checkCSRFProtection() throws a validator error if CSRF protection fails'); } $request = new myRequest($dispatcher); $request->setParameter('_csrf_token', '==TOKEN=='); try { $request->checkCSRFProtection(); $t->pass('->checkCSRFProtection() checks token from BaseForm'); } catch (sfValidatorErrorSchema $error) { $t->fail('->checkCSRFProtection() checks token from BaseForm'); } // ->getContentType() $t->diag('->getContentType()'); $request = new myRequest($dispatcher); $_SERVER['CONTENT_TYPE'] = 'text/html'; $t->is($request->getContentType(), 'text/html', '->getContentType() returns the content type'); $request = new myRequest($dispatcher); $_SERVER['CONTENT_TYPE'] = 'text/html; charset=UTF-8'; $t->is($request->getContentType(), 'text/html', '->getContentType() strips the charset information by default'); $t->is($request->getContentType(false), 'text/html; charset=UTF-8', '->getContentType() does not strip the charset information by defaultif you pass false as the first argument');
$request->acceptableContentTypes = null; $_SERVER['HTTP_ACCEPT'] = ''; $t->is($request->getAcceptableContentTypes(), array(), '->getAcceptableContentTypes() returns an empty array if the client send an empty ACCEPT header'); $request->acceptableContentTypes = null; $_SERVER['HTTP_ACCEPT'] = 'text/xml,application/xhtml+xml,application/xml,text/html;q=0.9,text/plain;q=0.8,*/*;q=0.5'; $t->is($request->getAcceptableContentTypes(), array('text/xml', 'application/xml', 'application/xhtml+xml', 'text/html', 'text/plain', '*/*'), '->getAcceptableContentTypes() returns an array with all accepted content types'); // ->splitHttpAcceptHeader() $t->diag('->splitHttpAcceptHeader()'); $t->is($request->splitHttpAcceptHeader(''), array(), '->splitHttpAcceptHeader() returns an empty array if the header is empty'); $t->is($request->splitHttpAcceptHeader('a,b,c'), array('c', 'b', 'a'), '->splitHttpAcceptHeader() returns an array of values'); $t->is($request->splitHttpAcceptHeader('a,b;q=0.7,c;q=0.3'), array('a', 'b', 'c'), '->splitHttpAcceptHeader() strips the q value'); $t->is($request->splitHttpAcceptHeader('a;q=0.1,b,c;q=0.3'), array('b', 'c', 'a'), '->splitHttpAcceptHeader() sorts values by the q value'); // ->getRequestFormat() ->setRequestFormat() $t->diag('->getRequestFormat() ->setRequestFormat()'); $t->ok(is_null($request->getRequestFormat()), '->getRequestFormat() returns null if the format is not defined in the request'); $request->setParameter('sf_format', 'js'); $t->is($request->getRequestFormat(), 'js', '->getRequestFormat() returns the request format'); $request->setRequestFormat('css'); $t->is($request->getRequestFormat(), 'css', '->setRequestFormat() sets the request format'); $request->acceptableContentTypes = null; $_SERVER['HTTP_ACCEPT'] = 'application/json'; $request->setFormat('json', 'application/json'); $request->setParameter('sf_format', null); $request->setRequestFormat(null); $t->is($request->getRequestFormat(), 'json', '->getRequestFormat() uses the Accept HTTP header to guess the format'); // ->getFormat() ->setFormat() $t->diag('->getFormat() ->setFormat()'); $request->setFormat('js', 'application/x-javascript'); $t->is($request->getFormat('application/x-javascript'), 'js', '->getFormat() returns the format for the given mime type'); $request->setFormat('js', array('application/x-javascript', 'text/js')); $t->is($request->getFormat('text/js'), 'js', '->setFormat() can take an array of mime types');