summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReuben Thomas <rrt@sc3d.org>2021-11-12 14:22:10 +0000
committerReuben Thomas <rrt@sc3d.org>2021-11-16 12:24:42 +0000
commitf0ebe6f96bfc1a5e798acbe54ef68efc2ce6be21 (patch)
tree4f68e4604ca9f5e51f8aa83d17b0b96e5f289678
parent53416be5789613c8a14f26eaffe87e6aa70a35c0 (diff)
downloadenchant-f0ebe6f96bfc1a5e798acbe54ef68efc2ce6be21.tar.gz
Aspell provider: set provider error when request_dict fails
Also remove some checks for mandatory provider methods in test code.
-rw-r--r--providers/enchant_aspell.c1
-rw-r--r--tests/enchant_providers/Provider/provider_list_dicts.cpp18
-rw-r--r--tests/enchant_providers/Provider/provider_request_dict.cpp23
-rw-r--r--tests/enchant_providers/providers.test.cpp2
-rw-r--r--tests/enchant_providers/unittest_enchant_providers.h15
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 <gmodule.h>
#include <assert.h>
#include <string.h>
+#include <stdlib.h>
#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);
- }
}
};