1[basic]
2basicval = bar
3longval  = 12345
4with.dot = fooobar
5boolon = on
6booltrue = true
7boolyes = yes
8booloff = off
9boolfalse = false
10boolnone = none
11boolno = no
12string = asdadfsdjkslkj ¡@£$$ { }[ ]/%#¤
13sqstring = 'adsasdadasdasd'
14dqstring = "asdadfsdjkslkj ¡@£$$ { } !^~|¥¥{[()/)&/% ¤ # #"
15php_constant = E_WARNING
16user_constant = TEST_CONSTANT
17
18[basic with whitespace]
19basicval = 	 	 bar
20longval  = 	 	 	12345
21with.dot = 	 	 	fooobar
22boolon = 	  	on
23booltrue = 	 	 true
24boolyes =		 	  yes
25booloff =	 	  off
26boolfalse =  	 	 false
27boolnone = 	 	 none
28boolno =	 	  no
29sqstring = 	 	 'adsasdadasdasd'
30dqstring = 	 	 		 "asdadfsdjkslkj ¡@£$$€¥¥{[()/)&/%#¤"
31php_constant =  	 	 E_WARNING
32
33[comments]
34; some comment
35  	; some comment with whitespace
36somecomment = comment follows;aaa@bbb ; comment here
37;
38
39[variables]
40var1 = ${basicval}
41var2 = ${basicval}/foo
42var3 = foo/${basicval}
43var4 = foo/${basicval}/foo
44quoted_var1 = "${basicqval}"
45quoted_var2 = "${basicqval}/foo"
46quoted_var3 = "foo/${basicqval}"
47quoted_var4 = "foo/${basicqval}/foo"
48
49[offset values]
50foo1[] = "basic offset 1"
51foo1[ 	] = "basic offset 2"
52foo2[123] = "long offset"
53foo3[abc] = "string offset"
54foo4[""] = "quoted offset 1"
55foo4[" "] = "quoted offset 2"
56foo4["sqfoobar"] = "quoted string offset"
57foo4['dqfoobar'] = "single quoted offset"
58foo6[${basicval}] = "variable"
59foo6[${basicval}/foo] = "variable with string 1"
60foo6[foo/${basicval}] = "variable with string 2"
61foo6[foo/${basicval}/foo] = "variable with string 3"
62foo7["${basicqval}"] = "quoted variable 1"
63foo7["${basicqval}/foo"] = "quoted variable 2"
64foo7["foo/${basicqval}"] = "quoted variable 3"
65foo7[ "foo/${basicqval}/foo" ] = "quoted variable 4"
66
67[non value]
68novalue_option1	 	  =
69novalue_option2=
70novalue_option3		  =
71novalue_option4=
72novalue_option4[] 		 =
73novalue_option4[]=
74novalue_option4[]=
75
76["Quoted strings and variables in sections"]
77
78[${basicval}]
79[${undefinedval:-foo}]
80[${basicval}/foo]
81[foo/${basicval}]
82[foo/${basicval}/foo]
83
84["${basicqval}"]
85["${undefinedval:-foo}"]
86["${basicqval}/foo"]
87["foo/${basicqval}"]
88["foo/${basicqval}/foo"]
89
90[PATH=${basicval}/no/quotes]
91; Invalid!
92;[PATH="${basicval}/path/quoted"]
93["PATH=${basicval}/all/quoted"]
94
95; This is test for bug #29306
96[01]
97e=e
98f=f
99[02]
100g=g
101h=h
102[1]
103a=a
104b=b
105[2]
106c=c
107d=d
108[0815]
109bla=bla
110
111;Test for bug #43923
112[bug #43923]
113curly1 = {
114curly2 = "{"
115curly3 = '{'
116
117;Test for bug #44019
118[bug #44019]
119concatenation_before = TEST_CONSTANT "+some_text_after"
120concatenation_middle = "some_text_before+" TEST_CONSTANT "+some_text_after"
121concatenation_after = "some_text_before+" TEST_CONSTANT
122concatenation_nows_before = TEST_CONSTANT"+some_text_after"
123concatenation_nows_middle = "some_text_before+"TEST_CONSTANT"+some_text_after"
124concatenation_nows_after = "some_text_before+"TEST_CONSTANT
125
126;Test for bug #43915
127[bug #43915]
128ini_with-hyphen = with hyphen and underscore
129ini.with-hyphen = dot and hyphen
130ini-with.hyphen = hyphen and dot
131
132[windows paths]
133winpath1="c:\some windows\path\test\new\r\quote \" here\single ' quote\some more"
134winpath2="special case\"
135
136[characters escaping]
137; Note: single-quoted strings don't support characters escaping, and the line below
138;       is single-quoted string, followed by unquoted text, followed by single-quoted '.'
139single_quoted = 'She said \'Exactly my point\'.'
140double_quoted = "She said \"Exactly my point\"."
141double_quoted_2 = "Use \\\" to escape double quote"
142double_quoted_multiline = "Lorem \"ipsum\"""
143 dolor"
144dollar_test = "\${test}"
145unescaped ="\n\r\t"
146
147[variable-fallback]
148defined1 = "Hello, ${basicval:-world}!"
149defined2 = ${basicval:-123}
150falsy = ${falsyval:-hi}
151undefined = "Hello, ${undefined_var:-world}!"
152empty = ${emptyval:-foo}
153spaces = ${undefined_var:-hi there}
154exclamation = ${hi_is_this_undefined:-"no, this is fallback!"}
155nested = ${undefined_var:-${also_undefined:-${undefined_too:-hello}}}
156hostname = localhost:${undefined_var:-8080}
157outer_quotes = "foo:${undefined_var:-bar}"
158number_value = ${undefined_var:-12345}
159true_value = ${undefined_var:-true}
160false_value = ${undefined_var:-false}
161null_value = ${undefined_var:-null}
162empty1 = ${undefined_var:-}
163empty2 = ${undefined}
164constant = ${undefined:-TEST_CONSTANT}
165INI:WITH:COLON = ${INI:WITH:COLON:-}
166NONEXISTENT:INI:WITH:COLON = ${NONEXISTENT:INI:WITH:COLON:-fallback}
167