diff --git a/model/fieldtypes/StringField.php b/model/fieldtypes/StringField.php index 757dfcbfb..de994c2af 100644 --- a/model/fieldtypes/StringField.php +++ b/model/fieldtypes/StringField.php @@ -9,6 +9,12 @@ abstract class StringField extends DBField { protected $nullifyEmpty = true; + static $casting = array( + "LimitCharacters" => "Text", + "Lower" => "Text", + "Upper" => "Text", + ); + /** * Construct a string type field with a set of optional parameters * @param $name string The name of the field diff --git a/model/fieldtypes/Text.php b/model/fieldtypes/Text.php index 84871a6d9..d300a23c0 100644 --- a/model/fieldtypes/Text.php +++ b/model/fieldtypes/Text.php @@ -17,8 +17,20 @@ * @subpackage model */ class Text extends StringField { + static $casting = array( - "AbsoluteLinks" => "HTMLText", + "AbsoluteLinks" => "Text", + "BigSummary" => "Text", + "ContextSummary" => "Text", + "FirstParagraph" => "Text", + "FirstSentence" => "Text", + "LimitCharacters" => "Text", + "LimitSentences" => "Text", + "Summary" => "Text", + 'EscapeXML' => 'Text', + 'LimitWordCount' => 'Text', + 'LimitWordCountXML' => 'HTMLText', + 'NoHTML' => 'Text', ); /** diff --git a/model/fieldtypes/Varchar.php b/model/fieldtypes/Varchar.php index cb646eca3..ea8029eb7 100644 --- a/model/fieldtypes/Varchar.php +++ b/model/fieldtypes/Varchar.php @@ -10,6 +10,11 @@ * @subpackage model */ class Varchar extends StringField { + + static $casting = array( + "Initial" => "Text", + "URL" => "Text", + ); protected $size; diff --git a/tests/model/HTMLTextTest.php b/tests/model/HTMLTextTest.php index 207e19660..0fc14c10a 100644 --- a/tests/model/HTMLTextTest.php +++ b/tests/model/HTMLTextTest.php @@ -106,5 +106,33 @@ class HTMLTextTest extends SapphireTest { $this->assertEquals($match, $textObj->FirstSentence()); } } + + public function testRAW() { + $data = DBField::create('HTMLText', 'This & This'); + $this->assertEquals($data->RAW(), 'This & This'); + + $data = DBField::create('HTMLText', 'This & This'); + $this->assertEquals($data->RAW(), 'This & This'); + } + + public function testXML() { + $data = DBField::create('HTMLText', 'This & This'); + $this->assertEquals($data->XML(), 'This & This'); + } + + public function testHTML() { + $data = DBField::create('HTMLText', 'This & This'); + $this->assertEquals($data->HTML(), 'This & This'); + } + + public function testJS() { + $data = DBField::create('HTMLText', '"this is a test"'); + $this->assertEquals($data->JS(), '\"this is a test\"'); + } + + public function testATT() { + $data = DBField::create('HTMLText', '"this is a test"'); + $this->assertEquals($data->ATT(), '"this is a test"'); + } } ?> \ No newline at end of file diff --git a/tests/model/TextTest.php b/tests/model/TextTest.php index f48d1e4d8..4c8494311 100644 --- a/tests/model/TextTest.php +++ b/tests/model/TextTest.php @@ -142,6 +142,30 @@ class TextTest extends SapphireTest { 'A dog ate a cat while looking at a Foobar', $textObj->ContextSummary(100, $testKeyword3a) ); - } + + public function testRAW() { + $data = DBField::create('Text', 'This & This'); + $this->assertEquals($data->RAW(), 'This & This'); + } + + public function testXML() { + $data = DBField::create('Text', 'This & This'); + $this->assertEquals($data->XML(), 'This & This'); + } + + public function testHTML() { + $data = DBField::create('Text', 'This & This'); + $this->assertEquals($data->HTML(), 'This & This'); + } + + public function testJS() { + $data = DBField::create('Text', '"this is a test"'); + $this->assertEquals($data->JS(), '\"this is a test\"'); + } + + public function testATT() { + $data = DBField::create('Text', '"this is a test"'); + $this->assertEquals($data->ATT(), '"this is a test"'); + } } \ No newline at end of file