aboutsummaryrefslogtreecommitdiffstats
path: root/camel/tests/smime/pgp-mime.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/tests/smime/pgp-mime.c')
-rw-r--r--camel/tests/smime/pgp-mime.c82
1 files changed, 75 insertions, 7 deletions
diff --git a/camel/tests/smime/pgp-mime.c b/camel/tests/smime/pgp-mime.c
index 8564d1bda7..0da41c2542 100644
--- a/camel/tests/smime/pgp-mime.c
+++ b/camel/tests/smime/pgp-mime.c
@@ -12,15 +12,84 @@ static char test_msg[] = "Since we need to make sure that\nFrom lines work okay,
"as well as test 8bit chars and other fun stuff? 8bit chars: Dražen Kačar\n\nOkay, I guess that covers"
"the basics at least...\n";
-/* god, who designed this horrid interface */
-static gpointer auth_callback (CamelAuthCallbackMode mode,
- char *data, gboolean secret,
- CamelService *service, char *item,
- CamelException *ex)
+
+#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;
+
+
+static char *get_password (CamelSession *session, const char *prompt,
+ gboolean secret, CamelService *service,
+ const char *item, CamelException *ex);
+
+static void
+init (CamelTestSession *session)
+{
+ ;
+}
+
+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->get_password = get_password;
+}
+
+static CamelType
+camel_test_session_get_type (void)
+{
+ static CamelType type = CAMEL_INVALID_TYPE;
+
+ if (type == CAMEL_INVALID_TYPE) {
+ type = camel_type_register (
+ camel_test_session_get_type (),
+ "CamelTestSession",
+ sizeof (CamelTestSession),
+ sizeof (CamelTestSessionClass),
+ (CamelObjectClassInitFunc) class_init,
+ NULL,
+ (CamelObjectInitFunc) init,
+ NULL);
+ }
+
+ return type;
+}
+
+static char *
+get_password (CamelSession *session, const char *prompt, gboolean secret,
+ CamelService *service, const char *item, CamelException *ex)
{
return g_strdup ("PGP/MIME is rfc2015, now go and read it.");
}
+static 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;
+}
+
+
int main (int argc, char **argv)
{
CamelSession *session;
@@ -37,8 +106,7 @@ int main (int argc, char **argv)
/* clear out any camel-test data */
system("/bin/rm -rf /tmp/camel-test");
- session = camel_session_new ("/tmp/camel-test",
- auth_callback, NULL, NULL);
+ session = camel_test_session_new ("/tmp/camel-test");
ctx = camel_pgp_context_new (session, CAMEL_PGP_TYPE_GPG, "/usr/bin/gpg");