BUGFIX Ensure TextareaField template is encoding characters correctly

This commit is contained in:
Sean Harvey 2011-03-24 17:45:01 +13:00 committed by Ingo Schommer
parent 9e548f501e
commit 19e9b19a1a
2 changed files with 6 additions and 28 deletions

View File

@ -1,5 +1,5 @@
<% if isReadonly %>
<span id="$ID" class="textarea readonly$extraClass"><% if Value %>$Value<% else %><em>(<% _t('NONE', 'none') %>)</em><% end_if %></span>
<span id="$ID" class="readonly$extraClass" name="$Name"><% if Value %>$Value<% else %><em>(<% _t('NONE', 'none') %>)</em><% end_if %></span>
<% else %>
<textarea id="$ID" class="textarea$extraClass" name="$Name" rows="$Rows" cols="$Cols"<% if isDisabled %> disabled<% end_if %>></textarea>
<textarea id="$ID" class="textarea$extraClass" name="$Name" rows="$Rows" cols="$Cols"<% if isDisabled %> disabled<% end_if %>>$Value</textarea>
<% end_if %>

View File

@ -6,43 +6,21 @@ class TextareaFieldTest extends SapphireTest {
* Quick smoke test to ensure that text is being encoded properly.
*/
function testTextEncoding() {
$inputText = "This is my <text>
What's on a new-line?
These are some unicodes: äöü&<>";
$inputText = "This is my <text>These are some unicodes: äöü&<>";
$field = new TextareaField("Test", "Test", 5, 20);
$field->setValue($inputText);
$this->assertEquals(<<<HTML
<textarea id="Test" name="Test" rows="5" cols="20">This is my &lt;text&gt;
What's on a new-line?
These are some unicodes: &auml;&ouml;&uuml;&amp;&lt;&gt;</textarea>
HTML
, $field->Field());
$this->assertContains('This is my &lt;text&gt;These are some unicodes: &auml;&ouml;&uuml;&amp;&lt;&gt;', $field->Field());
}
/**
* Quick smoke test to ensure that text is being encoded properly in readonly fields.
*/
function testReadonlyTextEncoding() {
$inputText = "This is my <text>
What's on a new-line?
These are some unicodes: äöü&<>";
$inputText = "This is my <text>These are some unicodes: äöü&<>";
$field = new TextareaField("Test", "Test", 5, 20);
$field = $field->performReadonlyTransformation();
// Make sure that the field is smart enough to have its value set after being made readonly
$field->setValue($inputText);
$this->assertEquals(<<<HTML
<span id="Test" class="readonly" name="Test" readonly="readonly">This is my &lt;text&gt;<br />
What's on a new-line?<br />
These are some unicodes: &auml;&ouml;&uuml;&amp;&lt;&gt;</span>
<input type="hidden" name="Test" value="This is my &amp;lt;text&amp;gt;&lt;br /&gt;
What&#039;s on a new-line?&lt;br /&gt;
These are some unicodes: &amp;auml;&amp;ouml;&amp;uuml;&amp;amp;&amp;lt;&amp;gt;" />
HTML
, $field->Field());
$this->assertContains('This is my &lt;text&gt;These are some unicodes: &auml;&ouml;&uuml;&amp;&lt;&gt;', $field->Field());
}
}