diff --git a/wagtail/wagtailadmin/tests/test_blocks.py b/wagtail/wagtailadmin/tests/test_blocks.py
new file mode 100644
index 000000000..eb9c74a1f
--- /dev/null
+++ b/wagtail/wagtailadmin/tests/test_blocks.py
@@ -0,0 +1,55 @@
+import unittest
+
+from django import forms
+from django.core.exceptions import ValidationError
+
+from wagtail.wagtailadmin import blocks
+
+
+class TestFieldBlock(unittest.TestCase):
+ def test_charfield_render(self):
+ block = blocks.FieldBlock(forms.CharField())
+ html = block.render("Hello world!")
+
+ self.assertEqual(html, "Hello world!")
+
+ def test_charfield_render_form(self):
+ block = blocks.FieldBlock(forms.CharField())
+ html = block.render_form("Hello world!")
+
+ self.assertIn('
', html)
+ self.assertIn('
', html)
+
+ def test_charfield_render_form_with_prefix(self):
+ block = blocks.FieldBlock(forms.CharField())
+ html = block.render_form("Hello world!", prefix='foo')
+
+ self.assertIn('
', html)
+
+ def test_charfield_render_form_with_error(self):
+ block = blocks.FieldBlock(forms.CharField())
+ html = block.render_form("Hello world!", error=ValidationError("This field is required."))
+
+ self.assertIn('This field is required.', html)
+
+ @unittest.expectedFailure
+ def test_choicefield_render(self):
+ block = blocks.FieldBlock(forms.ChoiceField(choices=(
+ ('choice-1', "Choice 1"),
+ ('choice-2', "Choice 2"),
+ )))
+ html = block.render('choice-2')
+
+ self.assertEqual(html, "Choice 2")
+
+ def test_choicefield_render_form(self):
+ block = blocks.FieldBlock(forms.ChoiceField(choices=(
+ ('choice-1', "Choice 1"),
+ ('choice-2', "Choice 2"),
+ )))
+ html = block.render_form('choice-2')
+
+ self.assertIn('
', html)
+ self.assertIn('