1--TEST--
2Test htmlspecialchars_decode() function : usage variations - heredoc strings for 'string' argument
3--FILE--
4<?php
5/*
6 * testing htmlspecialchars_decode() with various heredoc strings as argument for $string
7*/
8
9echo "*** Testing htmlspecialchars_decode() : usage variations ***\n";
10
11// empty heredoc string
12$empty_string = <<<EOT
13EOT;
14
15// Heredoc string with blank line
16$blank_line = <<<EOT
17
18EOT;
19
20// heredoc with multiline string
21$multiline_string = <<<EOT
22<html>Roy&#039;s height &gt; Sam&#039;s height
2313 &lt; 25
241111 &amp; 0000 = 0000
25&quot;This is a double quoted string&quot;
26EOT;
27
28// heredoc with different whitespaces
29$diff_whitespaces = <<<EOT
30<html>Roy&#039;s height\r &gt; Sam\t&#039;s height
311111\t\t &amp; 0000\v\v = \f0000
32&quot; heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces&quot;
33EOT;
34
35// heredoc with numeric values
36$numeric_string = <<<EOT
37<html>11 &lt; 12. 123 string 4567
38&quot;string&quot; 1111\t &amp; 0000\t = 0000\n;
39EOT;
40
41// heredoc with quote chars & slash
42$quote_char_string = <<<EOT
43<html>&lt; This's a string with quotes:
44"strings in double quote" &amp;
45'strings in single quote' &quot;
46this\line is &#039;single quoted&#039; /with\slashes </html>
47EOT;
48
49$res_heredoc_strings = array(
50  //heredoc strings
51  $empty_string,
52  $blank_line,
53  $multiline_string,
54  $diff_whitespaces,
55  $numeric_string,
56  $quote_char_string
57);
58
59// loop through $res_heredoc_strings array and check the working on htmlspecialchars_decode()
60$count = 1;
61for($index =0; $index < count($res_heredoc_strings); $index ++) {
62  echo "-- Iteration $count --\n";
63  var_dump( htmlspecialchars_decode($res_heredoc_strings[$index]) );
64  $count++;
65}
66
67echo "Done\n";
68?>
69--EXPECT--
70*** Testing htmlspecialchars_decode() : usage variations ***
71-- Iteration 1 --
72string(0) ""
73-- Iteration 2 --
74string(0) ""
75-- Iteration 3 --
76string(93) "<html>Roy's height > Sam's height
7713 < 25
781111 & 0000 = 0000
79"This is a double quoted string""
80-- Iteration 4 --
81string(120) "<html>Roy's height
81 > Sam	's height
821111		 & 0000 = 0000
83" heredoc
84double quoted string. withdifferentwhitespaces""
85-- Iteration 5 --
86string(62) "<html>11 < 12. 123 string 4567
87"string" 1111	 & 0000	 = 0000
88;"
89-- Iteration 6 --
90string(143) "<html>< This's a string with quotes:
91"strings in double quote" &
92'strings in single quote' "
93this\line is 'single quoted' /with\slashes </html>"
94Done
95