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

View File

@ -195,8 +195,8 @@ class CookieJar
$cookies = array(); $cookies = array();
foreach ($this->cookieJar as $domain => $pathCookies) { foreach ($this->cookieJar as $domain => $pathCookies) {
if ($domain) { if ($domain) {
$domain = ltrim($domain, '.'); $domain = '.'.ltrim($domain, '.');
if ($domain != substr($parts['host'], -strlen($domain))) { if ($domain != substr('.'.$parts['host'], -strlen($domain))) {
continue; 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' => 'bar1'), $cookieJar->allValues('http://foo.example.com/'));
$this->assertEquals(array('foo' => 'bar2'), $cookieJar->allValues('http://bar.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 // corresponding elements are either descendants or have a matching HTML5 form attribute
$formId = Crawler::xpathLiteral($this->node->getAttribute('id')); $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) { foreach ($fieldNodes as $node) {
$this->addField($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($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' => '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('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(), '->form() takes an array of values to submit as its first argument'); $this->assertEquals(array('FooBarName' => 'FooBarValue', 'TextName' => 'TextValue', 'FooTextName' => 'FooTextValue'), $crawler2->form()->getValues(), '->getValues() returns correct form values');
try { try {
$this->createTestCrawler()->filterXPath('//ol')->form(); $this->createTestCrawler()->filterXPath('//ol')->form();

View File

@ -87,27 +87,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
public function testConstructorHandlesFormAttribute() public function testConstructorHandlesFormAttribute()
{ {
$dom = new \DOMDocument(); $dom = $this->createTestHtml5Form();
$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>
');
$inputElements = $dom->getElementsByTagName('input'); $inputElements = $dom->getElementsByTagName('input');
$buttonElements = $dom->getElementsByTagName('button'); $buttonElements = $dom->getElementsByTagName('button');
@ -121,11 +101,22 @@ class FormTest extends \PHPUnit_Framework_TestCase
$form2 = new Form($buttonElements->item(0), 'http://example.com'); $form2 = new Form($buttonElements->item(0), 'http://example.com');
$this->assertSame($dom->getElementsByTagName('form')->item(1), $form2->getFormNode(), 'HTML5-compliant form attribute handled incorrectly'); $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( $values1 = array(
'apples' => array('1', '2'), 'apples' => array('1', '2'),
'form_name' => 'form_1', 'form_name' => 'form-1',
'button_1' => 'Capture fields', 'button_1' => 'Capture fields',
'outer_field' => 'success' 'outer_field' => 'success'
); );
@ -133,10 +124,11 @@ class FormTest extends \PHPUnit_Framework_TestCase
'oranges' => array('1', '2', '3'), 'oranges' => array('1', '2', '3'),
'form_name' => 'form_2', 'form_name' => 'form_2',
'button_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($values1, $form1->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
$this->assertEquals($values2, $form2->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly'); $this->assertEquals($values2, $form2->getPhpValues(), 'HTML5-compliant form attribute handled incorrectly');
} }
public function testMultiValuedFields() public function testMultiValuedFields()
@ -777,4 +769,40 @@ class FormTest extends \PHPUnit_Framework_TestCase
return new Form($nodes->item($nodes->length - 1), $currentUri, $method); 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.'); throw new \InvalidArgumentException('Cost must be in the range of 4-31.');
} }
$this->cost = sprintf('%02d', $cost); $this->cost = $cost;
} }
/** /**