tests: manager: Add multiple provider tests

The test suite can be further expanded later. For now this suffices to
have some basic regression testing for multiple provider support in place.
This commit is contained in:
Evangelos Ribeiro Tzaras
2021-05-05 20:53:37 +02:00
parent dde4bd8abf
commit 4990529c6c
3 changed files with 194 additions and 4 deletions

View File

@@ -23,9 +23,13 @@
*/
#include "config.h"
#include "calls-ussd.h"
#include "calls-manager.h"
#include "calls-account-provider.h"
#include "calls-contacts-provider.h"
#include "calls-manager.h"
#include "calls-provider.h"
#include "calls-ussd.h"
#include "enum-types.h"
#include <glib/gi18n.h>
@@ -742,6 +746,74 @@ calls_manager_has_provider (CallsManager *self,
return !!g_hash_table_lookup (self->providers, name);
}
gboolean
calls_manager_is_modem_provider (CallsManager *self,
const char *name)
{
CallsProvider *provider;
g_return_val_if_fail (CALLS_IS_MANAGER (self), FALSE);
g_return_val_if_fail (name, FALSE);
provider = g_hash_table_lookup (self->providers, name);
g_return_val_if_fail (provider, FALSE);
return calls_provider_is_modem (provider);
}
/**
* calls_manager_provder_add_accounts:
* @self: A #CallsManager
* @name: The name of the provider to add the account to
* @credentials: A #CallsCredentials storing the credentials of the account
*
* Returns: %TRUE if account successfully added, %FALSE otherwise
*/
gboolean
calls_manager_provider_add_account (CallsManager *self,
const char *name,
CallsCredentials *credentials)
{
CallsProvider *provider = NULL;
g_return_val_if_fail (CALLS_IS_MANAGER (self), FALSE);
g_return_val_if_fail (name, FALSE);
g_return_val_if_fail (CALLS_IS_CREDENTIALS (credentials), FALSE);
provider = g_hash_table_lookup (self->providers, name);
g_return_val_if_fail (CALLS_IS_PROVIDER (provider), FALSE);
g_return_val_if_fail (CALLS_IS_ACCOUNT_PROVIDER (provider), FALSE);
return calls_account_provider_add_account (CALLS_ACCOUNT_PROVIDER (provider),
credentials);
}
/**
* calls_manager_provder_remove_accounts:
* @self: A #CallsManager
* @name: The name of the provider to add the account to
* @credentials: A #CallsCredentials storing the credentials of the account
*
* Returns: %TRUE if account successfully removed, %FALSE otherwise
*/
gboolean
calls_manager_provider_remove_account (CallsManager *self,
const char *name,
CallsCredentials *credentials)
{
CallsProvider *provider = NULL;
g_return_val_if_fail (CALLS_IS_MANAGER (self), FALSE);
g_return_val_if_fail (name, FALSE);
g_return_val_if_fail (CALLS_IS_CREDENTIALS (credentials), FALSE);
provider = g_hash_table_lookup (self->providers, name);
g_return_val_if_fail (CALLS_IS_PROVIDER (provider), FALSE);
g_return_val_if_fail (CALLS_IS_ACCOUNT_PROVIDER (provider), FALSE);
return calls_account_provider_remove_account (CALLS_ACCOUNT_PROVIDER (provider),
credentials);
}
CallsManagerState
calls_manager_get_state (CallsManager *self)
{

View File

@@ -25,8 +25,8 @@
#pragma once
#include "calls-contacts-provider.h"
#include "calls-provider.h"
#include "calls-origin.h"
#include "calls-credentials.h"
#include <glib-object.h>
@@ -56,6 +56,14 @@ void calls_manager_remove_provider (CallsManager
const char *name);
gboolean calls_manager_has_provider (CallsManager *self,
const char *name);
gboolean calls_manager_is_modem_provider (CallsManager *self,
const char *name);
gboolean calls_manager_provider_add_account (CallsManager *self,
const char *provider,
CallsCredentials *credentials);
gboolean calls_manager_provider_remove_account (CallsManager *self,
const char *provider,
CallsCredentials *credentials);
CallsManagerState calls_manager_get_state (CallsManager *self);
GListModel *calls_manager_get_origins (CallsManager *self);
GList *calls_manager_get_calls (CallsManager *self);