initOutput(\rcmail_action::MODE_HTTP, 'settings', 'managesieve'); // Set expected storage function calls/results self::mockStorage() ->registerFunction('list_folders_subscribed', [ 'INBOX', 'Test', ]) ->registerFunction('mod_folder', 'Test') ->registerFunction('mod_folder', 'Test') ->registerFunction('folder_attributes', []); $plugin = new \managesieve($rcube->plugins); $engine = new \rcube_sieve_engine($plugin); setProperty($engine, 'exts', ['copy', 'currentdate', 'date', 'duplicate', 'editheader', 'enotify', 'envelope', 'fileinto', 'imap4flags', 'index', 'mime', 'regex', 'reject', 'relational', 'spamtest', 'subaddress', 'vacation', 'vacation-seconds', 'variables']); $result = $engine->filter_form([]); $this->assertFalse($output->get_env('rule_disabled')); $this->assertTrue(strpos($result, '
assertTrue(strpos($result, '') !== false); $this->assertTrue(strpos($result, '
') !== false); $this->assertTrue(strpos($result, '
') !== false); // TODO: Test it for real } /** * Test strip_value() * * @dataProvider provide_strip_value_cases */ #[DataProvider('provide_strip_value_cases')] public function test_strip_value($expected, $args) { $rcube = \rcube::get_instance(); $plugin = new \managesieve($rcube->plugins); $engine = new \rcube_sieve_engine($plugin); $this->assertSame($expected, invokeMethod($engine, 'strip_value', $args)); } /** * Data sets for strip_value() test */ public static function provide_strip_value_cases(): iterable { return [ ['', ['']], [' test ', [' test ', true, false]], ['test', [' test ', false, true]], ['test', ['test

']], ['test

', ['test

', true]], [['test1', 'test2'], [['test1

', 'test2

'], false]], [['test1

', 'test2

'], [['test1

', 'test2

'], true]], ]; } /** * Test list_input() */ public function test_list_input() { $rcube = \rcube::get_instance(); $plugin = new \managesieve($rcube->plugins); $engine = new \rcube_sieve_engine($plugin); $args = [1, 'n', '

']; $expected = ''; $this->assertSame($expected, invokeMethod($engine, 'list_input', $args)); } }