diff --git a/.travis.yml b/.travis.yml index 8ae419ad24..463a7d3e24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,5 +25,5 @@ before_script: - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "5.3.3" ]; then phpunit --self-update; fi;' script: - - ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo "Running {} tests"; phpunit --exclude-group tty,benchmark {};' || false + - ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo "Running {} tests"; phpunit --exclude-group tty,benchmark {};' - echo "Running tests requiring tty"; phpunit --group tty diff --git a/CHANGELOG-2.3.md b/CHANGELOG-2.3.md index 5ac62abb70..9b0b1f994e 100644 --- a/CHANGELOG-2.3.md +++ b/CHANGELOG-2.3.md @@ -7,6 +7,28 @@ 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.17 (2014-07-07) + + * bug #11238 [Translation] Added unescaping of ids in PoFileLoader (JustBlackBird) + * bug #11194 [DomCrawler] Remove the query string and the anchor of the uri of a link (benja-M-1) + * bug #11272 [Console] Make sure formatter is the same. (akimsko) + * bug #11259 [Config] Fixed failed config schema loads due to libxml_disable_entity_loader usage (ccorliss) + * bug #11234 [ClassLoader] fixed PHP warning on PHP 5.3 (fabpot) + * bug #11179 [Process] Fix ExecutableFinder with open basedir (cs278) + * bug #11242 [CssSelector] Refactored the CssSelector to remove the circular object graph (stof) + * bug #11219 [DomCrawler] properly handle buttons with single and double quotes insid... (xabbuh) + * bug #11220 [Components][Serializer] optional constructor arguments can be omitted during the denormalization process (xabbuh) + * bug #11186 Added missing `break` statement (apfelbox) + * bug #11169 [Console] Fixed notice in DialogHelper (florianv) + * bug #11144 [HttpFoundation] Fixed Request::getPort returns incorrect value under IPv6 (kicken) + * bug #10966 PHP Fatal error when getContainer method of ContainerAwareCommand has be... (kevinvergauwen) + * bug #10981 [HttpFoundation] Fixed isSecure() check to be compliant with the docs (Jannik Zschiesche) + * bug #11092 [HttpFoundation] Fix basic authentication in url with PHP-FPM (Kdecherf) + * bug #10808 [DomCrawler] Empty select with attribute name="foo[]" bug fix (darles) + * bug #11063 [HttpFoundation] fix switch statement (Tobion) + * bug #11009 [HttpFoundation] smaller fixes for PdoSessionHandler (Tobion) + * bug #11041 Remove undefined variable $e (skydiablo) + * 2.3.16 (2014-05-31) * bug #11014 [Validator] Remove property and method targets from the optional and required constraints (jakzal) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index cb8fee8b7a..007ceffdf4 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -9,21 +9,21 @@ Symfony2 is the result of the work of many people who made the code better - Victor Berchet (victor) - Jordi Boggiano (seldaek) - Johannes S (johannes) - - Kris Wallsmith (kriswallsmith) - Tobias Schultze (tobion) + - Kris Wallsmith (kriswallsmith) - Christophe Coevoet (stof) - Pascal Borreli (pborreli) - - Karma Dordrak (drak) - Jakub Zalas (jakubzalas) + - Karma Dordrak (drak) - Joseph Bielawski (stloyd) - Ryan Weaver (weaverryan) - Lukas Kahwe Smith (lsmith) - Jeremy Mikola (jmikola) - Jean-François Simon (jfsimon) + - Romain Neutron (romain) - Benjamin Eberlei (beberlei) - Igor Wiedler (igorw) - Hugo Hamon (hhamon) - - Romain Neutron (romain) - Eriksen Costa (eriksencosta) - Martin Hasoň (hason) - Jonathan Wage (jwage) @@ -35,14 +35,15 @@ Symfony2 is the result of the work of many people who made the code better - Bulat Shakirzyanov (avalanche123) - Grégoire Pineau (lyrixx) - Francis Besset (francisbesset) + - Saša Stamenković (umpirsky) - Miha Vrhovnik - Henrik Bjørnskov (henrikbjorn) - - Saša Stamenković (umpirsky) - Konstantin Kudryashov (everzet) - Bilal Amarni (bamarni) - Florin Patan (florinpatan) - Wouter De Jong (wouterj) - Eric Clemmons (ericclemmons) + - Nicolas Grekas (nicolas-grekas) - Deni - Henrik Westphal (snc) - Dariusz Górecki (canni) @@ -59,41 +60,43 @@ Symfony2 is the result of the work of many people who made the code better - Fran Moreno (franmomu) - Bart van den Burg (burgov) - Antoine Hérault (herzult) - - Nicolas Grekas (nicolas-grekas) - Toni Uebernickel (havvg) - Arnaud Le Blanc (arnaud-lb) - - Brice BERNARD (brikou) - Luis Cordova (cordoval) - - Tim Nagel (merk) - Kevin Bond (kbond) + - Brice BERNARD (brikou) + - Tim Nagel (merk) - marc.weistroff - lenar - Włodzimierz Gajda (gajdaw) - Colin Frei - excelwebzone + - Florian Voutzinos (florianv) - Fabien Pennequin (fabienpennequin) - Jacob Dreesen (jdreesen) - - Adrien Brault (adrienbrault) - Gábor Egyed (1ed) + - Adrien Brault (adrienbrault) - Michal Piotrowski (eventhorizon) - Ait Boudad Abdellatif (aitboudad) - - Florian Voutzinos (florianv) - Robert Schönthal (digitalkaoz) - Juti Noppornpitak (shiroyuki) - Sebastian Hörl (blogsh) - - Hidenori Goto (hidenorigoto) - Daniel Gomes (danielcsgomes) + - Hidenori Goto (hidenorigoto) - Peter Kokot (maastermedia) - Jérémie Augustin (jaugustin) - David Buchmann (dbu) - Jérôme Tamarelle (gromnan) - Tigran Azatyan (tigranazatyan) - Javier Eguiluz (javier.eguiluz) + - Christian Flothmann (xabbuh) - Rafael Dohms (rdohms) - Richard Shank (iampersistent) - Gordon Franke (gimler) + - Eric GELOEN (gelo) - Helmer Aaviksoo - Sebastiaan Stok (sstok) + - Hiromi Hishida (77web) - Matthieu Ouellette-Vachon (maoueh) - Michał Pipa (michal.pipa) - Amal Raghav (kertz) @@ -101,10 +104,9 @@ Symfony2 is the result of the work of many people who made the code better - Artur Kotyrba - Guilherme Blanco (guilhermeblanco) - Pablo Godel (pgodel) - - Eric GELOEN (gelo) + - Clemens Tolboom - Dmitrii Chekaliuk (lazyhammer) - Clément JOBEILI (dator) - - Hiromi Hishida (77web) - Dorian Villet (gnutix) - Richard Miller (mr_r_miller) - Arnaud Kleinpeter (nanocom) @@ -127,7 +129,6 @@ Symfony2 is the result of the work of many people who made the code better - François Zaninotto (fzaninotto) - Dustin Whittle (dustinwhittle) - jeff - - Clemens Tolboom - Justin Hileman (bobthecow) - Sven Paulus (subsven) - Andréia Bohner (andreia) @@ -141,6 +142,7 @@ Symfony2 is the result of the work of many people who made the code better - Francois Zaninotto - Alexander Kotynia (olden) - Daniel Tschinder + - Elnur Abdurrakhimov (elnur) - Manuel Reinhard (sprain) - Danny Berger (dpb587) - Xavier Montaña Carreras (xmontana) @@ -153,8 +155,8 @@ Symfony2 is the result of the work of many people who made the code better - Stefano Sala (stefano.sala) - Joseph Rouff (rouffj) - Félix Labrecque (woodspire) - - Christian Flothmann (xabbuh) - GordonsLondon + - Lars Strojny (lstrojny) - Jan Sorgalla (jsor) - Ray - Chekote @@ -162,7 +164,6 @@ Symfony2 is the result of the work of many people who made the code better - Albert Casademont (acasademont) - jdhoek - Wodor Wodorski - - Elnur Abdurrakhimov (elnur) - Beau Simensen (simensen) - Robert Kiss (kepten) - Kim Hemsø Rasmussen (kimhemsoe) @@ -172,9 +173,9 @@ Symfony2 is the result of the work of many people who made the code better - Marc Weistroff (futurecat) - Pierre-Yves LEBECQ (pylebecq) - Roman Marintšenko (inori) + - Chris Smith (cs278) - Florian Klein (docteurklein) - Manuel Kiessling (manuelkiessling) - - Lars Strojny (lstrojny) - Bertrand Zuchuat (garfield-fr) - Gabor Toth (tgabi333) - realmfoo @@ -194,6 +195,7 @@ Symfony2 is the result of the work of many people who made the code better - janschoenherr - Marco Pivetta (ocramius) - Ricard Clau (ricardclau) + - Kévin Dunglas (dunglas) - Erin Millard - Matthew Lewinski (lewinski) - alquerci @@ -219,6 +221,7 @@ Symfony2 is the result of the work of many people who made the code better - Greg Thornton (xdissent) - Atsuhiro KUBO (iteman) - Grégoire Paris (greg0ire) + - julien pauli (jpauli) - Costin Bereveanu (schniper) - Loïc Chardonnet (gnusat) - Marek Kalnik (marekkalnik) @@ -227,6 +230,7 @@ Symfony2 is the result of the work of many people who made the code better - Tobias Naumann (tna) - Ismael Ambrosi (iambrosi) - Shein Alexey + - Issei Murasawa (issei_m) - Joe Lencioni - Kai - Xavier HAUSHERR @@ -241,6 +245,7 @@ Symfony2 is the result of the work of many people who made the code better - Christophe L. (christophelau) - Anthon Pang (robocoder) - Jáchym Toušek + - Jannik Zschiesche (apfelbox) - Emanuele Gaspari (inmarelibero) - Brian King - Michel Salib (michelsalib) @@ -258,7 +263,6 @@ Symfony2 is the result of the work of many people who made the code better - Tobias Sjösten (tobiassjosten) - vagrant - Asier Illarramendi (doup) - - Kévin Dunglas (dunglas) - Christoph Mewes (xrstf) - Vitaliy Tverdokhlib (vitaliytv) - Dirk Pahl (dirkaholic) @@ -284,6 +288,7 @@ Symfony2 is the result of the work of many people who made the code better - Ricardo Oliveira (ricardolotr) - ondrowan - Andrew Moore (finewolf) + - Vyacheslav Salakhutdinov (megazoll) - Evan S Kaufman (evanskaufman) - mcben - Maks Slesarenko @@ -293,9 +298,9 @@ Symfony2 is the result of the work of many people who made the code better - Andrew Udvare (audvare) - alexpods - Erik Trapman (eriktrapman) + - hacfi (hifi) - De Cock Xavier (xdecock) - Alex Pott - - Issei Murasawa (issei_m) - Norbert Orzechowicz (norzechowicz) - Matthijs van den Bos (matthijs) - Nils Adermann (naderman) @@ -304,7 +309,6 @@ Symfony2 is the result of the work of many people who made the code better - sasezaki - Denis Gorbachev (starfall) - Steven Surowiec - - Chris Smith - Daniel Tschinder - Ryan - Alexander Deruwe (aderuwe) @@ -314,7 +318,6 @@ Symfony2 is the result of the work of many people who made the code better - Ned Schwartz - Ziumin - Lenar Lõhmus - - julien pauli (jpauli) - Zach Badgett (zachbadgett) - Aurélien Fredouelle - Karoly Negyesi (chx) @@ -325,6 +328,7 @@ Symfony2 is the result of the work of many people who made the code better - alcaeus - vitaliytv - Markus Bachmann (baachi) + - Jérémy DERUSSÉ (jderusse) - aubx - Ricky Su (ricky) - Gildas Quéméner (gquemener) @@ -356,6 +360,7 @@ Symfony2 is the result of the work of many people who made the code better - umpirski - Chris Heng (gigablah) - Ulumuddin Yunus (joenoez) + - Johann Saunier (prophet777) - Antoine Corcy - Arturs Vonda - Sascha Grossenbacher @@ -395,6 +400,7 @@ Symfony2 is the result of the work of many people who made the code better - Leevi Graham (leevigraham) - Casper Valdemar Poulsen - Josiah (josiah) + - Marek Štípek (maryo) - John Bohn (jbohn) - Jakub Škvára (jskvara) - Chris Wilkinson (thewilkybarkid) @@ -403,7 +409,7 @@ Symfony2 is the result of the work of many people who made the code better - Jérôme Vieilledent (lolautruche) - Degory Valentine - Benoit Lévêque (benoit_leveque) - - hacfi (hifi) + - Jeroen Fiege (fieg) - Krzysiek Łabuś - Xavier Lacot (xavier) - Olivier Maisonneuve (olineuve) @@ -494,6 +500,7 @@ Symfony2 is the result of the work of many people who made the code better - Anton Babenko (antonbabenko) - Irmantas Šiupšinskas (irmantas) - Danilo Silva + - Zachary Tong (polyfractal) - dantleech - Tero Alén (tero) - DerManoMann @@ -528,7 +535,6 @@ Symfony2 is the result of the work of many people who made the code better - Simon Schick (simonsimcity) - Christian - Sergii Smertin (nfx) - - Johann Saunier (prophet777) - Eddie Jaoude - Haritz Iturbe (hizai) - Nerijus Arlauskas (nercury) @@ -569,6 +575,7 @@ Symfony2 is the result of the work of many people who made the code better - Max Voloshin (maxvoloshin) - Nicolas Fabre (nfabre) - Raul Rodriguez (raul782) + - Patrick Landolt (scube) - Derek Lambert - Felicitus - Krzysztof Przybyszewski @@ -610,12 +617,14 @@ Symfony2 is the result of the work of many people who made the code better - Saem Ghani - Sebastian Utz - Karol Sójko (karolsojko) + - sl_toto (sl_toto) - Sébastien HOUZÉ - steveYeah - Samy Dindane (dinduks) - Keri Henare (kerihenare) - Cédric Lahouste (rapotor) - Samuel Vogel (samuelvogel) + - Berat Doğan - Anthony Ferrara - ShiraNai7 - Janusz Jabłoński (yanoosh) @@ -631,12 +640,15 @@ Symfony2 is the result of the work of many people who made the code better - caponica - Matt Daum (daum) - Alberto Pirovano (geezmo) + - Pete Mitchell (peterjmit) - Martin Pärtel - Evgeniy (ewgraf) - Patrick Daley (padrig) - Xavier Briand (xavierbriand) - Max Summe - WedgeSama + - Felds Liscia + - Tadcka - Beth Binkovitz - Romain Geissler - Marcus Stöhr (dafish) @@ -672,6 +684,7 @@ Symfony2 is the result of the work of many people who made the code better - Sebastian Ionescu - Thomas Ploch - Simon Neidhold + - Seb Koelen - Kevin Dew - James Cowgill - Jeremy Livingston (jeremylivingston) @@ -684,6 +697,7 @@ Symfony2 is the result of the work of many people who made the code better - Stelian Mocanita (stelian) - Flavian (2much) - mike + - Keith Maika - Mephistofeles - Hoffmann András - Olivier @@ -700,6 +714,7 @@ Symfony2 is the result of the work of many people who made the code better - Bouke Haarsma - Harm van Tilborg - Martin Eckhardt + - Denis Zunke - Jonathan Poston - Przemysław Piechota (kibao) - Leonid Terentyev (li0n) @@ -716,6 +731,7 @@ Symfony2 is the result of the work of many people who made the code better - Alexandre Segura - Josef Cech - Matthew Foster (mfoster) + - Maximilian Reichel (phramz) - Paul Seiffert (seiffert) - Vasily Khayrulin (sirian) - Stefan Koopmanschap (skoop) @@ -755,8 +771,10 @@ Symfony2 is the result of the work of many people who made the code better - Warwick - Chris - efeen + - Michał Dąbrowski (defrag) - Dominik Zogg (dominik.zogg) - Simone Fumagalli (hpatoio) + - Kevin Vergauwen (innocenzo) - Alessio Baglio (ioalessio) - John Bafford (jbafford) - Jérôme Macias (jeromemacias) @@ -776,6 +794,7 @@ Symfony2 is the result of the work of many people who made the code better - Bram Van der Sype (brammm) - Julien Moulin (lizjulien) - Matthieu Auger (matthieuauger) + - Kevin Decherf - dened - Sam Ward - devel @@ -786,6 +805,7 @@ Symfony2 is the result of the work of many people who made the code better - Drew Butler - J Bruni - Alexey Prilipko + - Hans Nilsson (hansnilsson) - Jan Marek (janmarek) - Mark de Haan (markdehaan) - Dan Patrick (mdpatrick) @@ -823,6 +843,7 @@ Symfony2 is the result of the work of many people who made the code better - Alan Chen - Maerlyn - Even André Fiskvik + - Diego Agulló - Lenar Lõhmus - Cristian Gonzalez - Juan M Martínez @@ -833,6 +854,7 @@ Symfony2 is the result of the work of many people who made the code better - Rafał - Adria Lopez (adlpz) - Masao Maeda (brtriver) + - Darius Leskauskas (darles) - Dave Hulbert (dave1010) - Dave Marshall (davedevelopment) - David Joos (djoos) @@ -844,7 +866,6 @@ Symfony2 is the result of the work of many people who made the code better - Ian Jenkins (jenkoian) - Jorge Martin (jorgemartind) - Kevin Herrera (kherge) - - Marek Štípek (maryo) - Matthew Davis (mdavis1982) - Muriel (metalmumu) - Michaël Perrin (michael.perrin) @@ -860,6 +881,7 @@ Symfony2 is the result of the work of many people who made the code better - Gladhon - Saem Ghani - Stefan Oderbolz + - Curtis - Alexey Popkov - Joseph Deray - Arnaud Buathier (arnapou) @@ -927,7 +949,6 @@ Symfony2 is the result of the work of many people who made the code better - Michael Squires - Matt Janssen - Peter Gribanov - - Chris Smith - kwiateusz - David Soria Parra - Sergiy Sokolenko @@ -949,8 +970,8 @@ Symfony2 is the result of the work of many people who made the code better - Nicolas Roudaire - Lee Rowlands - Andreas Forsblom (aforsblo) + - Alaattin Kahramanlar (alaattin) - Alex Olmos (alexolmos) - - Jannik Zschiesche (apfelbox) - Juan Ases García (ases) - Daniel Basten (axhm3a) - Bill Hance (billhance) @@ -975,6 +996,7 @@ Symfony2 is the result of the work of many people who made the code better - Vladislav Krupenkin (ideea) - joris de wit (jdewit) - Jérémy CROMBEZ (jeremy) + - Jose Manuel Gonzalez (jgonzalez) - Jorge Maiden (jorgemaiden) - Justin Rainbow (jrainbow) - JuntaTom (juntatom) @@ -998,9 +1020,11 @@ Symfony2 is the result of the work of many people who made the code better - Sebastian Busch (sebu) - André Filipe Gonçalves Neves (seven) - Andrea Giuliano (shark) + - Volker (skydiablo) - Julien Sanchez (sumbobyboys) - Guillermo Gisinger (t3chn0r) - Markus Tacker (tacker) + - Tristan Maindron (tmaindron) - Tyler Stroud (tystr) - Víctor Mateo (victormateo) - Vincent (vincent1870) @@ -1025,6 +1049,7 @@ Symfony2 is the result of the work of many people who made the code better - Muharrem Demirci (mdemirci) - Evgeny Z (meze) - Nicolas de Marqué (nicola) + - Kevin (oxfouzer) - Pierre Geyer (ptheg) - Erik Saunier (snickers) - Matej Žilák (teo_sk) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 66323e43d1..83eb93e98b 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bridge/Doctrine/phpunit.xml.dist b/src/Symfony/Bridge/Doctrine/phpunit.xml.dist index c8f58f3232..9958a1e696 100644 --- a/src/Symfony/Bridge/Doctrine/phpunit.xml.dist +++ b/src/Symfony/Bridge/Doctrine/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bridge/Monolog/phpunit.xml.dist b/src/Symfony/Bridge/Monolog/phpunit.xml.dist index 9dca6482fc..d7efb8e2c9 100644 --- a/src/Symfony/Bridge/Monolog/phpunit.xml.dist +++ b/src/Symfony/Bridge/Monolog/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bridge/Propel1/phpunit.xml.dist b/src/Symfony/Bridge/Propel1/phpunit.xml.dist index 7a5c82b5ff..2d2791f5db 100644 --- a/src/Symfony/Bridge/Propel1/phpunit.xml.dist +++ b/src/Symfony/Bridge/Propel1/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bridge/ProxyManager/phpunit.xml.dist b/src/Symfony/Bridge/ProxyManager/phpunit.xml.dist index 5e7c4337f9..0df7655a0c 100644 --- a/src/Symfony/Bridge/ProxyManager/phpunit.xml.dist +++ b/src/Symfony/Bridge/ProxyManager/phpunit.xml.dist @@ -1,16 +1,16 @@ - diff --git a/src/Symfony/Bridge/Twig/phpunit.xml.dist b/src/Symfony/Bridge/Twig/phpunit.xml.dist index cc9e0e86b1..94215c4408 100644 --- a/src/Symfony/Bridge/Twig/phpunit.xml.dist +++ b/src/Symfony/Bridge/Twig/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bundle/FrameworkBundle/phpunit.xml.dist b/src/Symfony/Bundle/FrameworkBundle/phpunit.xml.dist index 663faf41e8..58e2a75999 100644 --- a/src/Symfony/Bundle/FrameworkBundle/phpunit.xml.dist +++ b/src/Symfony/Bundle/FrameworkBundle/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bundle/SecurityBundle/phpunit.xml.dist b/src/Symfony/Bundle/SecurityBundle/phpunit.xml.dist index 2cffc1e59e..40d28e3360 100644 --- a/src/Symfony/Bundle/SecurityBundle/phpunit.xml.dist +++ b/src/Symfony/Bundle/SecurityBundle/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bundle/TwigBundle/phpunit.xml.dist b/src/Symfony/Bundle/TwigBundle/phpunit.xml.dist index 56e10bdad3..c175c0cf39 100644 --- a/src/Symfony/Bundle/TwigBundle/phpunit.xml.dist +++ b/src/Symfony/Bundle/TwigBundle/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Bundle/WebProfilerBundle/phpunit.xml.dist b/src/Symfony/Bundle/WebProfilerBundle/phpunit.xml.dist index 7750cbdff7..f193c99acf 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/phpunit.xml.dist +++ b/src/Symfony/Bundle/WebProfilerBundle/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/BrowserKit/phpunit.xml.dist b/src/Symfony/Component/BrowserKit/phpunit.xml.dist index 8dff1ea1f9..ae508db748 100644 --- a/src/Symfony/Component/BrowserKit/phpunit.xml.dist +++ b/src/Symfony/Component/BrowserKit/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/ClassLoader/phpunit.xml.dist b/src/Symfony/Component/ClassLoader/phpunit.xml.dist index 0d29c11532..182c597c89 100644 --- a/src/Symfony/Component/ClassLoader/phpunit.xml.dist +++ b/src/Symfony/Component/ClassLoader/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Config/phpunit.xml.dist b/src/Symfony/Component/Config/phpunit.xml.dist index 7ba6e55234..d6cdbe7365 100644 --- a/src/Symfony/Component/Config/phpunit.xml.dist +++ b/src/Symfony/Component/Config/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Console/Output/ConsoleOutput.php b/src/Symfony/Component/Console/Output/ConsoleOutput.php index b5eaf154fa..3560f1c6fc 100644 --- a/src/Symfony/Component/Console/Output/ConsoleOutput.php +++ b/src/Symfony/Component/Console/Output/ConsoleOutput.php @@ -50,7 +50,7 @@ class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface parent::__construct(fopen($outputStream, 'w'), $verbosity, $decorated, $formatter); - $this->stderr = new StreamOutput(fopen('php://stderr', 'w'), $verbosity, $decorated, $formatter); + $this->stderr = new StreamOutput(fopen('php://stderr', 'w'), $verbosity, $decorated, $this->getFormatter()); } /** diff --git a/src/Symfony/Component/Console/Tests/Output/ConsoleOutputTest.php b/src/Symfony/Component/Console/Tests/Output/ConsoleOutputTest.php index 7a3ede3ba8..1afbbb6e6c 100644 --- a/src/Symfony/Component/Console/Tests/Output/ConsoleOutputTest.php +++ b/src/Symfony/Component/Console/Tests/Output/ConsoleOutputTest.php @@ -20,5 +20,6 @@ class ConsoleOutputTest extends \PHPUnit_Framework_TestCase { $output = new ConsoleOutput(Output::VERBOSITY_QUIET, true); $this->assertEquals(Output::VERBOSITY_QUIET, $output->getVerbosity(), '__construct() takes the verbosity as its first argument'); + $this->assertSame($output->getFormatter(), $output->getErrorOutput()->getFormatter(), '__construct() takes a formatter or null as the third argument'); } } diff --git a/src/Symfony/Component/Console/phpunit.xml.dist b/src/Symfony/Component/Console/phpunit.xml.dist index 8a7edd46af..e90c5ce5dd 100644 --- a/src/Symfony/Component/Console/phpunit.xml.dist +++ b/src/Symfony/Component/Console/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/CssSelector/phpunit.xml.dist b/src/Symfony/Component/CssSelector/phpunit.xml.dist index a19dc00b34..c015e7ef6d 100644 --- a/src/Symfony/Component/CssSelector/phpunit.xml.dist +++ b/src/Symfony/Component/CssSelector/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Debug/phpunit.xml.dist b/src/Symfony/Component/Debug/phpunit.xml.dist index 8bab165e10..31324f26e7 100644 --- a/src/Symfony/Component/Debug/phpunit.xml.dist +++ b/src/Symfony/Component/Debug/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/DependencyInjection/phpunit.xml.dist b/src/Symfony/Component/DependencyInjection/phpunit.xml.dist index 53f5f99d60..36f4d0b4b5 100644 --- a/src/Symfony/Component/DependencyInjection/phpunit.xml.dist +++ b/src/Symfony/Component/DependencyInjection/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/DomCrawler/Link.php b/src/Symfony/Component/DomCrawler/Link.php index 05d5e927a2..3eb9e8d50b 100644 --- a/src/Symfony/Component/DomCrawler/Link.php +++ b/src/Symfony/Component/DomCrawler/Link.php @@ -24,10 +24,12 @@ class Link * @var \DOMNode A \DOMNode instance */ protected $node; + /** * @var string The method to use for the link */ protected $method; + /** * @var string The URI of the page where the link is embedded (or the base href) */ @@ -98,34 +100,23 @@ class Link return $this->currentUri; } - // only an anchor + // an anchor if ('#' === $uri[0]) { - $baseUri = $this->currentUri; - if (false !== $pos = strpos($baseUri, '#')) { - $baseUri = substr($baseUri, 0, $pos); - } - - return $baseUri.$uri; + return $this->cleanupAnchor($this->currentUri).$uri; } - // only a query string + $baseUri = $this->cleanupUri($this->currentUri); + if ('?' === $uri[0]) { - $baseUri = $this->currentUri; - - // remove the query string from the current URI - if (false !== $pos = strpos($baseUri, '?')) { - $baseUri = substr($baseUri, 0, $pos); - } - return $baseUri.$uri; } // absolute URL with relative schema if (0 === strpos($uri, '//')) { - return preg_replace('#^([^/]*)//.*$#', '$1', $this->currentUri).$uri; + return preg_replace('#^([^/]*)//.*$#', '$1', $baseUri).$uri; } - $baseUri = preg_replace('#^(.*?//[^/]*)(?:\/.*)?$#', '$1', $this->currentUri); + $baseUri = preg_replace('#^(.*?//[^/]*)(?:\/.*)?$#', '$1', $baseUri); // absolute path if ('/' === $uri[0]) { @@ -194,4 +185,48 @@ class Link $this->node = $node; } + + /** + * Removes the query string and the anchor from the given uri. + * + * @param string $uri The uri to clean + * + * @return string + */ + private function cleanupUri($uri) + { + return $this->cleanupQuery($this->cleanupAnchor($uri)); + } + + /** + * Remove the query string from the uri. + * + * @param string $uri + * + * @return string + */ + private function cleanupQuery($uri) + { + if (false !== $pos = strpos($uri, '?')) { + return substr($uri, 0, $pos); + } + + return $uri; + } + + /** + * Remove the anchor from the uri. + * + * @param string $uri + * + * @return string + */ + private function cleanupAnchor($uri) + { + if (false !== $pos = strpos($uri, '#')) { + return substr($uri, 0, $pos); + } + + return $uri; + } } diff --git a/src/Symfony/Component/DomCrawler/Tests/LinkTest.php b/src/Symfony/Component/DomCrawler/Tests/LinkTest.php index a17142830f..941e4b2f6d 100644 --- a/src/Symfony/Component/DomCrawler/Tests/LinkTest.php +++ b/src/Symfony/Component/DomCrawler/Tests/LinkTest.php @@ -101,7 +101,9 @@ class LinkTest extends \PHPUnit_Framework_TestCase array('', 'http://localhost/bar/', 'http://localhost/bar/'), array('#', 'http://localhost/bar/', 'http://localhost/bar/#'), + array('#bar', 'http://localhost/bar?a=b', 'http://localhost/bar?a=b#bar'), array('#bar', 'http://localhost/bar/#foo', 'http://localhost/bar/#bar'), + array('?a=b', 'http://localhost/bar#foo', 'http://localhost/bar?a=b'), array('?a=b', 'http://localhost/bar/', 'http://localhost/bar/?a=b'), array('http://login.foo.com/foo', 'http://localhost/bar/', 'http://login.foo.com/foo'), @@ -135,6 +137,8 @@ class LinkTest extends \PHPUnit_Framework_TestCase array('../../', 'http://localhost/', 'http://localhost/'), array('../../', 'http://localhost', 'http://localhost/'), + array('/foo', 'http://localhost?bar=1', 'http://localhost/foo'), + array('/foo', 'http://localhost#bar', 'http://localhost/foo'), array('/foo', 'file:///', 'file:///foo'), array('/foo', 'file:///bar/baz', 'file:///foo'), array('foo', 'file:///', 'file:///foo'), diff --git a/src/Symfony/Component/DomCrawler/phpunit.xml.dist b/src/Symfony/Component/DomCrawler/phpunit.xml.dist index 0f8d2da757..7c8f58bab2 100644 --- a/src/Symfony/Component/DomCrawler/phpunit.xml.dist +++ b/src/Symfony/Component/DomCrawler/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/EventDispatcher/phpunit.xml.dist b/src/Symfony/Component/EventDispatcher/phpunit.xml.dist index 0c3de4f7b2..a3e430dde8 100644 --- a/src/Symfony/Component/EventDispatcher/phpunit.xml.dist +++ b/src/Symfony/Component/EventDispatcher/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Filesystem/phpunit.xml.dist b/src/Symfony/Component/Filesystem/phpunit.xml.dist index ef0bf95413..9612e394f3 100644 --- a/src/Symfony/Component/Filesystem/phpunit.xml.dist +++ b/src/Symfony/Component/Filesystem/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Finder/phpunit.xml.dist b/src/Symfony/Component/Finder/phpunit.xml.dist index 23272235b9..54bde1eef8 100644 --- a/src/Symfony/Component/Finder/phpunit.xml.dist +++ b/src/Symfony/Component/Finder/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Form/phpunit.xml.dist b/src/Symfony/Component/Form/phpunit.xml.dist index d0d261f194..83736cbe5f 100644 --- a/src/Symfony/Component/Form/phpunit.xml.dist +++ b/src/Symfony/Component/Form/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/HttpFoundation/phpunit.xml.dist b/src/Symfony/Component/HttpFoundation/phpunit.xml.dist index df11f72c0f..6fdeb6abbb 100644 --- a/src/Symfony/Component/HttpFoundation/phpunit.xml.dist +++ b/src/Symfony/Component/HttpFoundation/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php b/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php index bf9724aa2a..eee1a36658 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Profiler/ProfilerTest.php @@ -79,9 +79,11 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase protected function tearDown() { - $this->storage->purge(); - $this->storage = null; + if (null !== $this->storage) { + $this->storage->purge(); + $this->storage = null; - @unlink($this->tmp); + @unlink($this->tmp); + } } } diff --git a/src/Symfony/Component/HttpKernel/phpunit.xml.dist b/src/Symfony/Component/HttpKernel/phpunit.xml.dist index f8490c3f9e..a6d1f071fd 100644 --- a/src/Symfony/Component/HttpKernel/phpunit.xml.dist +++ b/src/Symfony/Component/HttpKernel/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Intl/phpunit.xml.dist b/src/Symfony/Component/Intl/phpunit.xml.dist index 5e709f137f..0e6e13fd4e 100644 --- a/src/Symfony/Component/Intl/phpunit.xml.dist +++ b/src/Symfony/Component/Intl/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Locale/phpunit.xml.dist b/src/Symfony/Component/Locale/phpunit.xml.dist index ebaa3ef8d0..0180f7bb3f 100644 --- a/src/Symfony/Component/Locale/phpunit.xml.dist +++ b/src/Symfony/Component/Locale/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/OptionsResolver/phpunit.xml.dist b/src/Symfony/Component/OptionsResolver/phpunit.xml.dist index ad24d17ba8..d855fc9ba4 100644 --- a/src/Symfony/Component/OptionsResolver/phpunit.xml.dist +++ b/src/Symfony/Component/OptionsResolver/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Process/phpunit.xml.dist b/src/Symfony/Component/Process/phpunit.xml.dist index 9d5830f9e2..f77a3f8bc0 100644 --- a/src/Symfony/Component/Process/phpunit.xml.dist +++ b/src/Symfony/Component/Process/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/PropertyAccess/phpunit.xml.dist b/src/Symfony/Component/PropertyAccess/phpunit.xml.dist index 8799eaccf5..760b76a5bb 100644 --- a/src/Symfony/Component/PropertyAccess/phpunit.xml.dist +++ b/src/Symfony/Component/PropertyAccess/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Routing/phpunit.xml.dist b/src/Symfony/Component/Routing/phpunit.xml.dist index 830066aab5..5f91149105 100644 --- a/src/Symfony/Component/Routing/phpunit.xml.dist +++ b/src/Symfony/Component/Routing/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Security/phpunit.xml.dist b/src/Symfony/Component/Security/phpunit.xml.dist index 65cc186861..3298ceaa18 100644 --- a/src/Symfony/Component/Security/phpunit.xml.dist +++ b/src/Symfony/Component/Security/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Serializer/phpunit.xml.dist b/src/Symfony/Component/Serializer/phpunit.xml.dist index 691219da83..83cb47d12c 100644 --- a/src/Symfony/Component/Serializer/phpunit.xml.dist +++ b/src/Symfony/Component/Serializer/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Stopwatch/phpunit.xml.dist b/src/Symfony/Component/Stopwatch/phpunit.xml.dist index d3b5ba7cea..f7805624c0 100644 --- a/src/Symfony/Component/Stopwatch/phpunit.xml.dist +++ b/src/Symfony/Component/Stopwatch/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Templating/phpunit.xml.dist b/src/Symfony/Component/Templating/phpunit.xml.dist index 89288dd30e..e71dc18e8c 100644 --- a/src/Symfony/Component/Templating/phpunit.xml.dist +++ b/src/Symfony/Component/Templating/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Translation/Loader/PoFileLoader.php b/src/Symfony/Component/Translation/Loader/PoFileLoader.php index 8ba96680aa..a1aff1a872 100644 --- a/src/Symfony/Component/Translation/Loader/PoFileLoader.php +++ b/src/Symfony/Component/Translation/Loader/PoFileLoader.php @@ -157,7 +157,7 @@ class PoFileLoader extends ArrayLoader implements LoaderInterface private function addMessage(array &$messages, array $item) { if (is_array($item['translated'])) { - $messages[$item['ids']['singular']] = stripcslashes($item['translated'][0]); + $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated'][0]); if (isset($item['ids']['plural'])) { $plurals = $item['translated']; // PO are by definition indexed so sort by index. @@ -169,10 +169,10 @@ class PoFileLoader extends ArrayLoader implements LoaderInterface $empties = array_fill(0, $count+1, '-'); $plurals += $empties; ksort($plurals); - $messages[$item['ids']['plural']] = stripcslashes(implode('|', $plurals)); + $messages[stripcslashes($item['ids']['plural'])] = stripcslashes(implode('|', $plurals)); } } elseif (!empty($item['ids']['singular'])) { - $messages[$item['ids']['singular']] = stripcslashes($item['translated']); + $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated']); } } } diff --git a/src/Symfony/Component/Translation/Tests/Loader/PoFileLoaderTest.php b/src/Symfony/Component/Translation/Tests/Loader/PoFileLoaderTest.php index dc4123c527..87090eb736 100644 --- a/src/Symfony/Component/Translation/Tests/Loader/PoFileLoaderTest.php +++ b/src/Symfony/Component/Translation/Tests/Loader/PoFileLoaderTest.php @@ -69,4 +69,28 @@ class PoFileLoaderTest extends \PHPUnit_Framework_TestCase $this->assertEquals('en', $catalogue->getLocale()); $this->assertEquals(array(new FileResource($resource)), $catalogue->getResources()); } + + public function testEscapedId() + { + $loader = new PoFileLoader(); + $resource = __DIR__.'/../fixtures/escaped-id.po'; + $catalogue = $loader->load($resource, 'en', 'domain1'); + + $messages = $catalogue->all('domain1'); + $this->assertArrayHasKey('escaped "foo"', $messages); + $this->assertEquals('escaped "bar"', $messages['escaped "foo"']); + } + + public function testEscapedIdPlurals() + { + $loader = new PoFileLoader(); + $resource = __DIR__.'/../fixtures/escaped-id-plurals.po'; + $catalogue = $loader->load($resource, 'en', 'domain1'); + + $messages = $catalogue->all('domain1'); + $this->assertArrayHasKey('escaped "foo"', $messages); + $this->assertArrayHasKey('escaped "foos"', $messages); + $this->assertEquals('escaped "bar"', $messages['escaped "foo"']); + $this->assertEquals('escaped "bar"|escaped "bars"', $messages['escaped "foos"']); + } } diff --git a/src/Symfony/Component/Translation/Tests/fixtures/escaped-id-plurals.po b/src/Symfony/Component/Translation/Tests/fixtures/escaped-id-plurals.po new file mode 100644 index 0000000000..c412aa26ec --- /dev/null +++ b/src/Symfony/Component/Translation/Tests/fixtures/escaped-id-plurals.po @@ -0,0 +1,10 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" + +msgid "escaped \"foo\"" +msgid_plural "escaped \"foos\"" +msgstr[0] "escaped \"bar\"" +msgstr[1] "escaped \"bars\"" diff --git a/src/Symfony/Component/Translation/Tests/fixtures/escaped-id.po b/src/Symfony/Component/Translation/Tests/fixtures/escaped-id.po new file mode 100644 index 0000000000..308eadd926 --- /dev/null +++ b/src/Symfony/Component/Translation/Tests/fixtures/escaped-id.po @@ -0,0 +1,8 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" + +msgid "escaped \"foo\"" +msgstr "escaped \"bar\"" diff --git a/src/Symfony/Component/Translation/phpunit.xml.dist b/src/Symfony/Component/Translation/phpunit.xml.dist index 1b37f2142a..cba02055e7 100644 --- a/src/Symfony/Component/Translation/phpunit.xml.dist +++ b/src/Symfony/Component/Translation/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf index e0a8e453fc..11db4d8743 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.it.xlf @@ -246,6 +246,62 @@ This value is not a valid currency. Questo valore non è una valuta valida. + + This value should be equal to {{ compared_value }}. + Questo valore dovrebbe essere uguale a {{ compared_value }}. + + + This value should be greater than {{ compared_value }}. + Questo valore dovrebbe essere maggiore di {{ compared_value }}. + + + This value should be greater than or equal to {{ compared_value }}. + Questo valore dovrebbe essere maggiore o uguale a {{ compared_value }}. + + + This value should be identical to {{ compared_value_type }} {{ compared_value }}. + Questo valore dovrebbe essere identico a {{ compared_value_type }} {{ compared_value }}. + + + This value should be less than {{ compared_value }}. + Questo valore dovrebbe essere minore di {{ compared_value }}. + + + This value should be less than or equal to {{ compared_value }}. + Questo valore dovrebbe essere minore o uguale a {{ compared_value }}. + + + This value should not be equal to {{ compared_value }}. + Questo valore dovrebbe essere diverso da {{ compared_value }}. + + + This value should not be identical to {{ compared_value_type }} {{ compared_value }}. + Questo valore dovrebbe essere diverso da {{ compared_value_type }} {{ compared_value }}. + + + The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. + Il rapporto di aspetto dell'immagine è troppo grande ({{ ratio }}). Il rapporto massimo consentito è {{ max_ratio }}. + + + The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. + Il rapporto di aspetto dell'immagine è troppo piccolo ({{ ratio }}). Il rapporto minimo consentito è {{ min_ratio }}. + + + The image is square ({{ width }}x{{ height }}px). Square images are not allowed. + L'immagine è quadrata ({{ width }}x{{ height }}px). Le immagini quadrate non sono consentite. + + + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + L'immagine è orizzontale ({{ width }}x{{ height }}px). Le immagini orizzontali non sono consentite. + + + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + L'immagine è verticale ({{ width }}x{{ height }}px). Le immagini verticali non sono consentite. + + + An empty file is not allowed. + Un file vuoto non è consentito. + diff --git a/src/Symfony/Component/Validator/phpunit.xml.dist b/src/Symfony/Component/Validator/phpunit.xml.dist index c7f1cef070..d2a0ec7e18 100644 --- a/src/Symfony/Component/Validator/phpunit.xml.dist +++ b/src/Symfony/Component/Validator/phpunit.xml.dist @@ -1,6 +1,8 @@ - diff --git a/src/Symfony/Component/Yaml/phpunit.xml.dist b/src/Symfony/Component/Yaml/phpunit.xml.dist index aa77e9de77..9894db629b 100644 --- a/src/Symfony/Component/Yaml/phpunit.xml.dist +++ b/src/Symfony/Component/Yaml/phpunit.xml.dist @@ -1,6 +1,8 @@ -