aboutsummaryrefslogtreecommitdiffstats
path: root/camel/tests/folder/test6.c
blob: cbd980a992448a30401fc7bee2f7b94940374687 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* folder testing */

#include "camel-test.h"
#include "messages.h"

#include <camel/camel-exception.h>
#include <camel/camel-service.h>
#include <camel/camel-session.h>
#include <camel/camel-store.h>

#include <camel/camel-folder.h>
#include <camel/camel-folder-summary.h>
#include <camel/camel-mime-message.h>

static int regtimeout()
{
    return 1;
}

static int unregtimeout()
{
    return 1;
}

#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 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->register_timeout = regtimeout;
    camel_session_class->remove_timeout = unregtimeout;
}

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 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;
}


#define ARRAY_LEN(x) (sizeof(x)/sizeof(x[0]))

static char *remote_providers[] = {
    "IMAP_TEST_URL",
};

int main(int argc, char **argv)
{
    CamelSession *session;
    CamelException *ex;
    int i;
    char *path;

    camel_test_init(argc, argv);

    /* clear out any camel-test data */
    system("/bin/rm -rf /tmp/camel-test");

    ex = camel_exception_new();

    session = camel_test_session_new ("/tmp/camel-test");

    for (i=0;i<ARRAY_LEN(remote_providers);i++) {
        path = getenv(remote_providers[i]);

        if (path == NULL) {
            printf("Aborted (ignored).\n");
            printf("Set '%s', to re-run test.\n", remote_providers[i]);
            /* tells make check to ignore us in the total count */
            _exit(77);
        }
        /*camel_test_nonfatal("The IMAP code is just rooted");*/
        test_folder_message_ops(session, path, FALSE);
        /*camel_test_fatal();*/
    }

    check_unref(session, 1);
    camel_exception_free(ex);

    return 0;
}