--TEST--
"default" filter
--TEMPLATE--
Variable:
{{ definedVar |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ zeroVar |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ emptyVar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ nullVar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ undefinedVar |default('default') is same as('default') ? 'ok' : 'ko' }}
Array access:
{{ nested.definedVar |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ nested['definedVar'] |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ nested.zeroVar |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ nested.emptyVar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ nested.nullVar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ nested.undefinedVar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ nested['undefinedVar'] |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ undefinedVar.foo |default('default') is same as('default') ? 'ok' : 'ko' }}
Plain values:
{{ 'defined' |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ 0 |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ '' |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ null |default('default') is same as('default') ? 'ok' : 'ko' }}
Precedence:
{{ 'o' ~ nullVar |default('k') }}
{{ 'o' ~ nested.nullVar |default('k') }}
Object methods:
{{ object.foo |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ object.undefinedMethod |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ object.getFoo() |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ object.getFoo('a') |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ object.undefinedMethod() |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ object.undefinedMethod('a') |default('default') is same as('default') ? 'ok' : 'ko' }}
Deep nested:
{{ nested.undefinedVar.foo.bar |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ nested.definedArray.0 |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ nested['definedArray'][0] |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ object.self.foo |default('default') is same as('default') ? 'ko' : 'ok' }}
{{ object.self.undefinedMethod |default('default') is same as('default') ? 'ok' : 'ko' }}
{{ object.undefinedMethod.self |default('default') is same as('default') ? 'ok' : 'ko' }}
--DATA--
return array(
'definedVar' => 'defined',
'zeroVar' => 0,
'emptyVar' => '',
'nullVar' => null,
'nested' => array(
'definedVar' => 'defined',
'zeroVar' => 0,
'emptyVar' => '',
'nullVar' => null,
'definedArray' => array(0),
),
'object' => new TwigTestFoo(),
)
--CONFIG--
return array('strict_variables' => false)
--EXPECT--
Variable:
ok
ok
ok
ok
ok
Array access:
ok
ok
ok
ok
ok
ok
ok
ok
Plain values:
ok
ok
ok
ok
Precedence:
ok
ok
Object methods:
ok
ok
ok
ok
ok
ok
Deep nested:
ok
ok
ok
ok
ok
ok
--DATA--
return array(
'definedVar' => 'defined',
'zeroVar' => 0,
'emptyVar' => '',
'nullVar' => null,
'nested' => array(
'definedVar' => 'defined',
'zeroVar' => 0,
'emptyVar' => '',
'nullVar' => null,
'definedArray' => array(0),
),
'object' => new TwigTestFoo(),
)
--CONFIG--
return array('strict_variables' => true)
--EXPECT--
Variable:
ok
ok
ok
ok
ok
Array access:
ok
ok
ok
ok
ok
ok
ok
ok
Plain values:
ok
ok
ok
ok
Precedence:
ok
ok
Object methods:
ok
ok
ok
ok
ok
ok
Deep nested:
ok
ok
ok
ok
ok
ok
|