File: filter.test

package info (click to toggle)
php-twig 3.20.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,940 kB
  • sloc: php: 23,320; makefile: 110; sh: 43
file content (77 lines) | stat: -rw-r--r-- 1,425 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
--TEST--
"filter" filter
--TEMPLATE--
{% set offset = 3 %}

{% for k, v in [1, 5, 3, 4, 5]|filter((v) => v > offset) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in {a: 1, b: 2, c: 5, d: 8}|filter(v => v > offset) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in {a: 1, b: 2, c: 5, d: 8}|filter((v, k) => (v > offset) and (k != "d")) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in [1, 5, 3, 4, 5]|filter(v => v > offset) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in it|filter((v) => v > offset) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in ita|filter(v => v > offset) -%}
    {{ k }} = {{ v }}
{% endfor %}

{% for k, v in xml|filter(x => true) %}
{{ k }}/{{ v }}
{% endfor %}

{# we can iterate more than once #}
{% for k, v in xml|filter(x => true) %}
{{ k }}/{{ v }}
{% endfor %}

{% set coll = ['a', 'b']|filter(v => v is same as('a')) %}
{% if coll|length > 0 %}
    {{- coll|join(', ') }}
{% endif %}
--DATA--
return [
    'it' => new \ArrayIterator(['a' => 1, 'b' => 2, 'c' => 5, 'd' => 8]),
    'ita' => new Twig\Tests\IteratorAggregateStub(['a' => 1, 'b' => 2, 'c' => 5, 'd' => 8]),
    'xml' => new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><doc><elem>foo</elem><elem>bar</elem><elem>baz</elem></doc>'),
]
--EXPECT--
1 = 5
3 = 4
4 = 5

c = 5
d = 8

c = 5

1 = 5
3 = 4
4 = 5

c = 5
d = 8

c = 5
d = 8

elem/foo
elem/bar
elem/baz

elem/foo
elem/bar
elem/baz

a