@@ -36,6 +36,44 @@ public function testExecuteBasic()
3636 $ this ->assertEquals (0 , $ code );
3737 }
3838
39+ public function testExecuteArray ()
40+ {
41+ $ output = '' ;
42+ $ input = '' ;
43+ $ cmd = ['php ' , '-r ' , "echo 'hello world'; " ];
44+ $ code = Console::execute ($ cmd , $ input , $ output , 10 );
45+
46+ $ this ->assertEquals ('hello world ' , $ output );
47+ $ this ->assertEquals (0 , $ code );
48+ }
49+
50+ // Validate existing environment variables are passed down to the executed command.
51+ public function testExecuteEnvVariables ()
52+ {
53+ $ randomData = base64_encode (random_bytes (10 ));
54+ putenv ("FOO= {$ randomData }" );
55+
56+ $ output = '' ;
57+ $ input = '' ;
58+ $ cmd = ['printenv ' ];
59+ $ code = Console::execute ($ cmd , $ input , $ output , 10 );
60+
61+ $ this ->assertEquals (0 , $ code );
62+
63+ $ data = [];
64+ foreach (explode ("\n" , $ output ) as $ row ) {
65+ if (empty ($ row )) {
66+ continue ;
67+ }
68+ $ kv = explode ('= ' , $ row , 2 );
69+ $ this ->assertEquals (2 , count ($ kv ), $ row );
70+ $ data [$ kv [0 ]] = $ kv [1 ];
71+ }
72+
73+ $ this ->assertArrayHasKey ('FOO ' , $ data );
74+ $ this ->assertEquals ($ randomData , $ data ['FOO ' ]);
75+ }
76+
3977 public function testExecuteStream ()
4078 {
4179 $ output = '' ;
0 commit comments