33namespace Test \DevCoder ;
44
55use DevCoder \DotEnv ;
6+ use DevCoder \Option ;
67use PHPUnit \Framework \TestCase ;
78
89class DotenvTest extends TestCase
@@ -50,19 +51,19 @@ public function testFileNotExist() {
5051 public function testProcessBoolean ()
5152 {
5253 (new DotEnv ($ this ->env ('.env.boolean ' ), [
53- DotEnv ::PROCESS_BOOLEANS => true
54+ Option ::PROCESS_BOOLEANS => true
5455 ]))->load ();
5556
5657 $ this ->assertEquals (false , $ _ENV ['FALSE1 ' ]);
5758 $ this ->assertEquals (false , $ _ENV ['FALSE2 ' ]);
5859 $ this ->assertEquals (false , $ _ENV ['FALSE3 ' ]);
59- $ this ->assertEquals (" ' false' " , $ _ENV ['FALSE4 ' ]);
60+ $ this ->assertEquals (false , $ _ENV ['FALSE4 ' ]);
6061 $ this ->assertEquals ('0 ' , $ _ENV ['FALSE5 ' ]);
6162
6263 $ this ->assertEquals (true , $ _ENV ['TRUE1 ' ]);
6364 $ this ->assertEquals (true , $ _ENV ['TRUE2 ' ]);
6465 $ this ->assertEquals (true , $ _ENV ['TRUE3 ' ]);
65- $ this ->assertEquals (" ' true' " , $ _ENV ['TRUE4 ' ]);
66+ $ this ->assertEquals (true , $ _ENV ['TRUE4 ' ]);
6667 $ this ->assertEquals ('1 ' , $ _ENV ['TRUE5 ' ]);
6768 }
6869
@@ -72,11 +73,47 @@ public function testProcessBoolean()
7273 public function testDontProcessBoolean ()
7374 {
7475 (new DotEnv ($ this ->env ('.env.boolean ' ), [
75- DotEnv ::PROCESS_BOOLEANS => false
76+ Option ::PROCESS_BOOLEANS => false
7677 ]))->load ();
7778
7879 $ this ->assertEquals ('false ' , $ _ENV ['FALSE1 ' ]);
7980
8081 $ this ->assertEquals ('true ' , $ _ENV ['TRUE1 ' ]);
8182 }
83+
84+ /**
85+ * @runInSeparateProcess
86+ */
87+ public function testProcessQuotes ()
88+ {
89+ (new DotEnv ($ this ->env ('.env.quotes ' ), [
90+ Option::PROCESS_QUOTES => true
91+ ]))->load ();
92+
93+ $ this ->assertEquals ('q1 ' , $ _ENV ['QUOTED1 ' ]);
94+ $ this ->assertEquals ('q2 ' , $ _ENV ['QUOTED2 ' ]);
95+ $ this ->assertEquals ('"q3" ' , $ _ENV ['QUOTED3 ' ]);
96+ $ this ->assertEquals ('This is a "sample" value ' , $ _ENV ['QUOTED4 ' ]);
97+ $ this ->assertEquals ('\"This is a "sample" value\" ' , $ _ENV ['QUOTED5 ' ]);
98+ $ this ->assertEquals ('"q6 ' , $ _ENV ['QUOTED6 ' ]);
99+ $ this ->assertEquals ('q7" ' , $ _ENV ['QUOTED7 ' ]);
100+ }
101+
102+ /**
103+ * @runInSeparateProcess
104+ */
105+ public function testDontProcessQuotes ()
106+ {
107+ (new DotEnv ($ this ->env ('.env.quotes ' ), [
108+ Option::PROCESS_QUOTES => false
109+ ]))->load ();
110+
111+ $ this ->assertEquals ('"q1" ' , $ _ENV ['QUOTED1 ' ]);
112+ $ this ->assertEquals ('\'q2 \'' , $ _ENV ['QUOTED2 ' ]);
113+ $ this ->assertEquals ('""q3"" ' , $ _ENV ['QUOTED3 ' ]);
114+ $ this ->assertEquals ('"This is a "sample" value" ' , $ _ENV ['QUOTED4 ' ]);
115+ $ this ->assertEquals ('\"This is a "sample" value\" ' , $ _ENV ['QUOTED5 ' ]);
116+ $ this ->assertEquals ('"q6 ' , $ _ENV ['QUOTED6 ' ]);
117+ $ this ->assertEquals ('q7" ' , $ _ENV ['QUOTED7 ' ]);
118+ }
82119}
0 commit comments