aboutsummaryrefslogtreecommitdiffstats
path: root/camel/tests/lib
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-05-28 03:52:07 +0800
committerDan Winship <danw@src.gnome.org>2001-05-28 03:52:07 +0800
commit618ce2988e65058388fb9581ea427f11399de5a2 (patch)
treec534cbdbb1f55b81b2705839d37c8cb8b0b86b95 /camel/tests/lib
parent8b06ce05ebb8d110542eb21cdafa039c0ae03c4b (diff)
downloadgsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.gz
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.bz2
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.lz
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.xz
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.zst
gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.zip
Fix an fd leak
* tests/lib/messages.c (test_message_read_file): Fix an fd leak * tests/lib/session.c, tests/lib/session.h: a CamelSession subclass for the test programs. * tests/lib/Makefile.am: include session.[ch] * tests/folder/test*.c: Use a CamelTestSession from libcameltest instead of cut+pasting everywhere. * tests/misc/url.c (main): Update for a camel_url_new change at some point. * tests/*/.cvsignore: Add stuff. * camel-mime-utils.c (rfc2047_encode_word): Fix a silly ==/!= mixup. svn path=/trunk/; revision=10023
Diffstat (limited to 'camel/tests/lib')
-rw-r--r--camel/tests/lib/Makefile.am1
-rw-r--r--camel/tests/lib/folders.c28
-rw-r--r--camel/tests/lib/messages.c1
-rw-r--r--camel/tests/lib/session.c59
-rw-r--r--camel/tests/lib/session.h19
5 files changed, 87 insertions, 21 deletions
diff --git a/camel/tests/lib/Makefile.am b/camel/tests/lib/Makefile.am
index ea51a2c28a..c3da5e37a8 100644
--- a/camel/tests/lib/Makefile.am
+++ b/camel/tests/lib/Makefile.am
@@ -8,6 +8,7 @@ libcameltest_a_SOURCES = \
messages.c messages.h \
addresses.c addresses.h \
folders.c folders.h \
+ session.c session.h \
streams.c streams.h \
address-data.h
diff --git a/camel/tests/lib/folders.c b/camel/tests/lib/folders.c
index ba02001bcc..31d242070d 100644
--- a/camel/tests/lib/folders.c
+++ b/camel/tests/lib/folders.c
@@ -193,7 +193,7 @@ test_folder_basic(CamelSession *session, const char *storename, int local)
{
CamelStore *store;
CamelException *ex = camel_exception_new();
- CamelFolder *folder, *root;
+ CamelFolder *folder;
char *what = g_strdup_printf("testing store: %s", storename);
camel_test_start(what);
@@ -205,31 +205,17 @@ test_folder_basic(CamelSession *session, const char *storename, int local)
check(store != NULL);
pull();
- /* local providers == no root folder */
- push("getting root folder");
- root = camel_store_get_root_folder(store, ex);
+ /* local providers == no inbox */
+ push("getting inbox folder");
+ folder = camel_store_get_inbox(store, ex);
if (local) {
check(camel_exception_is_set(ex));
- check(root == NULL);
+ check(folder == NULL);
camel_exception_clear(ex);
} else {
check_msg(!camel_exception_is_set(ex), "%s", camel_exception_get_description(ex));
- check(root != NULL);
- check_unref(root, 1);
- }
- pull();
-
- /* same for default folder */
- push("getting default folder");
- root = camel_store_get_root_folder(store, ex);
- if (local) {
- check(camel_exception_is_set(ex));
- check(root == NULL);
- camel_exception_clear(ex);
- } else {
- check_msg(!camel_exception_is_set(ex), "%s", camel_exception_get_description(ex));
- check(root != NULL);
- check_unref(root, 1);
+ check(folder != NULL);
+ check_unref(folder, 1);
}
pull();
diff --git a/camel/tests/lib/messages.c b/camel/tests/lib/messages.c
index a8c8b30465..21d77582ad 100644
--- a/camel/tests/lib/messages.c
+++ b/camel/tests/lib/messages.c
@@ -115,6 +115,7 @@ test_message_read_file(const char *name)
camel_data_wrapper_construct_from_stream((CamelDataWrapper *)msg2, (CamelStream *)file);
/* file's refcount may be > 1 if the message is real big */
check(CAMEL_OBJECT(file)->ref_count >=1);
+ camel_object_unref((CamelObject *)file);
return msg2;
}
diff --git a/camel/tests/lib/session.c b/camel/tests/lib/session.c
new file mode 100644
index 0000000000..2ebf6e2d7f
--- /dev/null
+++ b/camel/tests/lib/session.c
@@ -0,0 +1,59 @@
+#include "session.h"
+
+static guint
+register_timeout (CamelSession *session, guint32 interval, CamelTimeoutCallback callback, gpointer user_data)
+{
+ return 1;
+}
+
+static gboolean
+unregister_timeout (CamelSession *session, guint handle)
+{
+ return TRUE;
+}
+
+
+static void
+class_init (CamelTestSessionClass *camel_test_session_class)
+{
+ CamelSessionClass *camel_session_class =
+ CAMEL_SESSION_CLASS (camel_test_session_class);
+
+ /* virtual method override */
+ camel_session_class->register_timeout = register_timeout;
+ camel_session_class->remove_timeout = unregister_timeout;
+}
+
+CamelType
+camel_test_session_get_type (void)
+{
+ static CamelType type = CAMEL_INVALID_TYPE;
+
+ if (type == CAMEL_INVALID_TYPE) {
+ type = camel_type_register (
+ camel_session_get_type (),
+ "CamelTestSession",
+ sizeof (CamelTestSession),
+ sizeof (CamelTestSessionClass),
+ (CamelObjectClassInitFunc) class_init,
+ NULL,
+ NULL,
+ NULL);
+ }
+
+ return type;
+}
+
+CamelSession *
+camel_test_session_new (const char *path)
+{
+ CamelSession *session;
+
+ session = CAMEL_SESSION (camel_object_new (CAMEL_TEST_SESSION_TYPE));
+
+ camel_session_construct (session, path);
+
+ return session;
+}
+
+
diff --git a/camel/tests/lib/session.h b/camel/tests/lib/session.h
new file mode 100644
index 0000000000..e69ef65e2e
--- /dev/null
+++ b/camel/tests/lib/session.h
@@ -0,0 +1,19 @@
+#include <camel/camel-session.h>
+
+#define CAMEL_TEST_SESSION_TYPE (camel_test_session_get_type ())
+#define CAMEL_TEST_SESSION(obj) (CAMEL_CHECK_CAST((obj), CAMEL_TEST_SESSION_TYPE, CamelTestSession))
+#define CAMEL_TEST_SESSION_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_TEST_SESSION_TYPE, CamelTestSessionClass))
+#define CAMEL_TEST_IS_SESSION(o) (CAMEL_CHECK_TYPE((o), CAMEL_TEST_SESSION_TYPE))
+
+typedef struct _CamelTestSession {
+ CamelSession parent_object;
+
+} CamelTestSession;
+
+typedef struct _CamelTestSessionClass {
+ CamelSessionClass parent_class;
+
+} CamelTestSessionClass;
+
+CamelType camel_test_session_get_type (void);
+CamelSession *camel_test_session_new (const char *path);