diff --git a/forms/OptionsetField.php b/forms/OptionsetField.php index 5e2e36e12..010c9ff22 100644 --- a/forms/OptionsetField.php +++ b/forms/OptionsetField.php @@ -93,7 +93,7 @@ class OptionsetField extends DropdownField { public function performReadonlyTransformation() { // Source and values are DataObject sets. $field = $this->castedCopy('LookupField'); - $field->setValue($this->getSource()); + $field->setSource($this->getSource()); $field->setReadonly(true); return $field; diff --git a/tests/forms/OptionsetFieldTest.php b/tests/forms/OptionsetFieldTest.php index 0bb4070d1..81d66fe77 100644 --- a/tests/forms/OptionsetFieldTest.php +++ b/tests/forms/OptionsetFieldTest.php @@ -24,4 +24,14 @@ class OptionsetFieldTest extends SapphireTest { '' ); } + + public function testReadonlyField() { + $sourceArray = array(0 => 'No', 1 => 'Yes'); + $field = new OptionsetField('FeelingOk', 'are you feeling ok?', $sourceArray, 1); + $field->setEmptyString('(Select one)'); + $field->setValue(1); + $readonlyField = $field->performReadonlyTransformation(); + preg_match('/Yes/', $field->Field(), $matches); + $this->assertEquals($matches[0], 'Yes'); + } }