Merge branch '2.3'

* 2.3:
  bumped Symfony version to 2.3.6
  updated VERSION for 2.3.5
  updated CHANGELOG for 2.3.5
  Set cost type to integer
  bumped Symfony version to 2.2.9
  updated VERSION for 2.2.8
  updated CHANGELOG for 2.2.8
  bumped the version
  fixed typo
  updated VERSION for 2.2.7
  update CONTRIBUTORS for 2.2.7
  updated CHANGELOG for 2.2.7
  bugix: CookieJar returns cookies with domain "domain.com" for domain "foodomain.com"
  fixed HTML5 form attribute handling XPath query
  Removed old way of building icu data.

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
This commit is contained in:
Fabien Potencier 2013-09-27 16:07:49 +02:00
commit 9f35ca5ea1
10 changed files with 211 additions and 57 deletions

View File

@ -11,8 +11,6 @@ before_script:
- echo '' > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini
- sh -c 'if [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;'
- COMPOSER_ROOT_VERSION=dev-master composer --prefer-source --dev install
- php src/Symfony/Component/Locale/Resources/data/build-data.php
- export USE_INTL_ICU_DATA_VERSION=1
script:
- ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo "Running {} tests"; phpunit --exclude-group tty,benchmark {};' || exit 1

View File

