1--TEST--
2Test PECL bug #260628
3--SKIPIF--
4<?php if(!extension_loaded('yaml')) die('skip yaml n/a'); ?>
5--FILE--
6<?php
7$data = <<<YAML
8#yaml
9---
10data: !mytag
11  - look upper
12...
13YAML;
14
15function tag_callback ($value, $tag, $flags) {
16  echo "-- callback value --\n";
17  var_dump($value);
18  var_dump($tag);
19  var_dump($flags);
20  echo "-- end callback value --\n";
21  return array(
22      'data' => $value,
23      'another' => 'test',
24    );
25}
26
27/* baseline. do like operation in native php. */
28$native = array(
29  "data" => array("look upper"),
30);
31$native["data"] = tag_callback($native["data"], "!mytag", 0);
32
33echo "-- native value --\n";
34var_dump($native);
35echo "-- end native value --\n";
36
37$cnt = null;
38$array = yaml_parse($data, 0, $cnt, array(
39    '!mytag' => 'tag_callback',
40  ));
41
42echo "-- parsed value --\n";
43var_dump($array);
44echo "-- end parsed value --\n";
45?>
46--EXPECT--
47-- callback value --
48array(1) {
49  [0]=>
50  string(10) "look upper"
51}
52string(6) "!mytag"
53int(0)
54-- end callback value --
55-- native value --
56array(1) {
57  ["data"]=>
58  array(2) {
59    ["data"]=>
60    array(1) {
61      [0]=>
62      string(10) "look upper"
63    }
64    ["another"]=>
65    string(4) "test"
66  }
67}
68-- end native value --
69-- callback value --
70array(1) {
71  [0]=>
72  string(10) "look upper"
73}
74string(6) "!mytag"
75int(0)
76-- end callback value --
77-- parsed value --
78array(1) {
79  ["data"]=>
80  array(2) {
81    ["data"]=>
82    array(1) {
83      [0]=>
84      string(10) "look upper"
85    }
86    ["another"]=>
87    string(4) "test"
88  }
89}
90-- end parsed value --
91