Statistics
| Revision:

root / trunk / tests / test_nzbcreator.c @ 1863

History | View | Annotate | Download (4.7 KB)

1
/* 
2
    Copyright (C) 2005-2010  Erik van Pienbroek
3

                
4
    This program is free software; you can redistribute it and/or modify
5
    it under the terms of the GNU General Public License as published by
6
    the Free Software Foundation; either version 2 of the License, or
7
    (at your option) any later version.
8

                
9
    This program is distributed in the hope that it will be useful,
10
    but WITHOUT ANY WARRANTY; without even the implied warranty of
11
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
    GNU General Public License for more details.
13

                
14
    You should have received a copy of the GNU General Public License
15
    along with this program; if not, write to the Free Software
16
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
*/
18

                
19
#include 
20
#include 
21
#include 
22
#include "nntpgrab_utils.h"
23

                
24
static void
25
test_nzbcreator_list_groups(void)
26
{
27
    NGList *groups;
28
    NGList *list;
29
    char *errmsg = NULL;
30

                
31
    g_test_message("Now retrieving list of all known newsgroups");
32
    groups = nntpgrab_utils_nzbcreator_get_all_groups(&errmsg);
33
    if (!groups) {
34
        g_error("%s", errmsg);
35
    }
36

                
37
    g_test_message("List retrieved");
38
    list = groups;
39
    while (list) {
40
        NZBCreatorGroup *group = list->data;
41
        g_test_message("%i = %s", group->group_id, group->newsgroup);
42
        list = ng_list_next(list);
43
    }
44

                
45
    g_test_message("End of list");
46

                
47
    nntpgrab_utils_nzbcreator_free_groups(groups);
48
}
49

                
50
static void
51
test_nzbcreator_perform_search(void)
52
{
53
    char *errmsg = NULL;
54
    NZBCreatorSearchOpts opts;
55
    NZBCreatorSearchResult *result;
56
    NGList *list;
57

                
58
    g_test_message("Now performing search");
59

                
60
    memset(&opts, 0, sizeof(NZBCreatorSearchOpts));
61
    strncpy(opts.query, "test", sizeof(opts.query) - 1);
62
    opts.minimal_file_size = 100;
63
    strncpy(opts.username, "user", sizeof(opts.username) - 1);
64
    strncpy(opts.password, "password", sizeof(opts.password) - 1);
65

                
66
    if (!(result = nntpgrab_utils_nzbcreator_perform_search(opts, &errmsg))) {
67
        g_error("%s", errmsg);
68
    }
69

                
70
    g_test_message("Search returned:");
71
    g_test_message("Number of hits: %i", result->number_of_hits);
72
    g_test_message("Number of results: %i", result->number_of_results);
73

                
74
    list = result->collections;
75
    while (list) {
76
        NZBCreatorCollection *collection = list->data;
77

                
78
        g_test_message("Found collection in %s", collection->newsgroup);
79
        g_test_message("Collection_id = %i", (int) collection->collection_id);
80
        g_test_message("Collection_name = %s", collection->collection_name);
81
        g_test_message("\n");
82

                
83
        list = ng_list_next(list);
84
    }
85

                
86
    nntpgrab_utils_nzbcreator_free_result(result);
87

                
88
    g_test_message("End of search results");
89
}
90

                
91
static void
92
test_nzbcreator_retrieve_collection_details(void)
93
{
94
    char *errmsg = NULL;
95
    NGList *list;
96
    NGList *files;
97

                
98
    if (!(files = nntpgrab_utils_nzbcreator_retrieve_collection_details(106946812, 1307919905, &errmsg))) {
99
        g_error("%s", errmsg);
100
    }
101

                
102
    g_test_message("Retrieve collection details returned %i files", ng_list_length(files));
103
    list = files;
104
    while (list) {
105
        NZBCreatorFile *file = list->data;
106

                
107
        g_test_message("Found file named '%s'", file->subject);
108
        g_test_message("File_id = %i", (int) file->file_id);
109

                
110
        list = ng_list_next(list);
111
    }
112

                
113
    nntpgrab_utils_nzbcreator_free_collection_details(files);
114

                
115
    g_test_message("End of retrieve collection details");
116
}
117

                
118
static void
119
test_nzbcreator_generate_nzb()
120
{
121
    char *errmsg = NULL;
122
    char *nzbdata;
123
    NGList *file_ids = NULL;
124
    time_t oldest_stamp;
125
    time_t newest_stamp;
126

                
127
    file_ids = ng_list_append(NULL, GINT_TO_POINTER(33));
128
    file_ids = ng_list_append(file_ids, GINT_TO_POINTER(46));
129
    file_ids = ng_list_append(file_ids, GINT_TO_POINTER(211));
130
    oldest_stamp = 1234567890;
131
    newest_stamp = 1234987654;
132

                
133
    g_test_message("Now generating NZB");
134

                
135
    nzbdata = nntpgrab_utils_nzbcreator_generate_NZB(file_ids, oldest_stamp, newest_stamp, &errmsg);
136
    if (!nzbdata) {
137
        g_error("%s", errmsg);
138
    }
139

                
140
    g_test_message("%s", nzbdata);
141

                
142
    ng_list_free(file_ids);
143
    ng_free(nzbdata);
144

                
145
    g_test_message("End of generated NZB");
146
}
147

                
148
int main(int argc, char **argv)
149
{
150
    g_type_init();
151
    g_thread_init(NULL);
152

                
153
    g_test_init(&argc, &argv, NULL);
154
    g_test_bug_base("https://www.nntpgrab.nl");
155

                
156
    g_test_add_func("/nzbcreator/list_groups", test_nzbcreator_list_groups);
157
    g_test_add_func("/nzbcreator/perform_search", test_nzbcreator_perform_search);
158
    g_test_add_func("/nzbcreator/retrieve_collection_details", test_nzbcreator_retrieve_collection_details);
159
    g_test_add_func("/nzbcreator/generate_nzb", test_nzbcreator_generate_nzb);
160

                
161
    return g_test_run();
162
}