assertInstanceOf(\rcube_spellchecker_pspell::class, $object, 'Class constructor'); $this->assertInstanceOf(\rcube_spellchecker_engine::class, $object, 'Class constructor'); } /** * Test languages() method */ public function test_languages() { if (!extension_loaded('pspell')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'pspell'); $object = new \rcube_spellchecker(); $langs = $object->languages(); $this->assertSame('English (US)', $langs['en']); } /** * Test check() method */ public function test_check() { if (!extension_loaded('pspell')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'pspell'); $object = new \rcube_spellchecker(); $this->assertTrue($object->check('one')); // Test other methods that depend on the spellcheck result $this->assertSame(0, $object->found()); $this->assertSame([], $object->get_words()); $this->assertSame( '', $object->get_xml() ); $this->assertFalse($object->check('ony')); // Test other methods that depend on the spellcheck result $this->assertSame(1, $object->found()); $this->assertSame(['ony'], $object->get_words()); $this->assertMatchesRegularExpression( '|^<\?xml version="1.0" encoding="UTF-8"\?>([a-zA-Z\t]+)$|', $object->get_xml() ); // Test that links are ignored (#8527) $html = '' . '

www.redacted.com'; $this->assertTrue($object->check($html, true)); $html = '' . '

http://www.redacted.com'; $this->assertTrue($object->check($html, true)); $this->assertTrue($object->check('one http://www.redacted.com')); $this->assertTrue($object->check('one www.redacted.com')); } /** * Test get_suggestions() method */ public function test_get_suggestions() { if (!extension_loaded('pspell')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'pspell'); $object = new \rcube_spellchecker(); $expected = ['ON', 'on', 'Ont', 'only', 'onya', 'NY', 'onyx', 'Ono', 'any', 'one']; $result = $object->get_suggestions('ony'); sort($expected); sort($result); $this->assertSame($expected, $result); } /** * Test get_words() method */ public function test_get_words() { if (!extension_loaded('pspell')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'pspell'); $object = new \rcube_spellchecker(); $this->assertSame(['ony'], $object->get_words('ony')); } }