Merge branch '3.1' into 3.2
* 3.1: [ci] Update travis/appveyor [HttpFoundation] Validate/cast cookie expire time
This commit is contained in:
commit
fcf8b334ec
@ -86,7 +86,7 @@ install:
|
|||||||
- if [[ ! $skip && $deps ]]; then export SYMFONY_DEPRECATIONS_HELPER=weak; fi
|
- if [[ ! $skip && $deps ]]; then export SYMFONY_DEPRECATIONS_HELPER=weak; fi
|
||||||
- if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
|
- if [[ ! $skip && $deps ]]; then mv composer.json.phpunit composer.json; fi
|
||||||
- if [[ ! $skip ]]; then composer update; fi
|
- if [[ ! $skip ]]; then composer update; fi
|
||||||
- if [[ ! $skip ]]; then COMPOSER_ROOT_VERSION= ./phpunit install; fi
|
- if [[ ! $skip ]]; then ./phpunit install; fi
|
||||||
- if [[ ! $skip && ! $PHP = hhvm* ]]; then php -i; else hhvm --php -r 'print_r($_SERVER);print_r(ini_get_all());'; fi
|
- if [[ ! $skip && ! $PHP = hhvm* ]]; then php -i; else hhvm --php -r 'print_r($_SERVER);print_r(ini_get_all());'; fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
@ -95,7 +95,7 @@ script:
|
|||||||
- if [[ ! $deps && ! $PHP = hhvm* ]]; then echo -e "\\nRunning tests requiring tty"; $PHPUNIT --group tty; fi
|
- if [[ ! $deps && ! $PHP = hhvm* ]]; then echo -e "\\nRunning tests requiring tty"; $PHPUNIT --group tty; fi
|
||||||
- if [[ ! $deps && $PHP = hhvm* ]]; then $PHPUNIT --exclude-group benchmark,intl-data; fi
|
- if [[ ! $deps && $PHP = hhvm* ]]; then $PHPUNIT --exclude-group benchmark,intl-data; fi
|
||||||
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} ]]; then echo -e "1\\n0" | xargs -I{} sh -c 'echo "\\nPHP --enable-sigchild enhanced={}" && ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8/phpunit --colors=always src/Symfony/Component/Process/'; fi
|
- if [[ ! $deps && $PHP = ${MIN_PHP%.*} ]]; then echo -e "1\\n0" | xargs -I{} sh -c 'echo "\\nPHP --enable-sigchild enhanced={}" && ENHANCE_SIGCHLD={} php-$MIN_PHP/sapi/cli/php .phpunit/phpunit-4.8/phpunit --colors=always src/Symfony/Component/Process/'; fi
|
||||||
- if [[ $deps = high ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi; $PHPUNIT --exclude-group tty,benchmark,intl-data'$LEGACY; fi
|
- if [[ $deps = high ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi; $PHPUNIT --exclude-group tty,benchmark,intl-data'$LEGACY' && echo -e "\\e[33mOK\\e[0m {}" || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1))'; fi
|
||||||
- if [[ $deps = low ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi --prefer-lowest --prefer-stable; $PHPUNIT --exclude-group tty,benchmark,intl-data'; fi
|
- if [[ $deps = low ]]; then echo "$COMPONENTS" | parallel --gnu -j10% 'cd {}; composer update --no-progress --ansi --prefer-lowest --prefer-stable; $PHPUNIT --exclude-group tty,benchmark,intl-data && echo -e "\\e[33mOK\\e[0m {}" || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1))'; fi
|
||||||
# Test the PhpUnit bridge using the original phpunit script
|
# Test the PhpUnit bridge using the original phpunit script
|
||||||
- if [[ $deps = low ]]; then (cd src/Symfony/Bridge/PhpUnit && phpenv global 5.3 && php --version && composer update && phpunit); fi
|
- if [[ $deps = low ]]; then (cd src/Symfony/Bridge/PhpUnit && phpenv global 5.3 && php --version && composer update && phpunit); fi
|
||||||
|
@ -3,7 +3,7 @@ clone_depth: 1
|
|||||||
clone_folder: c:\projects\symfony
|
clone_folder: c:\projects\symfony
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
- c:\projects\symfony\composer.phar
|
- composer.phar
|
||||||
- .phpunit -> phpunit
|
- .phpunit -> phpunit
|
||||||
|
|
||||||
init:
|
init:
|
||||||
@ -46,13 +46,12 @@ install:
|
|||||||
- echo curl.cainfo=c:\php\cacert.pem >> php.ini-max
|
- echo curl.cainfo=c:\php\cacert.pem >> php.ini-max
|
||||||
- copy /Y php.ini-max php.ini
|
- copy /Y php.ini-max php.ini
|
||||||
- cd c:\projects\symfony
|
- cd c:\projects\symfony
|
||||||
- IF NOT EXIST composer.phar (appveyor DownloadFile https://getcomposer.org/download/1.2.1/composer.phar)
|
- IF NOT EXIST composer.phar (appveyor DownloadFile https://getcomposer.org/download/1.3.0/composer.phar)
|
||||||
- php composer.phar self-update
|
- php composer.phar self-update
|
||||||
- copy /Y .composer\* %APPDATA%\Composer\
|
- copy /Y .composer\* %APPDATA%\Composer\
|
||||||
- php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit
|
- php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit
|
||||||
- IF %APPVEYOR_REPO_BRANCH%==master (SET COMPOSER_ROOT_VERSION=dev-master) ELSE (SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev)
|
- IF %APPVEYOR_REPO_BRANCH%==master (SET COMPOSER_ROOT_VERSION=dev-master) ELSE (SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev)
|
||||||
- php composer.phar update --no-progress --ansi
|
- php composer.phar update --no-progress --ansi
|
||||||
- SET COMPOSER_ROOT_VERSION=
|
|
||||||
- php phpunit install
|
- php phpunit install
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
|
2
phpunit
2
phpunit
@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
// Cache-Id: https://github.com/symfony/phpunit-bridge/commit/89cd0aab376105fb34e773e3dff641f68e3f9645
|
||||||
|
|
||||||
if (!file_exists(__DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {
|
if (!file_exists(__DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {
|
||||||
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\nPlease run `composer update` before running this command.\n";
|
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\nPlease run `composer update` before running this command.\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -63,7 +63,7 @@ class Cookie
|
|||||||
} elseif (!is_numeric($expire)) {
|
} elseif (!is_numeric($expire)) {
|
||||||
$expire = strtotime($expire);
|
$expire = strtotime($expire);
|
||||||
|
|
||||||
if (false === $expire || -1 === $expire) {
|
if (false === $expire) {
|
||||||
throw new \InvalidArgumentException('The cookie expiration time is not valid.');
|
throw new \InvalidArgumentException('The cookie expiration time is not valid.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -71,7 +71,7 @@ class Cookie
|
|||||||
$this->name = $name;
|
$this->name = $name;
|
||||||
$this->value = $value;
|
$this->value = $value;
|
||||||
$this->domain = $domain;
|
$this->domain = $domain;
|
||||||
$this->expire = $expire;
|
$this->expire = 0 < $expire ? (int) $expire : 0;
|
||||||
$this->path = empty($path) ? '/' : $path;
|
$this->path = empty($path) ? '/' : $path;
|
||||||
$this->secure = (bool) $secure;
|
$this->secure = (bool) $secure;
|
||||||
$this->httpOnly = (bool) $httpOnly;
|
$this->httpOnly = (bool) $httpOnly;
|
||||||
@ -98,7 +98,7 @@ class Cookie
|
|||||||
} else {
|
} else {
|
||||||
$str .= $this->isRaw() ? $this->getValue() : urlencode($this->getValue());
|
$str .= $this->isRaw() ? $this->getValue() : urlencode($this->getValue());
|
||||||
|
|
||||||
if ($this->getExpiresTime() !== 0) {
|
if (0 !== $this->getExpiresTime()) {
|
||||||
$str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime());
|
$str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,14 @@ class CookieTest extends \PHPUnit_Framework_TestCase
|
|||||||
*/
|
*/
|
||||||
public function testInvalidExpiration()
|
public function testInvalidExpiration()
|
||||||
{
|
{
|
||||||
$cookie = new Cookie('MyCookie', 'foo', 'bar');
|
new Cookie('MyCookie', 'foo', 'bar');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testNegativeExpirationIsNotPossible()
|
||||||
|
{
|
||||||
|
$cookie = new Cookie('foo', 'bar', -100);
|
||||||
|
|
||||||
|
$this->assertSame(0, $cookie->getExpiresTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetValue()
|
public function testGetValue()
|
||||||
@ -77,6 +84,13 @@ class CookieTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals(3600, $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date');
|
$this->assertEquals(3600, $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetExpiresTimeIsCastToInt()
|
||||||
|
{
|
||||||
|
$cookie = new Cookie('foo', 'bar', 3600.9);
|
||||||
|
|
||||||
|
$this->assertSame(3600, $cookie->getExpiresTime(), '->getExpiresTime() returns the expire date as an integer');
|
||||||
|
}
|
||||||
|
|
||||||
public function testConstructorWithDateTime()
|
public function testConstructorWithDateTime()
|
||||||
{
|
{
|
||||||
$expire = new \DateTime();
|
$expire = new \DateTime();
|
||||||
@ -143,13 +157,13 @@ class CookieTest extends \PHPUnit_Framework_TestCase
|
|||||||
public function testToString()
|
public function testToString()
|
||||||
{
|
{
|
||||||
$cookie = new Cookie('foo', 'bar', strtotime('Fri, 20-May-2011 15:25:52 GMT'), '/', '.myfoodomain.com', true);
|
$cookie = new Cookie('foo', 'bar', strtotime('Fri, 20-May-2011 15:25:52 GMT'), '/', '.myfoodomain.com', true);
|
||||||
$this->assertEquals('foo=bar; expires=Fri, 20-May-2011 15:25:52 GMT; path=/; domain=.myfoodomain.com; secure; httponly', $cookie->__toString(), '->__toString() returns string representation of the cookie');
|
$this->assertEquals('foo=bar; expires=Fri, 20-May-2011 15:25:52 GMT; path=/; domain=.myfoodomain.com; secure; httponly', (string) $cookie, '->__toString() returns string representation of the cookie');
|
||||||
|
|
||||||
$cookie = new Cookie('foo', null, 1, '/admin/', '.myfoodomain.com');
|
$cookie = new Cookie('foo', null, 1, '/admin/', '.myfoodomain.com');
|
||||||
$this->assertEquals('foo=deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; path=/admin/; domain=.myfoodomain.com; httponly', $cookie->__toString(), '->__toString() returns string representation of a cleared cookie if value is NULL');
|
$this->assertEquals('foo=deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; path=/admin/; domain=.myfoodomain.com; httponly', (string) $cookie, '->__toString() returns string representation of a cleared cookie if value is NULL');
|
||||||
|
|
||||||
$cookie = new Cookie('foo', 'bar', 0, '/', '');
|
$cookie = new Cookie('foo', 'bar', 0, '/', '');
|
||||||
$this->assertEquals('foo=bar; path=/; httponly', $cookie->__toString());
|
$this->assertEquals('foo=bar; path=/; httponly', (string) $cookie);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testRawCookie()
|
public function testRawCookie()
|
||||||
|
Reference in New Issue
Block a user