diff options
author | Bastien Nocera <hadess@hadess.net> | 2020-02-27 18:42:50 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2020-02-27 19:14:43 +0100 |
commit | 4f3ca838c8d1ccc25b4f85ffe1da2c334bd6a29c (patch) | |
tree | 30e0bbbe7bef2dc26c48bf3f64d33dacf21388fc | |
parent | 8005ecbd62eb6c72bf24fa00fa57c7cdc23f6f92 (diff) | |
download | totem-pl-parser-4f3ca838c8d1ccc25b4f85ffe1da2c334bd6a29c.tar.gz |
tests: Add an async saving test
-rw-r--r-- | plparse/tests/parser.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plparse/tests/parser.c b/plparse/tests/parser.c index e628744..0b8e7ed 100644 --- a/plparse/tests/parser.c +++ b/plparse/tests/parser.c @@ -1137,6 +1137,49 @@ test_saving_sync (void) g_assert_no_error (error); } +static void +test_saving_sync_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GMainLoop *loop = user_data; + g_autoptr(GError) error = NULL; + + totem_pl_parser_save_finish (TOTEM_PL_PARSER (source_object), res, &error); + g_assert_no_error (error); + g_main_loop_quit (loop); +} + +static void +test_saving_async (void) +{ + g_autoptr(TotemPlParser) parser = NULL; + g_autoptr(TotemPlPlaylist) playlist = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(GFile) output = NULL; + TotemPlPlaylistIter pl_iter; + g_autofree char *path = NULL; + GMainLoop *loop; + int fd; + + parser = totem_pl_parser_new (); + playlist = totem_pl_playlist_new (); + fd = g_file_open_tmp (NULL, &path, &error); + g_assert_no_error (error); + close (fd); + output = g_file_new_for_path (path); + + totem_pl_playlist_append (playlist, &pl_iter); + add_pl_iter_metadata (playlist, &pl_iter); + loop = g_main_loop_new (NULL, FALSE); + totem_pl_parser_save_async (parser, + playlist, + output, + NULL, TOTEM_PL_PARSER_XSPF, + NULL, test_saving_sync_cb, loop); + g_main_loop_run (loop); +} + #define MAX_DESCRIPTION_LEN 128 #define DATE_BUFSIZE 512 #define PRINT_DATE_FORMAT "%Y-%m-%dT%H:%M:%SZ" @@ -1408,6 +1451,7 @@ main (int argc, char *argv[]) g_test_add_func ("/parser/parsing/async_signal_order", test_async_parsing_signal_order); g_test_add_func ("/parser/parsing/wma_asf", test_parsing_wma_asf); g_test_add_func ("/parser/saving/sync", test_saving_sync); + g_test_add_func ("/parser/saving/async", test_saving_async); return g_test_run (); } |