21 for (
$i = 0;
$i < 100; ++
$i) {
22 $this->assertTrue(in_array(
twig_random(
$env, $value), $expectedInArray,
true));
30 array(
'apple',
'orange',
'citrus'),
31 array(
'apple',
'orange',
'citrus'),
34 new ArrayObject(array(
'apple',
'orange',
'citrus')),
35 array(
'apple',
'orange',
'citrus'),
62 $max = mt_getrandmax();
64 for (
$i = 0;
$i < 100; ++
$i) {
66 $this->assertTrue(is_int($val) && $val >= 0 && $val <= $max);
73 $this->assertSame(
'',
twig_random(
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock(), array(
'charset' => null)),
''));
76 $this->assertSame($instance,
twig_random(
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock()), $instance));
89 if (!function_exists(
'iconv') && !function_exists(
'mb_convert_encoding')) {
90 $this->markTestSkipped(
'needs iconv or mbstring');
93 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
94 $twig->setCharset(
'ISO-8859-1');
96 $text = twig_convert_encoding(
'Äé',
'ISO-8859-1',
'UTF-8');
97 for (
$i = 0;
$i < 30; ++
$i) {
99 $this->assertTrue(in_array(twig_convert_encoding($rand,
'UTF-8',
'ISO-8859-1'), array(
'Ä',
'é'),
true));
105 if (!function_exists(
'iconv') && !function_exists(
'mb_convert_encoding')) {
106 $this->markTestSkipped(
'needs iconv or mbstring');
109 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
110 $twig->setCharset(
'ISO-8859-1');
112 $input = twig_convert_encoding(
'Äé',
'ISO-8859-1',
'UTF-8');
113 $output = twig_convert_encoding(twig_reverse_filter($twig,
$input),
'UTF-8',
'ISO-8859-1');
115 $this->assertEquals(
$output,
'éÄ');
123 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
124 $twig->getExtension(
'Twig_Extension_Core')->setEscaper(
'foo',
'foo_escaper_for_test');
126 $this->assertSame($expected, twig_escape_filter($twig, $string, $strategy));
132 array(
'fooUTF-8',
'foo',
'foo'),
133 array(
'UTF-8', null,
'foo'),
134 array(
'42UTF-8', 42,
'foo'),
143 twig_escape_filter(
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock()),
'foo',
'bar');
151 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
152 $this->assertSame($expected, twig_first($twig,
$input));
157 $i = array(1 =>
'a', 2 =>
'b', 3 =>
'c');
161 array(1, array(1, 2, 3)),
173 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
174 $this->assertSame($expected, twig_last($twig,
$input));
179 $i = array(1 =>
'a', 2 =>
'b', 3 =>
'c');
183 array(3, array(1, 2, 3)),
195 $this->assertSame($expected, twig_get_array_keys_filter(
$input));
200 $array = array(
'a' =>
'a1',
'b' =>
'b1',
'c' =>
'c1');
201 $keys = array_keys($array);
204 array(
$keys, $array),
208 array(array(), null),
218 $this->assertSame($expected, twig_in_filter($value, $compare));
223 $array = array(1, 2,
'a' => 3, 5, 6, 7);
224 $keys = array_keys($array);
227 array(
true, 1, $array),
228 array(
true,
'3', $array),
229 array(
true,
'3',
'abc3def'),
233 array(
false, 4, $array),
246 $twig =
new Twig_Environment($this->getMockBuilder(
'Twig_LoaderInterface')->getMock());
247 $this->assertSame($expected, twig_slice($twig,
$input,
$start, $length, $preserveKeys));
252 $i = array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4);
256 array(array(
'a' => 1),
$i, 0, 1,
true),
257 array(array(
'a' => 1),
$i, 0, 1,
false),
258 array(array(
'b' => 2,
'c' => 3),
$i, 1, 2),
259 array(array(1), array(1, 2, 3, 4), 0, 1),
260 array(array(2, 3), array(1, 2, 3, 4), 1, 2),
265 array(
'de',
'abcdef', 3, 2),
266 array(array(),
new SimpleXMLElement(
'<items><item>1</item><item>2</item></items>'), 3),
274 return $string.$charset;
281 public function __construct(array $array, array
$keys, $allowAccess =
false, $maxPosition =
false)
283 $this->iterator =
new CoreTestIterator($array, $keys, $allowAccess, $maxPosition);
288 return $this->iterator;
296 public function __construct(array $array, array
$keys, $allowValueAccess =
false, $maxPosition =
false)
303 return $this->iterator;
318 $this->arrayKeys =
$keys;
320 $this->allowValueAccess = $allowValueAccess;
321 $this->maxPosition =
false === $maxPosition ? count($values) + 1 : $maxPosition;
331 if ($this->allowValueAccess) {
332 return $this->array[$this->key()];
335 throw new LogicException(
'Code should only use the keys, not the values provided by iterator.');
340 return $this->arrayKeys[$this->position];
346 if ($this->position === $this->maxPosition) {
347 throw new LogicException(sprintf(
'Code should not iterate beyond %d.', $this->maxPosition));
353 return isset($this->arrayKeys[$this->position]);
testSliceFilter($expected, $input, $start, $length=null, $preserveKeys=false)
provideSliceFilterCases
testRandomFunctionOnNonUTF8String()
__construct(array $array, array $keys, $allowAccess=false, $maxPosition=false)
testRandomFunctionOfEmptyArrayThrowsException()
Twig_Error_Runtime
provideCustomEscaperCases()
testInFilter($expected, $value, $compare)
provideInFilterCases
testReverseFilterOnNonUTF8String()
getRandomFunctionTestData()
__construct(array $values, array $keys, $allowValueAccess=false, $maxPosition=false)
testCustomEscaper($expected, $string, $strategy)
provideCustomEscaperCases
foo_escaper_for_test(Twig_Environment $env, $string, $charset)
testTwigFirst($expected, $input)
provideTwigFirstCases
testRandomFunctionWithoutParameter()
testRandomFunctionReturnsAsIs()
testUnknownCustomEscaper()
Twig_Error_Runtime
testTwigLast($expected, $input)
provideTwigLastCases
twig_random(Twig_Environment $env, $values=null)
Returns a random value depending on the supplied parameter type:
Stores the Twig configuration.
provideSliceFilterCases()
__construct(array $array, array $keys, $allowValueAccess=false, $maxPosition=false)
testArrayKeysFilter(array $expected, $input)
provideArrayKeyCases
testRandomFunction($value, $expectedInArray)
getRandomFunctionTestData