svnno****@sourc*****
svnno****@sourc*****
Mon Feb 16 16:02:51 JST 2009
Revision: 3718 http://svn.sourceforge.jp/view?root=kazehakase&view=rev&rev=3718 Author: ikezoe Date: 2009-02-16 16:02:51 +0900 (Mon, 16 Feb 2009) Log Message: ----------- added downloader test. Modified Paths: -------------- kazehakase/trunk/test/Makefile.am Added Paths: ----------- kazehakase/trunk/test/test-downloader.c Property Changed: ---------------- kazehakase/trunk/test/fixtures/ Modified: kazehakase/trunk/test/Makefile.am =================================================================== --- kazehakase/trunk/test/Makefile.am 2009-02-16 07:02:02 UTC (rev 3717) +++ kazehakase/trunk/test/Makefile.am 2009-02-16 07:02:51 UTC (rev 3718) @@ -14,7 +14,8 @@ test-root-bookmark.la \ test-profile.la \ test-embed-engine.la \ - test-utils.la + test-utils.la \ + test-downloader.la endif EXTRA_DIST = \ @@ -67,6 +68,7 @@ test_profile_la_LIBADD = kz_test_utils.la test_embed_engine_la_SOURCES = test-embed-engine.c test_utils_la_SOURCES = test-utils.c +test_downloader_la_SOURCES = test-downloader.c echo-cutter: Property changes on: kazehakase/trunk/test/fixtures ___________________________________________________________________ Modified: svn:ignore - Makefile Makefile.in + Makefile Makefile.in .goutputstream-* Added: kazehakase/trunk/test/test-downloader.c =================================================================== --- kazehakase/trunk/test/test-downloader.c (rev 0) +++ kazehakase/trunk/test/test-downloader.c 2009-02-16 07:02:51 UTC (rev 3718) @@ -0,0 +1,128 @@ +#include "kz-downloader.h" + +#include <gcutter.h> +#include "kz-test-utils.h" + +void test_new (void); +void test_to_buffer (void); + +static KzDownloader *downloader; + +static gint n_start_received; +static gint n_completed_received; +static gint n_error_received; +static gchar *error_message; +static gchar *expected_buffer; + +void +setup (void) +{ + downloader = NULL; + + n_start_received = 0; + n_completed_received = 0; + n_error_received = 0; + + error_message = NULL; + expected_buffer = NULL; +} + +void +teardown (void) +{ + if (downloader) + g_object_unref(downloader); + g_free(expected_buffer); +} + +void +test_new (void) +{ + downloader = kz_downloader_new("http://kazehakase.sourceforge.jp/bookmark-test.xml"); + cut_assert(downloader); +} + +static gboolean +cb_check_emitted (gpointer data) +{ + gboolean *emitted = data; + + *emitted = TRUE; + return FALSE; +} + +static void +wait_signal (gint *n_signals) +{ + gboolean timeout_emitted = FALSE; + guint timeout_id; + + timeout_id = g_timeout_add_seconds(1, cb_check_emitted, &timeout_emitted); + while (!timeout_emitted && *n_signals == 0) + g_main_context_iteration(NULL, TRUE); + + g_source_remove(timeout_id); + + cut_assert_false(timeout_emitted, "timeout"); +} + +static void +cb_start (KzDownloader *downloader, gpointer data) +{ + n_start_received++; +} + +static void +cb_completed (KzDownloader *downloader, gpointer data) +{ + n_completed_received++; +} + +static void +cb_error (KzDownloader *downloader, gpointer data) +{ + n_error_received++; +} + +static void +setup_signals (void) +{ + g_signal_connect(downloader, "start", + G_CALLBACK(cb_start), NULL); + g_signal_connect(downloader, "completed", + G_CALLBACK(cb_completed), NULL); + g_signal_connect(downloader, "error", + G_CALLBACK(cb_error), NULL); +} + +void +test_to_buffer (void) +{ + gchar *file_path; + GError *error = NULL; + + cut_trace(test_new()); + + setup_signals(); + cut_assert_true(kz_downloader_to_buffer(downloader)); + + wait_signal(&n_start_received); + cut_assert_equal_int(1, n_start_received); + wait_signal(&n_completed_received); + cut_assert_equal_int(0, n_error_received); + cut_assert_equal_int(1, n_completed_received); + + file_path = g_build_filename(kz_test_get_base_dir(), + "fixtures", "bookmarkbar.xml", + NULL); + cut_take_string(file_path); + + g_file_get_contents(file_path, &expected_buffer, NULL, &error); + gcut_assert_error(error); + + cut_assert_equal_string(expected_buffer, kz_downloader_get_buffer(downloader)); +} + +/* +vi:ts=4:nowrap:ai:expandtab:sw=4 +*/