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');
$services = array(
'extension1' => $typeExtension1,
'extension2' => $typeExtension2,
'extension3' => $typeExtension3,
'extension1' => $typeExtension1 = $this->createFormTypeExtensionMock('test'),
'extension2' => $typeExtension2 = $this->createFormTypeExtensionMock('test'),
'extension3' => $typeExtension3 = $this->createFormTypeExtensionMock('other'),
);
$container->expects($this->any())
@ -78,4 +78,33 @@ class DependencyInjectionExtensionTest extends TestCase
$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());
}
public function testPresSetDataChangesDataIfDataIsLocked()
public function testPreSetDataChangesDataIfDataIsLocked()
{
$config = new FormConfigBuilder('name', null, $this->dispatcher);
$config
->setData('default')
->setDataLocked(true)
->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$event->setData('foobar');
});
$form = new Form($config);
$form->submit(false);
$this->assertTrue($form->isValid());
$this->assertSame('foobar', $form->getData());
$this->assertSame('foobar', $form->getNormData());
$this->assertSame('foobar', $form->getViewData());
}
public function testSubmitConvertsEmptyToNullIfNoTransformer()