silverstripe-framework/tests/php/Forms/CurrencyFieldReadonlyTest.php

54 lines
2.1 KiB
PHP
Raw Normal View History

<?php
namespace SilverStripe\Forms\Tests;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Forms\CurrencyField_Readonly;
use SilverStripe\ORM\FieldType\DBCurrency;
class CurrencyFieldReadonlyTest extends SapphireTest
{
public function testPerformReadonlyTransformation()
{
$field = new CurrencyField_Readonly('Test', '', '$5.00');
$result = $field->performReadonlyTransformation();
$this->assertInstanceOf(CurrencyField_Readonly::class, $result);
$this->assertNotSame($result, $field, 'Should return a clone of the field');
}
public function testFieldWithValue()
{
$field = new CurrencyField_Readonly('Test', '', '$5.00');
$result = $field->Field();
$this->assertStringContainsString('<input', $result, 'An input should be rendered');
$this->assertStringContainsString('readonly', $result, 'The input should be readonly');
$this->assertStringContainsString('$5.00', $result, 'The value should be rendered');
}
public function testFieldWithOutValue()
{
2022-11-15 06:20:54 +01:00
DBCurrency::config()->set('currency_symbol', 'AUD');
$field = new CurrencyField_Readonly('Test', '', null);
$result = $field->Field();
$this->assertStringContainsString('<input', $result, 'An input should be rendered');
$this->assertStringContainsString('readonly', $result, 'The input should be readonly');
$this->assertStringContainsString('AUD0.00', $result, 'The value should be rendered');
}
/**
* @todo: Update the expectation when intl for currencies is implemented
*/
public function testFieldWithCustomisedCurrencySymbol()
{
2022-11-15 06:20:54 +01:00
DBCurrency::config()->set('currency_symbol', '€');
$field = new CurrencyField_Readonly('Test', '', '€5.00');
$result = $field->Field();
$this->assertStringContainsString('<input', $result, 'An input should be rendered');
$this->assertStringContainsString('readonly', $result, 'The input should be readonly');
$this->assertStringContainsString('€5.00', $result, 'The value should be rendered');
}
}