From 44a8537f68872f0587cdf4cceadd433817dfdf60 Mon Sep 17 00:00:00 2001 From: Kirk Mayo Date: Thu, 12 Dec 2013 10:23:29 +1300 Subject: [PATCH] BUG: #2503 Fixes performReadonlyTransformation for OptionSetField NEW: Adding unit test for performReadonlyTransformation #nd fixing OptionSetField #2503 BUG: Fixing undefined variables and function parameters for PerformReadonlyTransformation unit tests NEW: Adding unit test to OptionsetField for read only fields --- forms/OptionsetField.php | 2 +- tests/forms/OptionsetFieldTest.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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'); + } }