File tree Expand file tree Collapse file tree
WebFiori/Framework/Scheduler
tests/WebFiori/Framework/Tests/Scheduler Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -893,6 +893,11 @@ private function getPasswordHelper(): string {
893893 return 'NO_PASSWORD ' ;
894894 }
895895
896+ if (str_starts_with ($ this ->accessPass , 'env: ' )) {
897+ $ resolved = (string ) getenv (substr ($ this ->accessPass , 4 ));
898+ return strlen ($ resolved ) > 0 ? hash ('sha256 ' , $ resolved ) : 'NO_PASSWORD ' ;
899+ }
900+
896901 return $ this ->accessPass ;
897902 }
898903 /**
@@ -1004,6 +1009,10 @@ private function setLogEnabledHelper(bool $bool) {
10041009 * @since 1.0
10051010 */
10061011 private function setPasswordHelper (string $ pass ) {
1012+ if (str_starts_with ($ pass , 'env: ' )) {
1013+ $ this ->accessPass = $ pass ;
1014+ return ;
1015+ }
10071016 if (strlen ($ pass ) != 0 ) {
10081017 $ this ->accessPass = hash ('sha256 ' , $ pass );
10091018 return ;
Original file line number Diff line number Diff line change @@ -191,4 +191,32 @@ public function testWeeklyTask03() {
191191 $ this ->assertEquals ('NO_PASSWORD ' , TasksManager::getPassword ());
192192 TasksManager::run ('' , 'Task Ok ' , true );
193193 }
194+
195+
196+ /**
197+ * @test
198+ * Covers: setPasswordHelper env: branch + getPasswordHelper env: resolution
199+ */
200+ public function testSetPasswordFromEnvVar () {
201+ putenv ('TEST_SCHED_PASS=mysecret ' );
202+ TasksManager::setPassword ('env:TEST_SCHED_PASS ' );
203+
204+ $ this ->assertEquals (hash ('sha256 ' , 'mysecret ' ), TasksManager::getPassword ());
205+
206+ putenv ('TEST_SCHED_PASS ' ); // unset
207+ TasksManager::reset ();
208+ }
209+
210+ /**
211+ * @test
212+ * Covers: getPasswordHelper env: branch when env var is not set -> NO_PASSWORD
213+ */
214+ public function testSetPasswordFromEnvVar_notSet () {
215+ putenv ('UNSET_SCHED_PASS ' ); // ensure unset
216+ TasksManager::setPassword ('env:UNSET_SCHED_PASS ' );
217+
218+ $ this ->assertEquals ('NO_PASSWORD ' , TasksManager::getPassword ());
219+
220+ TasksManager::reset ();
221+ }
194222}
You can’t perform that action at this time.
0 commit comments