@ -7,6 +7,53 @@ in 2.2 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.2.0...v2.2.1
* 2.2.8 (2013-09-25)
* same as 2.2.7
* 2.2.7 (2013-09-25)
* 8980954: bugix: CookieJar returns cookies with domain "domain.com" for domain "foodomain.com"
* 3108c71: [Locale] added support for the position argument to NumberFormatter::parse()
* 0774c79: [Locale] added some more stubs for the number formatter
* e5282e8: [DomCrawler]Crawler guess charset from html
* 0e80d88: fixes RequestDataCollector bug, visible when used on Drupal8
* c8d0342: [Console] fixed exception rendering when nested styles
* a47d663: [Console] fixed the formatter for single-char tags
* c6c35b3: [Console] Escape exception message during the rendering of an exception
* 0e437c5: [BrowserKit] Fixed the handling of parameters when redirecting
* 958ec09: NativeSessionStorage regenerate
* 0d6af5c: Use setTimeZone if this method exists.
* 773e716: [HttpFoundation] Fixed the way path to directory is trimmed.
* 42019f6: [Console] Fixed argument parsing when a single dash is passed.
* b591419: [HttpFoundation] removed double-slashes (closes #8388)
* 4f5b8f0: [HttpFoundation] tried to keep the original Request URI as much as possible to avoid different behavior between ::createFromGlobals() and ::create()
* 4c1dbc7: [TwigBridge] fixed form rendering when used in a template with dynamic inheritance
* 8444339: [HttpKernel] added a check for private event listeners/subscribers
* ce7de37: [DependencyInjection] fixed a non-detected circular reference in PhpDumper (closes #8425)
* 37102dc: [Process] Close unix pipes before calling `proc_close` to avoid a deadlock
* 8c2a733: [HttpFoundation] fixed format duplication in Request
* 1e75cf9: [Process] Fix #8970 : read output once the process is finished, enable pipe tests on Windows
* ed83752: [Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
* 30aa1de: [Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
* 49f5027: [HttpKernel] fixer HInclude src (closes #8951)
* c567262: Fixed escaping of service identifiers in configuration
* 4a76c76: [Process][2.2] Fix Process component on windows
* 65814ba: Request->getPort() should prefer HTTP_HOST over SERVER_PORT
* e75d284: Fixing broken http auth digest in some circumstances (php-fpm + apache).
* 899f176: [Security] fixed a leak in ExceptionListener
* 2fd8a7a: [Security] fixed a leak in the ContextListener
* 4e9d990: Ignore posix_istatty warnings
* 2d34e78: [BrowserKit] fixed method/files/content when redirecting a request
* 64e1655: [BrowserKit] removed some headers when redirecting a request
* 96a4b00: [BrowserKit] fixed headers when redirecting if history is set to false (refs #8697)
* c931eb7: [HttpKernel] fixed route parameters storage in the Request data collector (closes #8867)
* 96bb731: optimized circular reference checker
* 91234cd: [HttpKernel] changed fragment URLs to be relative by default (closes #8458)
* 4922a80: [FrameworkBundle] added support for double-quoted strings in the extractor (closes #8797)
* 0d07af8: [BrowserKit] Pass headers when `followRedirect()` is called
* d400b5a: Return BC compatibility for `@Route` parameters and default values
* 2.2.6 (2013-08-26)
* f936b41: clearToken exception is thrown at wrong place.

View File

@ -7,6 +7,59 @@ in 2.3 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.3.0...v2.3.1
* 2.3.5 (2013-09-27)
* 8980954: bugix: CookieJar returns cookies with domain "domain.com" for domain "foodomain.com"
* bb59ac2: fixed HTML5 form attribute handling XPath query
* 3108c71: [Locale] added support for the position argument to NumberFormatter::parse()
* 0774c79: [Locale] added some more stubs for the number formatter
* e5282e8: [DomCrawler]Crawler guess charset from html
* 0e80d88: fixes RequestDataCollector bug, visible when used on Drupal8
* c8d0342: [Console] fixed exception rendering when nested styles
* a47d663: [Console] fixed the formatter for single-char tags
* c6c35b3: [Console] Escape exception message during the rendering of an exception
* 04e730e: [DomCrawler] fixed HTML5 form attribute handling
* 0e437c5: [BrowserKit] Fixed the handling of parameters when redirecting
* d84df4c: [Process] Properly close pipes after a Process::stop call
* b3ae29d: fixed bytes conversion when used on 32-bits systems
* a273e79: [Form] Fixed: "required" attribute is not added to <select> tag if no empty value
* 958ec09: NativeSessionStorage regenerate
* 0d6af5c: Use setTimeZone if this method exists.
* 42019f6: [Console] Fixed argument parsing when a single dash is passed.
* 097b376: [WebProfilerBundle] fixed toolbar for IE8 (refs #8380)
* 4f5b8f0: [HttpFoundation] tried to keep the original Request URI as much as possible to avoid different behavior between ::createFromGlobals() and ::create()
* 4c1dbc7: [TwigBridge] fixed form rendering when used in a template with dynamic inheritance
* 8444339: [HttpKernel] added a check for private event listeners/subscribers
* 427ee19: [FrameworkBundle] fixed registration of the register listener pass
* ce7de37: [DependencyInjection] fixed a non-detected circular reference in PhpDumper (closes #8425)
* 37102dc: [Process] Close unix pipes before calling `proc_close` to avoid a deadlock
* 8c2a733: [HttpFoundation] fixed format duplication in Request
* 1e75cf9: [Process] Fix #8970 : read output once the process is finished, enable pipe tests on Windows
* 9542d72: [Form] Fixed expanded choice field to be marked invalid when unknown choices are submitted
* 72b8807: [Form] Fixed ChoiceList::get*By*() methods to preserve order and array keys
* b65a515: [Form] Fixed FormValidator::findClickedButton() not to be called exponentially
* 49f5027: [HttpKernel] fixer HInclude src (closes #8951)
* c567262: Fixed escaping of service identifiers in configuration
* 4a76c76: [Process][2.2] Fix Process component on windows
* 65814ba: Request->getPort() should prefer HTTP_HOST over SERVER_PORT
* e75d284: Fixing broken http auth digest in some circumstances (php-fpm + apache).
* 970405f: fixed some circular references
* 899f176: [Security] fixed a leak in ExceptionListener
* 2fd8a7a: [Security] fixed a leak in the ContextListener
* 6362fa4: Button missing getErrorsAsString() fixes #8084 Debug: Not calling undefined method anymore. If the form contained a submit button the call would fail and the debug of the form wasn't possible. Now it will work in all cases. This fixes #8084
* e4b3039: Use isset() instead of array_key_exists() in DIC
* 2d34e78: [BrowserKit] fixed method/files/content when redirecting a request
* 64e1655: [BrowserKit] removed some headers when redirecting a request
* 96a4b00: [BrowserKit] fixed headers when redirecting if history is set to false (refs #8697)
* c931eb7: [HttpKernel] fixed route parameters storage in the Request data collector (closes #8867)
* 96bb731: optimized circular reference checker
* 39b610d: Clear lazy loading initializer after the service is successfully initialized
* 91234cd: [HttpKernel] changed fragment URLs to be relative by default (closes #8458)
* 4922a80: [FrameworkBundle] added support for double-quoted strings in the extractor (closes #8797)
* 52d8676: [Intl] made RegionBundle and LanguageBundle merge fallback data when using a country-specific locale
* 0d07af8: [BrowserKit] Pass headers when `followRedirect()` is called
* d400b5a: Return BC compatibility for `@Route` parameters and default values
* 2.3.4 (2013-08-27)
* f936b41: clearToken exception is thrown at wrong place.

View File

@ -46,12 +46,12 @@ Symfony2 is the result of the work of many people who made the code better
- Henrik Westphal (snc)
- Grégoire Pineau (lyrixx)
- Deni
- Andrej Hudec (pulzarraider)
- Marc Weistroff (futurecat)
- Jordan Alliot (jalliot)
- Arnout Boks (aboks)
- Hidenori Goto (hidenorigoto)
- Fran Moreno (franmomu)
- Andrej Hudec (pulzarraider)
- Lee McDermott
- Brandon Turner
- Daniel Holmes (dholmes)
@ -60,25 +60,26 @@ Symfony2 is the result of the work of many people who made the code better
- Bart van den Burg (burgov)
- Antoine Hérault (herzult)
- Toni Uebernickel (havvg)
- Christian Raue
- Tim Nagel (merk)
- Włodzimierz Gajda (gajdaw)
- Michel Weimerskirch (mweimerskirch)
- Christian Raue
- Michal Piotrowski (eventhorizon)
- Douglas Greenshields (shieldo)
- Colin Frei
- lenar
- Fabien Pennequin (fabienpennequin)
- excelwebzone
- Douglas Greenshields (shieldo)
- woodspire
- Mario A. Alvarez Garcia (nomack84)
- Kevin Bond (kbond)
- Mario A. Alvarez Garcia (nomack84)
- Richard Miller (mr_r_miller)
- Jacob Dreesen (jdreesen)
- Richard Shank (iampersistent)
- Sebastian Hörl (blogsh)
- David Buchmann (dbu)
- Gábor Egyed (1ed)
- Wouter De Jong (wouterj)
- Juti Noppornpitak
- Robert Schönthal (digitalkaoz)
- Felix Labrecque
@ -91,9 +92,9 @@ Symfony2 is the result of the work of many people who made the code better
- Larry Garfield (crell)
- Arnaud Kleinpeter (nanocom)
- Jonathan Ingram (jonathaningram)
- Wouter De Jong (wouterj)
- Sebastiaan Stok (sstok)
- Helmer Aaviksoo
- Adrien Brault (adrienbrault)
- Javier Eguiluz (javier.eguiluz)
- Matthieu Ouellette-Vachon (maoueh)
- Amal Raghav (kertz)
@ -123,6 +124,7 @@ Symfony2 is the result of the work of many people who made the code better
- Dustin Whittle (dustinwhittle)
- jeff
- Clemens Tolboom
- Peter Kokot (maastermedia)
- Justin Hileman (bobthecow)
- Sven Paulus (subsven)
- Xavier Perez
@ -136,14 +138,14 @@ Symfony2 is the result of the work of many people who made the code better
- Xavier Montaña Carreras (xmontana)
- Katsuhiro OGAWA
- Andréia Bohner (andreia)
- Peter Kokot (maastermedia)
- Terje Bråten
- Alif Rachmawadi
- boombatower
- Roman Marintsenko (inori)
- Florian Klein (docteurklein)
- Adrien Brault (adrienbrault)
- jules boussekeyt (gordonslondon)
- Jan Sorgalla (jsor)
- Thomas Adam
- Ait Boudad Abdellatif (aitboudad)
- jdhoek
- geoffrey
@ -154,8 +156,10 @@ Symfony2 is the result of the work of many people who made the code better
- Dirk Pahl (dirkaholic)
- Wouter Van Hecke
- Gyula Sallai (salla)
- Peter Kruithof (pkruithof)
- Michael Holm (hollo)
- Yaroslav Kiliba
- bronze1man
- Jérôme Tamarelle (gromnan)
- Sebastian Bergmann
- arjen
@ -166,7 +170,6 @@ Symfony2 is the result of the work of many people who made the code better
- Bertrand Zuchuat (garfield-fr)
- Grégoire Paris (greg0ire)
- Tamas Szijarto
- Thomas Adam
- Grégoire Passault (gregwar)
- Uwe Jäger (uwej711)
- Aurelijus Valeiša (aurelijus)
@ -185,13 +188,13 @@ Symfony2 is the result of the work of many people who made the code better
- Niklas Fiekas
- Konstantin Myakshin (koc)
- Erin Millard
- Robert Kiss (kepten)
- Manuel Reinhard (sprain)
- Francesco Levorato
- Vitaliy Zakharov (zakharovvi)
- Michele Orselli (orso)
- Tom Van Looy (tvlooy)
- Brouznouf
- Peter Kruithof (pkruithof)
- Kristen Gilden (kgilden)
- hossein zolfi (ocean)
- Philipp Kräutli (pkraeutli)
@ -199,6 +202,7 @@ Symfony2 is the result of the work of many people who made the code better
- Greg Thornton (xdissent)
- Atsuhiro KUBO (iteman)
- Lars Strojny
- Gabor Toth (tgabi333)
- Loïc Chardonnet (gnusat)
- Costin Bereveanu (schniper)
- Markus Lanthaler (lanthaler)
@ -211,6 +215,7 @@ Symfony2 is the result of the work of many people who made the code better
- Joe Lencioni
- Chekote
- Kai
- Xavier HAUSHERR
- Denis Gorbachev (starfall)
- Laszlo Korte
- Alessandro Desantis (alessandro1997)
@ -220,18 +225,20 @@ Symfony2 is the result of the work of many people who made the code better
- Karel Souffriau
- Christophe L. (christophelau)
- Thomas Tourlourat (armetiz)
- Jáchym Toušek
- Michael Ridgway
- Pavel Campr (pcampr)
- janschoenherr
- Emanuele Gaspari (inmarelibero)
- Brian King
- Marco Pivetta (ocramius)
- Nikita Konstantinov
- Jan Schumann
- Ruben Gonzalez (rubenrua)
- lancergr
- Antonio J. García Lagar (ajgarlag)
- Olivier Dolbeau (odolbeau)
- alquerci
- Robert Kiss (kepten)
- Asier Illarramendi (doup)
- Javier López (loalf)
- Chris Heng (gigablah)
@ -246,12 +253,12 @@ Symfony2 is the result of the work of many people who made the code better
- Adam Harvey
- Pierre-Yves LEBECQ (pylebecq)
- Laurent Bachelier (laurentb)
- Fabrice Bernhard (fabriceb)
- Fabian Lange (codingfabian)
- Yoshio HANAWA
- Tiago Brito (blackmx)
- Kevin McBride
- Pablo Díez (pablodip)
- bronze1man
- Michael Piecko (michael.piecko)
- Sebastian Krebs
- Manuel de Ruiter (manuel)
@ -260,7 +267,6 @@ Symfony2 is the result of the work of many people who made the code better
- Iker Ibarguren (ikerib)
- Ricardo Oliveira (ricardolotr)
- ondrowan
- Roman Marintsenko (inori)
- Stéphane PY (steph_py)
- mcben
- Maks Slesarenko
@ -278,7 +284,6 @@ Symfony2 is the result of the work of many people who made the code better
- Luis Cordova (cordoval)
- Michaël Perrin (michael.perrin)
- sasezaki
- Xavier HAUSHERR
- Steven Surowiec
- Marek Kalnik (marekkalnik)
- Chris Smith
@ -309,7 +314,6 @@ Symfony2 is the result of the work of many people who made the code better
- vitaliytv
- Markus Bachmann (baachi)
- aubx
- lancergr
- Max Rath (drak3)
- Sinan Eldem
- DerManoMann
@ -336,7 +340,6 @@ Symfony2 is the result of the work of many people who made the code better
- cedric lombardot (cedriclombardot)
- John Kary (johnkary)
- Hossein Bukhamsin
- Fabrice Bernhard (fabriceb)
- Oleg Zinchenko (cystbear)
- Diego Saint Esteben (dii3g0)
- Johannes Klauss (cloppy)
@ -349,11 +352,12 @@ Symfony2 is the result of the work of many people who made the code better
- Matt Daum (daum)
- Baldur Rensch
- Alex Xandra Albert Sim
- Gabor Toth (tgabi333)
- Yuen-Chi Lian
- Besnik Br
- Joshua Nye
- avorobiev
- Venu
- Lars Vierbergen
- Mark Challoner
- Andrew Tchircoff (andrewtch)
- BilgeXA
@ -372,10 +376,12 @@ Symfony2 is the result of the work of many people who made the code better
- Xavier Lacot (xavier)
- Olivier Maisonneuve
- Iwan van Staveren (istaveren)
- Francis Turmel (fturmel)
- cgonzalez
- matt foster
- Evan S Kaufman (evanskaufman)
- Jayson Xu (superjavason)
- Jaik Dean (jaikdean)
- Jan Prieser
- James Michael DuPont
- Tom Klingenberg
@ -400,7 +406,9 @@ Symfony2 is the result of the work of many people who made the code better
- Patrick Allaert
- Gustavo Falco (gfalco)
- Matt Robinson (inanimatt)
- Aleksey Podskrebyshev
- Bob den Otter (bopp)
- Christian Gärtner (dagardner)
- David Marín Carreño (davefx)
- Jörn Lang (j.lang)
- julien pauli (jpauli)
@ -414,6 +422,7 @@ Symfony2 is the result of the work of many people who made the code better
- Drew Butler (nodrew)
- Christian Morgan
- Alexander Miehe (engerim)
- giulio de donato (liuggio)
- Titouan Galopin (tgalopin)
- Don Pinkster
- Maksim Muruev
@ -506,7 +515,6 @@ Symfony2 is the result of the work of many people who made the code better
- Neil Katin
- peter
- Gustavo Adrian
- Nikita Konstantinov
- Brooks Boyd
- Roger Webb
- Nicolas Fabre (nfabre)
@ -520,6 +528,7 @@ Symfony2 is the result of the work of many people who made the code better
- Alberto Aldegheri
- heccjj
- Alexandre Melard
- endroid
- modi
- Sergey Yuferev
- Richard van den Brand (ricbra)
@ -529,8 +538,10 @@ Symfony2 is the result of the work of many people who made the code better
- Cédric Girard (enk_)
- Andy Cox (ringo)
- Sebastian Göttschkes (sgoettschkes)
- Kévin Gomez (kevin)
- erikaheidi
- Pierre Tachoire
- Peter Rehm
- marcj
- Ludek Stepan
- Balázs Benyó (duplabe)
@ -538,6 +549,7 @@ Symfony2 is the result of the work of many people who made the code better
- Daniel Wehner
- Saem Ghani
- Sebastian Utz
- Sébastien HOUZÉ
- Keri Henare (kerihenare)
- Cédric Lahouste (rapotor)
- Anthony Ferrara
@ -551,6 +563,7 @@ Symfony2 is the result of the work of many people who made the code better
- Lance McNearney
- Alberto Pirovano (geezmo)
- Martin Pärtel
- François-Xavier de Guillebon (de-gui_f)
- Xavier Briand (xavierbriand)
- Evan Kaufman
- Romain Geissler
@ -560,6 +573,7 @@ Symfony2 is the result of the work of many people who made the code better
- Carsten Nielsen (phreaknerd)
- Jay Severson
- René Kerner
- Nathaniel Catchpole
- Adrien Samson (adriensamson)
- Samuel Gordalina (gordalina)
- Timothy Anido (xanido)
@ -568,6 +582,7 @@ Symfony2 is the result of the work of many people who made the code better
- Michael Dowling (mtdowling)
- Robert Queck
- mlively
- Dennis Hotson
- Fabian Steiner (fabstei)
- Thomas Chmielowiec (chmielot)
- Jānis Lukss
@ -579,6 +594,7 @@ Symfony2 is the result of the work of many people who made the code better
- Simon Neidhold
- Kevin Dew
- James Cowgill
- Jeremy Livingston (jeremylivingston)
- Patrik Gmitter (patie)
- Thomas Ploch (tploch)
- Benjamin Bender
@ -587,6 +603,7 @@ Symfony2 is the result of the work of many people who made the code better
- Stelian Mocanita (stelian)
- Flavian (2much)
- jskvara
- mike
- Mephistofeles
- Hoffmann András
- Olivier
@ -624,8 +641,10 @@ Symfony2 is the result of the work of many people who made the code better
- František Bereň
- Christoph Nissle (derstoffel)
- Benjamin Zikarsky
- jjanvier
- Romain Dorgueil
- Grayson Koonce (breerly)
- Nicolas Bastien (nicolas_bastien)
- Andy Stanberry
- Thomas Rothe
- alefranz
@ -655,6 +674,7 @@ Symfony2 is the result of the work of many people who made the code better
- devel
- gedrox
- hirocaster
- dropfen
- Andrey Chernykh
- François Pluchino
- Alexey Prilipko
@ -679,7 +699,6 @@ Symfony2 is the result of the work of many people who made the code better
- partugal
- Robert Campbell
- Matt Lehner
- Aleksey Podskrebyshev
- cyrillej
- Alex Pods
- timaschew
@ -692,10 +711,10 @@ Symfony2 is the result of the work of many people who made the code better
- Gabriel Birke
- Alan Chen
- Maerlyn
- Even André Fiskvik
- Even Andr Fiskvik
- Franz Liedke
- Rafał Wrzeszcz
- Frédéric Hardy
- Frédéric Hardy
- Lenar Lõhmus
- Cristian Gonzalez
- Juan M Martínez
@ -711,7 +730,6 @@ Symfony2 is the result of the work of many people who made the code better
- Vincent Composieux (eko)
- Osman Üngür (import)
- Jorge Martin (jorgemartind)
- giulio de donato (liuggio)
- Matthew Davis (mdavis1982)
- Muriel Lusseau (metalmumu)
- Pablo Monterde Perez (plebs)
@ -739,14 +757,12 @@ Symfony2 is the result of the work of many people who made the code better
- ghazy ben ahmed
- Myke79
- Brian Debuire
- Lars Vierbergen
- Sylvain Lorinet
- jc
- BenjaminBeck
- Christian Eikermann
- Antonio Angelino
- Vladimir Sazhin
- Jáchym Toušek
- Vyacheslav Slinko
- Johannes
- Jörg Rühl
@ -768,6 +784,7 @@ Symfony2 is the result of the work of many people who made the code better
- Brian Corrigan
- Skorney
- André Neves
- Norbert Orzechowicz
- Pierre-Louis LAUNAY
- djama
- Jon Cave
@ -796,15 +813,16 @@ Symfony2 is the result of the work of many people who made the code better
- dorkitude
- tirnanog06
- phc
- Besnik Br
- sualko
- Nicolas Roudaire
- Lee Rowlands
- Alex Olmos (alexolmos)
- Jannik Zschiesche (apfelbox)
- Juan Ases García (ases)
- Bernd Matzner (bmatzner)
- Chris Sedlmayr (catchamonkey)
- Kousuke Ebihara (co3k)
- Cas Leentfaar (codeklopper)
- Christoph Schaefer (cvschaefer)
- Damien Alexandre (damienalexandre)
- Damon Jones (damon__jones)
@ -815,7 +833,6 @@ Symfony2 is the result of the work of many people who made the code better
- Yohan Giarelli (frequence-web)
- Massimiliano Arione (garak)
- Vladislav Krupenkin (ideea)
- Jaik Dean (jaikdean)
- joris de wit (jdewit)
- Jérémy CROMBEZ (jeremy)
- Jorge Maiden (jorgemaiden)
@ -840,6 +857,7 @@ Symfony2 is the result of the work of many people who made the code better
- Julien Sanchez (sumbobyboys)
- Markus Tacker (tacker)
- Tyler Stroud (tystr)
- Timothée Barray (tyx)
- Víctor Mateo (victormateo)
- Eugene Babushkin (warl)
- Florent Cailhol
@ -852,6 +870,7 @@ Symfony2 is the result of the work of many people who made the code better
- Gustavo Adrian
- Anthon Pang
- Michael
- fh-github@fholzhauer.de
- Xavier REN
- max
- Mohamed Karnichi (amiral)

View File

@ -195,8 +195,8 @@ class CookieJar
$cookies = array();
foreach ($this->cookieJar as $domain => $pathCookies) {
if ($domain) {
$domain = ltrim($domain, '.');
if ($domain != substr($parts['host'], -strlen($domain))) {
$domain = '.'.ltrim($domain, '.');
if ($domain != substr('.'.$parts['host'], -strlen($domain))) {
continue;
}
}

View File

@ -195,4 +195,13 @@ class CookieJarTest extends \PHPUnit_Framework_TestCase
$this->assertEquals(array('foo' => 'bar1'), $cookieJar->allValues('http://foo.example.com/'));
$this->assertEquals(array('foo' => 'bar2'), $cookieJar->allValues('http://bar.example.com/'));
}
public function testCookieWithWildcardDomain()
{
$cookieJar = new CookieJar();
$cookieJar->set(new Cookie('foo', 'bar', null, '/', '.example.com'));
$this->assertEquals(array('foo' => 'bar'), $cookieJar->allValues('http://www.example.com'));
$this->assertEmpty($cookieJar->allValues('http://wwwexample.com'));
}
}

View File

@ -395,7 +395,7 @@ class Form extends Link implements \ArrayAccess
// corresponding elements are either descendants or have a matching HTML5 form attribute
$formId = Crawler::xpathLiteral($this->node->getAttribute('id'));
$fieldNodes = $xpath->query(sprintf('descendant::input[@form=%s] | descendant::button[@form=%s] | descendant::textarea[@form=%s] | descendant::select[@form=%s] | //form[@id=%s]/input[not(@form)] | //form[@id=%s]/button[not(@form)] | //form[@id=%s]/textarea[not(@form)] | //form[@id=%s]/select[not(@form)]', $formId, $formId, $formId, $formId, $formId, $formId, $formId, $formId), $root);
$fieldNodes = $xpath->query(sprintf('descendant::input[@form=%s] | descendant::button[@form=%s] | descendant::textarea[@form=%s] | descendant::select[@form=%s] | //form[@id=%s]//input[not(@form)] | //form[@id=%s]//button[not(@form)] | //form[@id=%s]//textarea[not(@form)] | //form[@id=%s]//select[not(@form)]', $formId, $formId, $formId, $formId, $formId, $formId, $formId, $formId), $root);
foreach ($fieldNodes as $node) {
$this->addField($node);
}

View File

@ -536,8 +536,8 @@ EOF
$this->assertEquals($crawler->form()->getFormNode()->getAttribute('id'), $crawler2->form()->getFormNode()->getAttribute('id'), '->form() works on elements with form attribute');
$this->assertEquals(array('FooName' => 'FooBar', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler->form(array('FooName' => 'FooBar'))->getValues(), '->form() takes an array of values to submit as its first argument');
$this->assertEquals(array('FooName' => 'FooValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler->form()->getValues(), '->form() takes an array of values to submit as its first argument');
$this->assertEquals(array('FooBarName' => 'FooBarValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler2->form()->getValues(), '->form() takes an array of values to submit as its first argument');
$this->assertEquals(array('FooName' => 'FooValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler->form()->getValues(), '->getValues() returns correct form values');
$this->assertEquals(array('FooBarName' => 'FooBarValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler2->form()->getValues(), '->getValues() returns correct form values');
try {
$this->createTestCrawler()->filterXPath('//ol')->form();

View File

@ -87,27 +87,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
public function testConstructorHandlesFormAttribute()
{
$dom = new \DOMDocument();
$dom->loadHTML('
<html>
<form id="form_1" action="" method="POST">
<input type="checkbox" name="apples[]" value="1" checked />
<input form="form_2" type="checkbox" name="oranges[]" value="1" checked />
<input form="form_1" type="hidden" name="form_name" value="form_1" />
<input form="form_1" type="submit" name="button_1" value="Capture fields" />
<button form="form_2" type="submit" name="button_2">Submit form_2</button>
</form>
<input form="form_1" type="checkbox" name="apples[]" value="2" checked />
<form id="form_2" action="" method="POST">
<input type="checkbox" name="oranges[]" value="2" checked />
<input type="checkbox" name="oranges[]" value="3" checked />
<input form="form_2" type="hidden" name="form_name" value="form_2" />
<input form="form_1" type="hidden" name="outer_field" value="success" />
<button form="form_1" type="submit" name="button_3">Submit from outside the form</button>
</form>
<button />
</html>
');
$dom = $this->createTestHtml5Form();
$inputElements = $dom->getElementsByTagName('input');
$buttonElements = $dom->getElementsByTagName('button');
@ -121,11 +101,22 @@ class FormTest extends \PHPUnit_Framework_TestCase
$form2 = new Form($buttonElements->item(0), 'http://example.com');
$this->assertSame($dom->getElementsByTagName('form')->item(1), $form2->getFormNode(), 'HTML5-compliant form attribute handled incorrectly');
}
// Tests if form elements are correctly assigned to forms
public function testConstructorHandlesFormValues()
{
$dom = $this->createTestHtml5Form();
$inputElements = $dom->getElementsByTagName('input');
$buttonElements = $dom->getElementsByTagName('button');
$form1 = new Form($inputElements->item(3), 'http://example.com');
$form2 = new Form($buttonElements->item(0), 'http://example.com');
// Tests if form values are correctly assigned to forms
$values1 = array(
'apples' => array('1', '2'),
'form_name' => 'form_1',
'form_name' => 'form-1',
'button_1' => 'Capture fields',
'outer_field' => 'success'
);
@ -133,10 +124,11 @@ class FormTest extends \PHPUnit_Framework_TestCase
'oranges' => array('1', '2', '3'),
'form_name' => 'form_2',
'button_2' => '',
'app_frontend_form_type_contact_form_type' => array('contactType' => '', 'firstName' => 'John')
);
$this->assertEquals($values1, $form1->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
$this->assertEquals($values2, $form2->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
}
public function testMultiValuedFields()
@ -777,4 +769,40 @@ class FormTest extends \PHPUnit_Framework_TestCase
return new Form($nodes->item($nodes->length - 1), $currentUri, $method);
}
protected function createTestHtml5Form() {
$dom = new \DOMDocument();
$dom->loadHTML('
<html>
<h1>Hello form</h1>
<form id="form-1" action="" method="POST">
<div><input type="checkbox" name="apples[]" value="1" checked /></div>
<input form="form_2" type="checkbox" name="oranges[]" value="1" checked />
<div><label></label><input form="form-1" type="hidden" name="form_name" value="form-1" /></div>
<input form="form-1" type="submit" name="button_1" value="Capture fields" />
<button form="form_2" type="submit" name="button_2">Submit form_2</button>
</form>
<input form="form-1" type="checkbox" name="apples[]" value="2" checked />
<form id="form_2" action="" method="POST">
<div><div><input type="checkbox" name="oranges[]" value="2" checked />
<input type="checkbox" name="oranges[]" value="3" checked /></div></div>
<input form="form_2" type="hidden" name="form_name" value="form_2" />
<input form="form-1" type="hidden" name="outer_field" value="success" />
<button form="form-1" type="submit" name="button_3">Submit from outside the form</button>
<div>
<label for="app_frontend_form_type_contact_form_type_contactType">Message subject</label>
<div>
<select name="app_frontend_form_type_contact_form_type[contactType]" id="app_frontend_form_type_contact_form_type_contactType"><option selected="selected" value="">Please select subject</option><option id="1">Test type</option></select>
</div>
</div>
<div>
<label for="app_frontend_form_type_contact_form_type_firstName">Firstname</label>
<input type="text" name="app_frontend_form_type_contact_form_type[firstName]" value="John" id="app_frontend_form_type_contact_form_type_firstName"/>
</div>
</form>
<button />
</html>');
return $dom;
}
}

View File

@ -42,7 +42,7 @@ class BCryptPasswordEncoder extends BasePasswordEncoder
throw new \InvalidArgumentException('Cost must be in the range of 4-31.');
}
$this->cost = sprintf('%02d', $cost);
$this->cost = $cost;
}
/**