Commit Graph

55 Commits

Author SHA1 Message Date
Fabien Potencier
a137d72351 Merge remote branch 'hhamon/cookie_path_fix'
* hhamon/cookie_path_fix:
  [Security] renamed Cookie::isHttponly() to Cookie::isHttpOnly()
  [HttpKernel] renamed Cookie::isHttponly() to Cookie::isHttpOnly()
  [BrowserKit] renamed Cookie::isHttponly() to Cookie::isHttpOnly()
  [HttpFoundation] fix cookie path default value to / and added some new unit tests to cover the class
2011-03-06 10:44:40 +01:00
Fabien Potencier
487cddcfee Merge remote branch 'DuoSRX/code-coverage'
* DuoSRX/code-coverage:
  [HttpFoundation] Fixed a typo in response->setLastModified()
  [HttpFoundation] Added some more tests on response
  [HttpFoundation] Added some tests on Response
  [HttpFoundation] Replace a duplicated test with a method in Response
  Fixed code coverage generation when resources folder are deeper
2011-03-06 10:44:13 +01:00
Fabien Potencier
c02ebbf2d8 Merge remote branch 'digitalkaoz/httpkernel-datacollector'
* digitalkaoz/httpkernel-datacollector:
  [HttpKernel] added Tests for DataCollectors
  [HttpFoundation] more sophisticated checks for valid expiration
2011-03-06 10:38:55 +01:00
Xavier Perez
7900e8624f [HttpFoundation] Added some more tests on response 2011-03-06 00:14:10 +01:00
Robert Schönthal
87e1359ebd [HttpFoundation] more sophisticated checks for valid expiration 2011-03-06 00:13:47 +01:00
Xavier Perez
0327e93552 [HttpFoundation] Added some tests on Response 2011-03-05 16:12:17 +01:00
Robert Schönthal
3567fc4e6c [HttpFoundation] added Session tests. 2011-03-05 13:32:36 +01:00
Cyril Quintin
1e4e899641 requestTest, override globals erase for the next tests. so backup it and restore it. 2011-03-05 12:11:21 +01:00
Hugo Hamon
ad56bd8e47 [HttpFoundation] fix cookie path default value to / and added some new unit tests to cover the class 2011-03-03 14:50:14 +01:00
Pascal Borreli
3a47fa6eed [Tests] Fixed Typo 2011-03-01 18:58:08 +01:00
Kris Wallsmith
a0bae94f88 [HttpFoundation] updated ResponseHeaderBag to compute Cache-Control whenever any of the headers it considers changes 2011-02-21 19:57:05 -08:00
hhamon
f985da5a9c [HttpFoundation] fix Cache-Control header when forcing the Response to have an Expires header field. The RFC2616 Bis indicates that if the Response has both max-age (or s-maxage) and Expires header field, the Cache-Control maxage wins over Expires. The previous code in ResponseHeaderBag always returned "private, max-age=0, must-revalidate" even if the Expires header field was forced.
This commit breaks functional tests in Symfony\Component\HttpKernel\HttpCache\HttpCacheTest.php. I tried to fix functional tests but I didn\'t manage to. For your information, the "try { } catch" block in the HttpKernel\HttpCache::lookup() method seems strange because I suspect line 274 to never leverage any exception...
2011-02-18 12:34:33 +01:00
Kris Wallsmith
ba239905d7 [HttpFoundation] removed unknown constructor arg from tests 2011-02-15 21:51:21 +01:00
Kris Wallsmith
ef43b22546 [HttpFoundation] fixed test cleanup 2011-02-08 04:14:39 +01:00
pborreli
41bf849a63 [HttpFoundation] Request coverage 2011-02-07 02:49:14 +01:00
pborreli
7ad4f99153 [HttpFoundation] File/UploadedFile, MimeTest, Exception full coverage 2011-02-06 21:53:36 +01:00
John Kary
c251a36935 [HttpFoundation] Add tests for Cookie 2011-02-06 16:16:05 +01:00
pborreli
f56a6efbf5 [HttpFoundation] File/File full coverage 2011-02-05 23:24:00 +01:00
Martijn Evers
1e3dc1479c [Testing][HttpKernel] Added possibility to functional test raw body data 2011-02-04 13:07:13 +01:00
Victor Berchet
f470c5605e [Request] Fix getting mime type 2011-01-30 20:14:40 +01:00
Fabien Potencier
98c1056fbf renamed Request::fromGlobals() to Request::createFromGlobals() (for consistency with the existing create() method) 2011-01-27 21:20:08 +01:00
Kris Wallsmith
224e66f77b [HttpFoundation] added static Request::fromGlobals()
The Request constructor no longer uses values from PHP's super globals. If you want a Request populated with these values you must use the new static method Request::fromGlobals().

