void test_setup_thetvdb (void) { GrlConfig *config; GrlRegistry *registry; GError *error = NULL; if (tmp_dir == NULL) { /* Only create tmp dir and set the XDG_DATA_HOME once */ tmp_dir = g_build_filename (g_get_tmp_dir (), "test-thetvdb-XXXXXX", NULL); tmp_dir = g_mkdtemp (tmp_dir); g_assert_nonnull (tmp_dir); g_setenv ("XDG_DATA_HOME", tmp_dir, TRUE); } config = grl_config_new (THETVDB_ID, NULL); grl_config_set_api_key (config, "THETVDB_TEST_MOCK_API_KEY"); registry = grl_registry_get_default (); grl_registry_add_config (registry, config, &error); g_assert_no_error (error); grl_registry_load_plugin_by_id (registry, THETVDB_ID, &error); g_assert_no_error (error); source = GRL_SOURCE (grl_registry_lookup_source (registry, THETVDB_ID)); g_assert (source != NULL); g_assert (grl_source_supported_operations (source) & GRL_OP_RESOLVE); }
static void config_plugins (gchar* chosen_test_path) { GrlRegistry *registry; GrlConfig *config; registry = grl_registry_get_default (); /* Configure plugin */ config = grl_config_new ("grl-filesystem", "Filesystem"); grl_config_set_string (config, "base-path", chosen_test_path); grl_registry_add_config (registry, config, NULL); g_printf ("config_plugin with %s\n", chosen_test_path); }
void test_lua_factory_setup (GrlConfig *config) { GrlRegistry *registry; GError *error = NULL; registry = grl_registry_get_default (); if (config != NULL) { grl_registry_add_config (registry, config, &error); g_assert_no_error (error); } grl_registry_load_plugin_by_id (registry, LUA_FACTORY_ID, &error); g_assert_no_error (error); }
void test_setup_tmdb (void) { GrlConfig *config; GrlRegistry *registry; GError *error = NULL; config = grl_config_new (TMDB_PLUGIN_ID, NULL); /* It does not matter what we set this to. It just needs to be non-empty because we're * going to fake the network responses. */ grl_config_set_api_key (config, "TMDB_TEST_API_KEY"); registry = grl_registry_get_default (); grl_registry_add_config (registry, config, &error); g_assert_no_error (error); grl_registry_load_plugin_by_id (registry, TMDB_PLUGIN_ID, &error); g_assert_no_error (error); source = GRL_SOURCE (grl_registry_lookup_source (registry, TMDB_PLUGIN_ID)); g_assert (source != NULL); g_assert (grl_source_supported_operations (source) & GRL_OP_RESOLVE); }
int main (int argc, char *argv[]) { #if !GLIB_CHECK_VERSION(2,35,0) g_type_init (); #endif grl_init (&argc, &argv); /* * Set the TMDB API key: * You must use your own TMDB API key in your own application. */ GrlRegistry *reg = grl_registry_get_default (); GrlConfig *config = grl_config_new (TMDB_PLUGIN_ID, NULL); grl_config_set_api_key (config, TMDB_KEY); grl_registry_add_config (reg, config, NULL); /* * Get the plugin: */ GError *error = NULL; gboolean plugin_loaded = grl_registry_load_plugin_by_id (reg, TMDB_PLUGIN_ID, &error); g_assert (plugin_loaded); g_assert_no_error (error); /* * Get the Grilo source: */ GrlSource *src = grl_registry_lookup_source (reg, TMDB_PLUGIN_ID); /* * Check that it has the expected capability: */ g_assert (grl_source_supported_operations (src) & GRL_OP_RESOLVE); GrlCaps *caps = grl_source_get_caps (src, GRL_OP_RESOLVE); g_assert (caps); GrlOperationOptions *options = grl_operation_options_new (caps); /* * A media item that we will give to the TMDB plugin, * to discover its details. */ GrlMedia *media = grl_media_video_new (); grl_media_set_title (media, "Sherlock Holmes"); /* * Discover what keys are provided by the source: */ const GList *keys = grl_source_supported_keys (src); const GList* l = NULL; for (l = keys; l != NULL; l = l->next) { GrlKeyID id = GPOINTER_TO_INT (l->data); g_assert (id); const gchar *name = grl_metadata_key_get_name (id); printf ("Supported key: %s\n", name); /* * Remember this for later use: * You may instead use grl_registry_lookup_metadata_key_name(). */ if (g_strcmp0 (name, "tmdb-director") == 0) { director_key = id; } } /* * Ask the TMDB plugin for the media item's details, * from the TMDB online service: */ grl_source_resolve (src, media, keys, options, resolve_cb, NULL); /* * Start the main loop so our callback can be called: */ loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (loop); /* * Release objects: */ g_object_unref (media); g_object_unref (config); g_object_unref (options); /* * Deinitialize Grilo: */ grl_deinit (); }