Merge branch '2.8' into 3.2

* 2.8:
  [Form] backport DependencyInjectionExtension tests
  [Form] Fixed typo in a test after #21877
This commit is contained in:
Fabien Potencier 2017-03-05 11:53:04 -08:00
commit 4d91022480
2 changed files with 36 additions and 9 deletions

View File

@ -35,9 +35,9 @@ class DependencyInjectionExtensionTest extends TestCase
->willReturn('other'); ->willReturn('other');
$services = array( $services = array(
'extension1' => $typeExtension1, 'extension1' => $typeExtension1 = $this->createFormTypeExtensionMock('test'),
'extension2' => $typeExtension2, 'extension2' => $typeExtension2 = $this->createFormTypeExtensionMock('test'),
'extension3' => $typeExtension3, 'extension3' => $typeExtension3 = $this->createFormTypeExtensionMock('other'),
); );
$container->expects($this->any()) $container->expects($this->any())
@ -78,4 +78,33 @@ class DependencyInjectionExtensionTest extends TestCase
$extension->getTypeExtensions('test'); $extension->getTypeExtensions('test');
} }
public function testGetTypeGuesser()
{
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerInterface')->getMock();
$container
->expects($this->once())
->method('get')
->with('foo')
->willReturn($this->getMockBuilder('Symfony\Component\Form\FormTypeGuesserInterface')->getMock());
$extension = new DependencyInjectionExtension($container, array(), array(), array('foo'));
$this->assertInstanceOf('Symfony\Component\Form\FormTypeGuesserChain', $extension->getTypeGuesser());
}
public function testGetTypeGuesserReturnsNullWhenNoTypeGuessersHaveBeenConfigured()
{
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerInterface')->getMock();
$extension = new DependencyInjectionExtension($container, array(), array(), array());
$this->assertNull($extension->getTypeGuesser());
}
private function createFormTypeExtensionMock($extendedType)
{
$extension = $this->getMockBuilder('Symfony\Component\Form\FormTypeExtensionInterface')->getMock();
$extension->expects($this->any())->method('getExtendedType')->willReturn($extendedType);
return $extension;
}
} }

View File

@ -517,22 +517,20 @@ class SimpleFormTest extends AbstractFormTest
$this->assertSame('default', $form->getData()); $this->assertSame('default', $form->getData());
} }
public function testPresSetDataChangesDataIfDataIsLocked() public function testPreSetDataChangesDataIfDataIsLocked()
{ {
$config = new FormConfigBuilder('name', null, $this->dispatcher); $config = new FormConfigBuilder('name', null, $this->dispatcher);
$config $config
->setData('default') ->setData('default')
->setDataLocked(true) ->setDataLocked(true)
->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) { ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$event->setData('foobar'); $event->setData('foobar');
}); });
$form = new Form($config); $form = new Form($config);
$form->submit(false);
$this->assertTrue($form->isValid());
$this->assertSame('foobar', $form->getData()); $this->assertSame('foobar', $form->getData());
$this->assertSame('foobar', $form->getNormData());
$this->assertSame('foobar', $form->getViewData());
} }
public function testSubmitConvertsEmptyToNullIfNoTransformer() public function testSubmitConvertsEmptyToNullIfNoTransformer()