Your front controllers (i.e. web/app.php, web/app_dev.php ...) will need to be updated:

    // old
    $kernel->handle(new Request())->send();

    // new
    $kernel->handle(Request::fromGlobals())->send();
2011-01-27 21:12:55 +01:00
Fabien Potencier
6997fbac0d fixed previous commit 2011-01-27 13:58:21 +01:00
Fabien Pennequin
242562a361 [HttpFoundation] added test for processed array in sub-requests 2011-01-24 18:22:48 +01:00
Bulat Shakirzyanov
271e757f27 [HttFoundation] extracted FileBag, ServerBag, fixed HeaderBag::add(), updated Request test 2011-01-23 07:40:31 +01:00
Fabien Potencier
24ff22af07 [HttpFoundation] added a directory fallback for when the class is not found in registered namespaces and class prefixes 2011-01-20 10:20:14 +01:00
Dominique Bongiraud
64fb94c725 normalized license messages in PHP files 2011-01-18 08:07:46 +01:00
hhamon
e2dc7f47cb [HttpFoundation] use pathinfo() native function to determine file extension. Change File::move() and UploadedFile::move() methods to accept a second argument allowing to move the file with a new name instead of moving it with its original name. 2011-01-15 15:44:50 +01:00
umpirsky
0faf067acb Fixed FileTest::testRename to work for windows file system. 2011-01-07 15:36:05 +01:00
Jordi Boggiano
025f3b1565 Fixed filesystem test failing on windows 2011-01-07 14:31:16 +01:00
Justin Hileman
cfd4e2186f Fix UniversalClassLoader matching collisions.
The current `loadClass()` implementation tries to load a class from the first matching prefix then stops, producing false-negative results. This is especially evident in groups of related libraries, such as Doctrine:

    Doctrine
    Doctrine\Common
    Doctrine\Common\DataFixtures
    Doctrine\DBAL
    Doctrine\DBAL\Migrations

Each of these libraries is submoduled into a different vendor directory. Depending on what order these libraries are added to a UniversalClassLoader instance, classes may or may not actually be loaded. This fix continues searching registered namespaces and prefixes if the first partial match is negative.
2011-01-06 18:05:57 +01:00
Fabien Potencier
5c6f4fbdd7 [HttpFoundation] added missing directory in fixtures 2011-01-03 22:09:47 +01:00
Bernhard Schussek
8513082007 [Form][HttpFoundation] Improved File and UploadedFile class 2011-01-03 22:06:56 +01:00
Igor Wiedler
1577110c35 fix PHPUnit assertType deprecation warnings
PHPUnit 3.5.6 deprecates assertType in favor of assertInternalType and
assertInstanceOf. It will be completely removed in 3.6.
2011-01-03 07:44:30 +01:00
jeff
f9036caa6e Test default port number 2010-12-19 08:10:40 +01:00
Fabien Potencier
03ce103b31 fixed unit test 2010-12-16 10:26:45 +01:00
Jordi Boggiano
4f46235ab0 [HttpFoundation] Send proper charset along with the default text/html header 2010-12-16 10:23:53 +01:00
Johannes M. Schmitt
b3081c79e9 CS fixes 2010-12-13 11:10:55 +01:00
Jordi Boggiano
583340db7b [HttpFoundation] Added a way to grab the request body as a resource 2010-12-13 07:55:40 +01:00
jeff
e6d0385778 [HttpFoundation] fixed Request::create() when using HTTPS and getUri()/getPathForUri() when script name should be removed.
Original explanation from pull request:

