public function Twig_Tests_TemplateTest::getGetAttributeTests in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/twig/twig/test/Twig/Tests/TemplateTest.php \Twig_Tests_TemplateTest::getGetAttributeTests()
File
- vendor/twig/twig/test/Twig/Tests/TemplateTest.php, line 281
Class
- Twig_Tests_TemplateTest
Code
public function getGetAttributeTests() {
$array = array(
'defined' => 'defined',
'zero' => 0,
'null' => null,
'1' => 1,
'bar' => true,
'09' => '09',
'+4' => '+4',
);
$objectArray = new Twig_TemplateArrayAccessObject();
$stdObject = (object) $array;
$magicPropertyObject = new Twig_TemplateMagicPropertyObject();
$propertyObject = new Twig_TemplatePropertyObject();
$propertyObject1 = new Twig_TemplatePropertyObjectAndIterator();
$propertyObject2 = new Twig_TemplatePropertyObjectAndArrayAccess();
$propertyObject3 = new Twig_TemplatePropertyObjectDefinedWithUndefinedValue();
$methodObject = new Twig_TemplateMethodObject();
$magicMethodObject = new Twig_TemplateMagicMethodObject();
$anyType = Twig_Template::ANY_CALL;
$methodType = Twig_Template::METHOD_CALL;
$arrayType = Twig_Template::ARRAY_CALL;
$basicTests = array(
array(
true,
'defined',
'defined',
),
array(
false,
null,
'undefined',
),
array(
false,
null,
'protected',
),
array(
true,
0,
'zero',
),
array(
true,
1,
1,
),
array(
true,
1,
1.0,
),
array(
true,
null,
'null',
),
array(
true,
true,
'bar',
),
array(
true,
'09',
'09',
),
array(
true,
'+4',
'+4',
),
);
$testObjects = array(
array(
$array,
$arrayType,
),
array(
$objectArray,
$arrayType,
),
array(
$stdObject,
$anyType,
),
array(
$magicPropertyObject,
$anyType,
),
array(
$methodObject,
$methodType,
),
array(
$methodObject,
$anyType,
),
array(
$propertyObject,
$anyType,
),
array(
$propertyObject1,
$anyType,
),
array(
$propertyObject2,
$anyType,
),
);
$tests = array();
foreach ($testObjects as $testObject) {
foreach ($basicTests as $test) {
if (($testObject[0] instanceof stdClass || $testObject[0] instanceof Twig_TemplatePropertyObject) && is_numeric($test[2])) {
continue;
}
if ('+4' === $test[2] && $methodObject === $testObject[0]) {
continue;
}
$tests[] = array(
$test[0],
$test[1],
$testObject[0],
$test[2],
array(),
$testObject[1],
);
}
}
$tests = array_merge($tests, array(
array(
true,
null,
$propertyObject3,
'foo',
array(),
$anyType,
),
));
$tests = array_merge($tests, array(
array(
true,
'defined',
$methodObject,
'defined',
array(),
$methodType,
),
array(
true,
'defined',
$methodObject,
'DEFINED',
array(),
$methodType,
),
array(
true,
'defined',
$methodObject,
'getDefined',
array(),
$methodType,
),
array(
true,
'defined',
$methodObject,
'GETDEFINED',
array(),
$methodType,
),
array(
true,
'static',
$methodObject,
'static',
array(),
$methodType,
),
array(
true,
'static',
$methodObject,
'getStatic',
array(),
$methodType,
),
array(
true,
'__call_undefined',
$magicMethodObject,
'undefined',
array(),
$methodType,
),
array(
true,
'__call_UNDEFINED',
$magicMethodObject,
'UNDEFINED',
array(),
$methodType,
),
));
foreach ($tests as $test) {
if ($anyType !== $test[5]) {
$test[5] = $anyType;
$tests[] = $test;
}
}
$methodAndPropObject = new Twig_TemplateMethodAndPropObject();
$tests = array_merge($tests, array(
array(
true,
'a',
$methodAndPropObject,
'a',
array(),
$anyType,
),
array(
true,
'a',
$methodAndPropObject,
'a',
array(),
$methodType,
),
array(
false,
null,
$methodAndPropObject,
'a',
array(),
$arrayType,
),
array(
true,
'b_prop',
$methodAndPropObject,
'b',
array(),
$anyType,
),
array(
true,
'b',
$methodAndPropObject,
'B',
array(),
$anyType,
),
array(
true,
'b',
$methodAndPropObject,
'b',
array(),
$methodType,
),
array(
true,
'b',
$methodAndPropObject,
'B',
array(),
$methodType,
),
array(
false,
null,
$methodAndPropObject,
'b',
array(),
$arrayType,
),
array(
false,
null,
$methodAndPropObject,
'c',
array(),
$anyType,
),
array(
false,
null,
$methodAndPropObject,
'c',
array(),
$methodType,
),
array(
false,
null,
$methodAndPropObject,
'c',
array(),
$arrayType,
),
));
$tests = array_merge($tests, array(
array(
false,
null,
42,
'a',
array(),
$anyType,
false,
'Impossible to access an attribute ("a") on a integer variable ("42")',
),
array(
false,
null,
'string',
'a',
array(),
$anyType,
false,
'Impossible to access an attribute ("a") on a string variable ("string")',
),
array(
false,
null,
array(),
'a',
array(),
$anyType,
false,
'Key "a" does not exist as the array is empty',
),
));
if (function_exists('twig_template_get_attributes')) {
foreach (array_slice($tests, 0) as $test) {
$test = array_pad($test, 7, null);
$test[6] = true;
$tests[] = $test;
}
}
return $tests;
}