File: spread_mapping_operator.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 (37 lines) | stat: -rw-r--r-- 1,091 bytes parent folder | download | duplicates (2)
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
--TEST--
Twig supports the spread operator on mappings
--TEMPLATE--
{% for key, value in { firstName: 'Ryan', lastName: 'Weaver', favoriteFood: 'popcorn', ...{favoriteFood: 'pizza', sport: 'running'} } %}
    {{ key }}: {{ value }}
{% endfor %}

{% for key, value in { firstName: 'Ryan', ...morePersonalDetails} %}
    {{ key }}: {{ value }}
{% endfor %}

{% for key, value in { firstName: 'Ryan', ...iterablePersonalDetails} %}
    {{ key }}: {{ value }}
{% endfor %}

{# multiple spreads #}
{% for key, value in { firstName: 'Ryan', ...iterablePersonalDetails, lastName: 'Weaver', ...morePersonalDetails} %}
    {{ key }}: {{ value }}
{% endfor %}
--DATA--
return ['morePersonalDetails' => ['favoriteColor' => 'orange'], 'iterablePersonalDetails' => new \ArrayObject(['favoriteShoes' => 'barefoot'])];
--EXPECT--
    firstName: Ryan
    lastName: Weaver
    favoriteFood: pizza
    sport: running

    firstName: Ryan
    favoriteColor: orange

    firstName: Ryan
    favoriteShoes: barefoot

    firstName: Ryan
    favoriteShoes: barefoot
    lastName: Weaver
    favoriteColor: orange