From f0ebe6f96bfc1a5e798acbe54ef68efc2ce6be21 Mon Sep 17 00:00:00 2001 From: Reuben Thomas Date: Fri, 12 Nov 2021 14:22:10 +0000 Subject: Aspell provider: set provider error when request_dict fails Also remove some checks for mandatory provider methods in test code. --- providers/enchant_aspell.c | 1 + .../Provider/provider_list_dicts.cpp | 18 ++++++++--------- .../Provider/provider_request_dict.cpp | 23 ++++------------------ tests/enchant_providers/providers.test.cpp | 2 ++ .../enchant_providers/unittest_enchant_providers.h | 15 +++----------- 5 files changed, 18 insertions(+), 41 deletions(-) diff --git a/providers/enchant_aspell.c b/providers/enchant_aspell.c index d79891c..3bef4ef 100644 --- a/providers/enchant_aspell.c +++ b/providers/enchant_aspell.c @@ -143,6 +143,7 @@ aspell_provider_request_dict (EnchantProvider * me _GL_UNUSED_PARAMETER, const c if (aspell_error_number (spell_error) != 0) { + enchant_provider_set_error (me, aspell_error_message (spell_error)); delete_aspell_can_have_error(spell_error); return NULL; } diff --git a/tests/enchant_providers/Provider/provider_list_dicts.cpp b/tests/enchant_providers/Provider/provider_list_dicts.cpp index 5b66413..0317abd 100644 --- a/tests/enchant_providers/Provider/provider_list_dicts.cpp +++ b/tests/enchant_providers/Provider/provider_list_dicts.cpp @@ -62,19 +62,17 @@ TEST_FIXTURE(ProviderListDicts_TestFixture, TEST_FIXTURE(ProviderListDicts_TestFixture, ProviderListDicts_ForEachReturned_RequestDictSucceeds) { - if(_provider->list_dicts && _provider->request_dict) + if(_provider->list_dicts) { - size_t n_dicts; + size_t n_dicts; - _dicts = (*_provider->list_dicts) (_provider, &n_dicts); - for (size_t i = 0; i < n_dicts; i++) - { - EnchantDict* dict = (*_provider->request_dict) (_provider, _dicts[i]); - CHECK(dict != NULL); - if (dict && _provider->dispose_dict) - { + _dicts = (*_provider->list_dicts) (_provider, &n_dicts); + for (size_t i = 0; i < n_dicts; i++) + { + EnchantDict* dict = (*_provider->request_dict) (_provider, _dicts[i]); + CHECK(dict != NULL); + if (dict) _provider->dispose_dict(_provider, dict); - } } } } diff --git a/tests/enchant_providers/Provider/provider_request_dict.cpp b/tests/enchant_providers/Provider/provider_request_dict.cpp index 1cd2ed6..4ad4680 100644 --- a/tests/enchant_providers/Provider/provider_request_dict.cpp +++ b/tests/enchant_providers/Provider/provider_request_dict.cpp @@ -34,10 +34,8 @@ struct ProviderRequestDictionary_TestFixture : Provider_TestFixture //Teardown ~ProviderRequestDictionary_TestFixture() { - if (_dict && _provider->dispose_dict) - { - _provider->dispose_dict(_provider, _dict); - } + if (_dict) + _provider->dispose_dict(_provider, _dict); } }; @@ -49,19 +47,6 @@ struct ProviderRequestDictionary_TestFixture : Provider_TestFixture TEST_FIXTURE(ProviderRequestDictionary_TestFixture, ProviderRequestDictionary_ProviderDoesNotHave_ReturnsNull) { - if (_provider->request_dict) - { - _dict = (*_provider->request_dict) (_provider, "zxx"); /*zxx is no linguistic content*/ - CHECK_EQUAL((void*)NULL, _dict); - } -} - -TEST_FIXTURE(ProviderRequestDictionary_TestFixture, - ProviderRequestDictionary_ProviderDoesNotHave_ProviderDoesNotSetError) -{ - if (_provider->request_dict) - { - _dict = (*_provider->request_dict) (_provider, "zxx"); /*zxx is no linguistic content*/ - CHECK_EQUAL((void*)NULL, GetErrorMessage(_provider)); - } + _dict = (*_provider->request_dict) (_provider, "zxx"); /*zxx is no linguistic content*/ + CHECK_EQUAL((void*)NULL, _dict); } diff --git a/tests/enchant_providers/providers.test.cpp b/tests/enchant_providers/providers.test.cpp index 7d72faf..7f5bcbc 100644 --- a/tests/enchant_providers/providers.test.cpp +++ b/tests/enchant_providers/providers.test.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include "unittest_enchant_providers.h" int Test(char* path); @@ -167,6 +168,7 @@ int TestProvider(char* filename) g_provider->dispose(g_provider); g_provider = NULL; + free(broker.error); } if(module){ diff --git a/tests/enchant_providers/unittest_enchant_providers.h b/tests/enchant_providers/unittest_enchant_providers.h index 5fd2416..62f50ad 100644 --- a/tests/enchant_providers/unittest_enchant_providers.h +++ b/tests/enchant_providers/unittest_enchant_providers.h @@ -69,14 +69,11 @@ struct Provider_TestFixture // Try getting dictionary for user's default language char *lang = enchant_get_user_language(); - if (_provider->request_dict) - { - dict = (*_provider->request_dict) (_provider, lang); - } + dict = (*_provider->request_dict) (_provider, lang); g_free (lang); // If not available, get the first dictionary listed as being available - if (!dict && _provider->list_dicts && _provider->request_dict) + if (!dict && _provider->list_dicts) { size_t n_dicts; @@ -90,18 +87,12 @@ struct Provider_TestFixture EnchantDict* GetDictionary(const char* language) { - if(_provider->request_dict) - { return (*_provider->request_dict) (_provider, language); - } - return NULL; } virtual void ReleaseDictionary(EnchantDict* dict) { - if (dict && _provider->dispose_dict) - { + if (dict) _provider->dispose_dict(_provider, dict); - } } }; -- cgit v1.2.1