3
3
namespace Test \DevCoder ;
4
4
5
5
use DevCoder \DotEnv ;
6
+ use DevCoder \Option ;
6
7
use PHPUnit \Framework \TestCase ;
7
8
8
9
class DotenvTest extends TestCase
@@ -50,19 +51,19 @@ public function testFileNotExist() {
50
51
public function testProcessBoolean ()
51
52
{
52
53
(new DotEnv ($ this ->env ('.env.boolean ' ), [
53
- DotEnv ::PROCESS_BOOLEANS => true
54
+ Option ::PROCESS_BOOLEANS => true
54
55
]))->load ();
55
56
56
57
$ this ->assertEquals (false , $ _ENV ['FALSE1 ' ]);
57
58
$ this ->assertEquals (false , $ _ENV ['FALSE2 ' ]);
58
59
$ this ->assertEquals (false , $ _ENV ['FALSE3 ' ]);
59
- $ this ->assertEquals (" ' false' " , $ _ENV ['FALSE4 ' ]);
60
+ $ this ->assertEquals (false , $ _ENV ['FALSE4 ' ]);
60
61
$ this ->assertEquals ('0 ' , $ _ENV ['FALSE5 ' ]);
61
62
62
63
$ this ->assertEquals (true , $ _ENV ['TRUE1 ' ]);
63
64
$ this ->assertEquals (true , $ _ENV ['TRUE2 ' ]);
64
65
$ this ->assertEquals (true , $ _ENV ['TRUE3 ' ]);
65
- $ this ->assertEquals (" ' true' " , $ _ENV ['TRUE4 ' ]);
66
+ $ this ->assertEquals (true , $ _ENV ['TRUE4 ' ]);
66
67
$ this ->assertEquals ('1 ' , $ _ENV ['TRUE5 ' ]);
67
68
}
68
69
@@ -72,11 +73,47 @@ public function testProcessBoolean()
72
73
public function testDontProcessBoolean ()
73
74
{
74
75
(new DotEnv ($ this ->env ('.env.boolean ' ), [
75
- DotEnv ::PROCESS_BOOLEANS => false
76
+ Option ::PROCESS_BOOLEANS => false
76
77
]))->load ();
77
78
78
79
$ this ->assertEquals ('false ' , $ _ENV ['FALSE1 ' ]);
79
80
80
81
$ this ->assertEquals ('true ' , $ _ENV ['TRUE1 ' ]);
81
82
}
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
+ }
82
119
}
0 commit comments