aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test-formatter.c
blob: 32148be11b9c33d84f51ec216521765f5503a52a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* Based on 'test2.c'; tests the camel-formatter class */
#include "gmime-utils.h"
#include "stdio.h"
#include "camel-log.h"
#include "camel-mime-message.h"
#include "camel-mime-part.h"
#include "camel-stream.h"
#include "camel-stream-fs.h"
#include "camel.h"
#include "camel-formatter.h"

static void
convert_to_html_and_print (CamelMimeMessage *msg)
{
    CamelFormatter* cmf = camel_formatter_new();
    CamelStream* stream = camel_stream_mem_new (CAMEL_STREAM_FS_WRITE);
    camel_formatter_mime_message_to_html (
        cmf, msg, stream);
    g_print ("Parsed message follows\n----------------------\n%s",
         (CAMEL_STREAM_MEM(stream))->buffer->data);
}

static void
print_usage_and_quit()
{
    g_print ("\nUsage: test-formatter [MIME-MESSAGE-FILE]\n\n");
    g_print ("Where MIME-MESSAGE-FILE is in the \"message/rfc822\"\n");
    g_print ("mime format.\n\n");
    
    exit(0);
}


int
main (int argc, char**argv)
{
    GHashTable *header_table;
    CamelMimeMessage *message;
    CamelStream *input_stream;
    
//  CamelStream *foo = CAMEL_STREAM(NULL);
    
    gtk_init (&argc, &argv);
    if (argc == 1 || argc > 2)
        print_usage_and_quit();
    
    camel_init ();
    camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
        
    message = camel_mime_message_new_with_session( (CamelSession *)NULL);
    
    input_stream = camel_stream_fs_new_with_name (
        argv[1], CAMEL_STREAM_FS_READ);

    if (!input_stream) {
        perror ("could not open input file");
        printf ("You must create the file mail.test before running this test");
        exit(2);
    }
    
    camel_data_wrapper_construct_from_stream ( CAMEL_DATA_WRAPPER (message), input_stream);

    camel_debug_level = CAMEL_LOG_LEVEL_FULL_DEBUG;
    convert_to_html_and_print (message);    

    camel_stream_close (input_stream);
    gtk_object_unref (GTK_OBJECT (input_stream));

    return 0;
}
efan Walter2007-01-072-14/+51 * Utilize USE_BDB.Stefan Walter2007-01-021-3/+4 * Convert MAINTAINER to my freebsd.org account.Stefan Walter2006-05-071-1/+1 * Drop USE_GCC: No longer necessary (reported by Mikhail Teterin)Volker Stolz2006-04-091-1/+0 * - Update to 1.4bMarcus Alves Grando2006-02-192-4/+4 * - Update to 1.4aRenato Botelho2006-02-012-4/+4 * Remove empty pkg-messageEdwin Groothuis2006-01-041-0/+0 * [PATCH] mail/spamprobe: update to 1.4, take maintainershipEdwin Groothuis2006-01-035-133/+16 * - Add SHA256Pav Lucistnik2005-11-251-0/+1 * - Update to 1.2aPav Lucistnik2005-08-312-4/+4 * Update from 1.0a to 1.2. Fix to use OpenSSL's (optimized) md5 routinesMikhail Teterin2005-06-235-46/+115 * Update to 1.0aPatrick Li2005-06-103-8/+14 * Remove 1-line plists in favour of PLIST_FILESVolker Stolz2005-03-152-1/+1 * With portmgr hat on, reset maintainership of ports whose committer hasMark Linimon2004-12-051-1/+1 * SIZEify (maintainer timeout)Trevor Johnson2004-03-311-0/+1 * Update to 0.9h.Maxim Sobolev2004-02-196-61/+23 * And I missed setting the correct version.Matthew N. Dodd2003-04-291-2/+2 * Omitted in previous update.Matthew N. Dodd2003-04-291-6/+12 * Update to 0.8bMatthew N. Dodd2003-04-297-407/+41