assertInstanceOf(\rcube_spellchecker_enchant::class, $object, 'Class constructor'); $this->assertInstanceOf(\rcube_spellchecker_engine::class, $object, 'Class constructor'); } /** * Test languages() method */ public function test_languages() { if (!extension_loaded('enchant')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'enchant'); $object = new \rcube_spellchecker(); $langs = $object->languages(); $this->assertSame('English (US)', $langs['en'] ?? $langs['en_US']); } /** * Test check() method */ public function test_check() { if (!extension_loaded('enchant')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'enchant'); $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('enchant')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'enchant'); $object = new \rcube_spellchecker('en_US'); $result = $object->get_suggestions('onlx'); $this->assertContains('only', $result); $this->assertContains('onyx', $result); } /** * Test get_words() method */ public function test_get_words() { if (!extension_loaded('enchant')) { $this->markTestSkipped(); } \rcube::get_instance()->config->set('spellcheck_engine', 'enchant'); $object = new \rcube_spellchecker(); $this->assertSame(['ony'], $object->get_words('ony')); } }