From 58d7302b495783edd6e0826c100ffa93acb0693d Mon Sep 17 00:00:00 2001 From: Etienne Baroux Date: Mon, 2 Jun 2014 12:17:37 +0200 Subject: [ticket/12602] Add files to print the cron list and test files. PHPBB3-12602 --- tests/console/cron/cron_list_test.php | 100 +++++++++++++++++++++ tests/console/cron/tasks/simple_not_ready.php | 13 +++ tests/console/cron/tasks/simple_not_runnable.php | 18 ++++ tests/console/cron/tasks/simple_ready.php | 13 +++ tests/console/cron/tasks/simple_should_not_run.php | 18 ++++ 5 files changed, 162 insertions(+) create mode 100644 tests/console/cron/cron_list_test.php create mode 100644 tests/console/cron/tasks/simple_not_ready.php create mode 100644 tests/console/cron/tasks/simple_not_runnable.php create mode 100644 tests/console/cron/tasks/simple_ready.php create mode 100644 tests/console/cron/tasks/simple_should_not_run.php (limited to 'tests/console/cron') diff --git a/tests/console/cron/cron_list_test.php b/tests/console/cron/cron_list_test.php new file mode 100644 index 0000000000..12fac4a832 --- /dev/null +++ b/tests/console/cron/cron_list_test.php @@ -0,0 +1,100 @@ +user = $this->getMock('\phpbb\user'); + $this->user->method('lang')->will($this->returnArgument(0)); + } + + public function test_no_task() + { + $tasks = array(); + $this->get_cron_manager($tasks); + $command_tester = $this->get_command_tester(); + $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true)); + $this->assertContains('NO_TASK', $command_tester->getDisplay()); + } + + public function test_only_ready() + { + $tasks = array( + new phpbb_cron_task_simple(), + new phpbb_cron_task_simple() + ); + $this->get_cron_manager($tasks); + $command_tester = $this->get_command_tester(); + $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true)); + $this->assertContains('TASKS_READYcommand1command2', preg_replace('/\s+/', '', $command_tester->getDisplay())); + } + + public function test_only_not_ready() + { + $tasks = array( + new phpbb_cron_task_simple_not_ready(), + new phpbb_cron_task_simple_not_ready() + ); + $this->get_cron_manager($tasks); + $command_tester = $this->get_command_tester(); + $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true)); + $this->assertContains('TASKS_NOT_READYcommand1command2', preg_replace('/\s+/', '', $command_tester->getDisplay())); + } + + public function test_both_ready() + { + $tasks = array( + new phpbb_cron_task_simple(), + new phpbb_cron_task_simple(), + new phpbb_cron_task_simple_not_ready(), + new phpbb_cron_task_simple_not_ready() + ); + $this->get_cron_manager($tasks); + $command_tester = $this->get_command_tester(); + $command_tester->execute(array('command' => $this->command_name, '--no-ansi' => true)); + $this->assertSame('TASKS_READYcommand1command2TASKS_NOT_READYcommand3command4', preg_replace('/\s+/', '', $command_tester->getDisplay())); + } + + public function get_cron_manager(array $tasks) + { + global $pathEx, $phpbb_root_path; + $i = 1; + foreach ($tasks as $task) + { + $task->set_name('command' . $i); + $i++; + } + $this->cron_manager = new \phpbb\cron\manager($tasks, $phpbb_root_path, $pathEx); + } + + public function get_command_tester() + { + $application = new Application(); + $application->add(new cron_list($this->cron_manager, $this->user)); + + $command = $application->find('cron:list'); + $this->command_name = $command->getName(); + return new CommandTester($command); + } +} diff --git a/tests/console/cron/tasks/simple_not_ready.php b/tests/console/cron/tasks/simple_not_ready.php new file mode 100644 index 0000000000..887768e5fe --- /dev/null +++ b/tests/console/cron/tasks/simple_not_ready.php @@ -0,0 +1,13 @@ +