21
23
class DirectoryUpdateTest : public ::testing::Test
24
gchar * cachedir = NULL;
26
gchar * cachedir = nullptr;
26
28
virtual void SetUp() {
27
cachedir = g_build_filename(CMAKE_BINARY_DIR, "url-db-test-cache", NULL);
29
cachedir = g_build_filename(CMAKE_BINARY_DIR, "url-db-test-cache", nullptr);
28
30
g_setenv("URL_DISPATCHER_CACHE_DIR", cachedir, TRUE);
31
33
virtual void TearDown() {
32
34
gchar * cmdline = g_strdup_printf("rm -rf \"%s\"", cachedir);
33
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
35
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
164
166
sqlite3 * db = url_db_create_database();
166
168
gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, CMAKE_SOURCE_DIR "/this-does-not-exist");
167
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
169
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
170
172
EXPECT_EQ(0, get_file_count(db));
171
173
EXPECT_EQ(0, get_url_count(db));
173
175
sqlite3_close(db);
176
178
TEST_F(DirectoryUpdateTest, SingleGoodItem)
178
180
sqlite3 * db = url_db_create_database();
180
182
gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
181
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
183
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
184
186
EXPECT_EQ(1, get_file_count(db));
188
190
EXPECT_TRUE(has_url(db, "http", "ubuntu.com"));
190
192
sqlite3_close(db);
193
195
TEST_F(DirectoryUpdateTest, RerunAgain)
195
gchar * cmdline = NULL;
197
gchar * cmdline = nullptr;
196
198
sqlite3 * db = url_db_create_database();
198
200
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
199
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
202
EXPECT_EQ(1, get_file_count(db));
203
EXPECT_EQ(1, get_url_count(db));
205
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
206
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
209
EXPECT_EQ(1, get_file_count(db));
210
EXPECT_EQ(1, get_url_count(db));
212
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
213
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
201
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
204
EXPECT_EQ(1, get_file_count(db));
205
EXPECT_EQ(1, get_url_count(db));
207
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
208
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
211
EXPECT_EQ(1, get_file_count(db));
212
EXPECT_EQ(1, get_url_count(db));
214
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_URLS);
215
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
216
218
EXPECT_EQ(1, get_file_count(db));
217
219
EXPECT_EQ(1, get_url_count(db));
219
221
sqlite3_close(db);
222
224
TEST_F(DirectoryUpdateTest, VariedItems)
224
226
sqlite3 * db = url_db_create_database();
226
228
gchar * cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, UPDATE_DIRECTORY_VARIED);
227
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
229
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
230
232
EXPECT_EQ(6, get_file_count(db));
274
276
sqlite3 * db = url_db_create_database();
276
278
/* A temporary directory to put files in */
277
gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-file-data", NULL);
279
gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-file-data", nullptr);
278
280
g_mkdir_with_parents(datadir, 1 << 6 | 1 << 7 | 1 << 8); // 700
279
281
ASSERT_TRUE(g_file_test(datadir, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)));
281
283
/* Copy the files */
282
284
cmdline = g_strdup_printf("cp \"%s/%s\" \"%s\"", UPDATE_DIRECTORY_URLS, "single-good.url-dispatcher", datadir);
283
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
285
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
286
288
/* Run the tool */
287
289
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, datadir);
288
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
290
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
291
293
EXPECT_EQ(1, get_file_count(db));
294
296
/* Kill the files */
295
297
cmdline = g_strdup_printf("rm \"%s/%s\"", datadir, "single-good.url-dispatcher");
296
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
298
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
299
301
/* Run the tool */
300
302
cmdline = g_strdup_printf("%s \"%s\"", UPDATE_DIRECTORY_TOOL, datadir);
301
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
303
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
304
306
EXPECT_EQ(0, get_file_count(db));
318
320
sqlite3 * db = url_db_create_database();
320
322
/* A temporary directory to put files in */
321
gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-directory-data", NULL);
323
gchar * datadir = g_build_filename(CMAKE_BINARY_DIR, "remove-directory-data", nullptr);
322
324
g_mkdir_with_parents(datadir, 1 << 6 | 1 << 7 | 1 << 8); // 700
323
325
ASSERT_TRUE(g_file_test(datadir, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)));
325
327
/* Copy the files */
326
328
cmdline = g_strdup_printf("cp \"%s/%s\" \"%s\"", UPDATE_DIRECTORY_URLS, "single-good.url-dispatcher", datadir);
327
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
329
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
330
332
/* Run the tool */
331
333
cmdline = g_strdup_printf("%s \"%s/\"", UPDATE_DIRECTORY_TOOL, datadir);
332
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
334
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
335
337
EXPECT_EQ(1, get_file_count(db));
338
340
/* Kill the dir */
339
341
cmdline = g_strdup_printf("rm -rf \"%s\"", datadir);
340
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
342
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
343
345
/* Run the tool */
344
346
cmdline = g_strdup_printf("%s \"%s/\"", UPDATE_DIRECTORY_TOOL, datadir);
345
g_spawn_command_line_sync(cmdline, NULL, NULL, NULL, NULL);
347
g_spawn_command_line_sync(cmdline, nullptr, nullptr, nullptr, nullptr);
348
350
EXPECT_EQ(0, get_file_count(db));