I'm Using symfony2 with URL Rewriting to 'hide' index.php.
On form authentication, symfony2 redirect to http://host:port/index.php/login_path instead of http://host:port/login_path. I do understand that, in my case, redirect is set into one of :
FormAuthenticationEntryPoint with getUriForPath()
FormAuthenticationListener with getUriForPath()
Security/Firewal/ExceptionListener with getUri()

This path modify getUri and getUriForPath to :
remove default port from URI
remove script name if not initially present
2010-12-12 14:08:35 +01:00
Jordi Boggiano
fb41389999 [HttpFoundation] Fixed Request::create handling of full URIs 2010-12-08 07:52:33 +01:00
Fabien Potencier
e8672740c7 [HttpFoundation] allowed any HTTP method for a Request 2010-12-08 07:24:37 +01:00
Kris Wallsmith
3e02eafc70 Fixed visibility of PHPUnit setUp and tearDown methods. 2010-12-06 15:52:23 +01:00
Bernhard Schussek
d95d33666d [HttpFoundation] Fixed class Request to convert empty files to NULL 2010-11-23 06:51:17 +01:00
Fabien Potencier
b6923dd7b9 changed Cache-Control default value behavior
The PHP native cache limiter feature has been disabled as this is now managed
by the HeaderBag class directly instead (see below.)

The HeaderBag class uses the following rules to define a sensible and
convervative default value for the Response 'Cache-Control' header:

 * If no cache header is defined ('Cache-Control', 'ETag', 'Last-Modified',
   and 'Expires'), 'Cache-Control' is set to 'no-cache';

 * If 'Cache-Control' is empty, its value is set to "private, max-age=0,
   must-revalidate";

 * But if at least one 'Cache-Control' directive is set, and no 'public' or
   'private' directives have been explicitely added, Symfony2 adds the
   'private' directive automatically (except when 's-maxage' is set.)

So, remember to explicitly add the 'public' directive to 'Cache-Control' when
you want shared caches to store your application resources:

    // The Response is private by default
    $response->setEtag($etag);
    $response->setLastModified($date);
    $response->setMaxAge(10);

    // Change the Response to be public
    $response->setPublic();

    // Set cache settings in one call
    $response->setCache(array(
        'etag'          => $etag,
        'last_modified' => $date,
        'max_age'       => 10,
        'public'        => true,
    ));
2010-11-18 17:05:05 +01:00
Jordi Boggiano
7a255fe39f [HttpFoundation] Fixed tests for windows 2010-11-18 06:59:12 +01:00
jeff
ae888b80f6 [HttpFoundation] removed port number from HOST header
To be consistent with backup values (SERVER_NAME, SERVER_ADDR).
fix a problem with getUriForPath($path) where port number may be present twice.
2010-10-28 15:14:48 +02:00
jeff
a5d4acc54d [HttpFoundation] updated get() signature to get($key, $default = null, $first = true)
This is more consistent with the get() method of ParameterBag
2010-10-28 15:12:48 +02:00
Bernhard Schussek
e9fcacdad7 [HttpFoundation] Fixed: File/UploadedFile did not adjust path when moved 2010-10-22 08:30:14 +02:00
Justin Hileman
0ccc9805f5 Fix UniversalClassLoader issues with leading slashes.
This fixes a bug in UniversalClassLoader when attempting to autoload class names with leading slashes:

    $namespacedClass = "\\Foo\\Bar";
    $pearlikeClass   = "\\Foo_Bar";

    $namespaced = new $namespacedClass();
    $pearlike   = new $pearlikeClass();

`UniversalClassLoader::loadClass()` was unable to load PEAR-like classes with leading slashes because it found the slash and assumed that the requested class was namespaced. It was unable to load namespaced classes with leading slashes because it would look them up in the autoloader's registered namespaces, and was unable to match '\Foo' to 'Foo'. One (ugly) workaround for the namespaced classes was to register all namespaces twice:

    $loader->registerNamespaces(array(
        'Foo'  => __DIR__ . '/lib',
        '\Foo' => __DIR__ . '/lib',
    ));

But that's not very pretty, nor does it solve the bug with PEAR-like classes. Stripping the leading slash before trying to autoload allows UniversalClassLoader to load both namespaced and PEAR-like classes.
2010-10-20 14:20:12 +02:00