diff --git a/app/config.php b/app/config.php index b318b902..104183b0 100644 --- a/app/config.php +++ b/app/config.php @@ -326,18 +326,12 @@ function (CgiResult $result) use ($c) { 'appContributors' => [], 'eventListeners' => [ 'realpath-student-submission' => [ - 'cli.verify.start' => [ + 'verify.start' => [ containerListener(RealPathListener::class) ], - 'cli.run.start' => [ + 'run.start' => [ containerListener(RealPathListener::class) ], - 'cgi.verify.start' => [ - containerListener(RealPathListener::class) - ], - 'cgi.run.start' => [ - containerListener(RealPathListener::class) - ] ], 'check-exercise-assigned' => [ 'route.pre.resolve.args' => [ diff --git a/src/Listener/RealPathListener.php b/src/Listener/RealPathListener.php index a2c12a03..a230d678 100644 --- a/src/Listener/RealPathListener.php +++ b/src/Listener/RealPathListener.php @@ -19,6 +19,10 @@ class RealPathListener */ public function __invoke(ExerciseRunnerEvent $event) { + if (!$event->getInput()->hasArgument('program')) { + return; + } + $program = $event->getInput()->getArgument('program'); if (file_exists($program)) { diff --git a/test/RealPathListenerTest.php b/test/Listener/RealPathListenerTest.php similarity index 78% rename from test/RealPathListenerTest.php rename to test/Listener/RealPathListenerTest.php index ee37856e..239aeb17 100644 --- a/test/RealPathListenerTest.php +++ b/test/Listener/RealPathListenerTest.php @@ -1,6 +1,6 @@ assertEquals('test-file.php', $input->getArgument('program')); } - private function runInDir($dir, callable $callback) + public function testInputIsUnchangedIfNoProgramArgument() { - $current = getcwd(); - chdir($dir); - $callback($dir); - chdir($current); + $exercise = new CliExerciseImpl; + $input = new Input('app', ['some-arg' => 'some-value']); + $listener = new RealPathListener; + $listener->__invoke(new ExerciseRunnerEvent('some.event', $exercise, $input)); + + $this->assertEquals('some-value', $input->getArgument('some-arg')); } }