/* * Copyright 2013 (c) Anna Schumaker. */ #include #include #include "test.h" static IndexEntry *IDX_NULL = NULL; static Queue *Q_NULL = NULL; static void test_init() { IndexEntry *ent; Queue *q = playlist :: get_queue(); test_not_equal(q, Q_NULL); test_equal(q->has_flag(Q_ENABLED), true); test_equal(q->has_flag(Q_REPEAT), true); test_equal(q->has_flag(Q_NO_SORT), true); tagdb :: init(); library :: init(); playlist :: init(); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)4); test_equal(library :: get_queue()->size(), (unsigned)20); ent = playlist :: get_tracks("Favorites"); test_equal(ent->values.size(), (size_t)8); ent = playlist :: get_tracks("No Such Playlist"); test_equal(ent, IDX_NULL); } static void test_queue() { Queue *q = playlist :: get_queue(); playlist :: select("Banned"); test_equal(q->size(), (unsigned)4); playlist :: select("Favorites"); test_equal(q->size(), (unsigned)8); } static void test_add() { IndexEntry *ent; Queue *q = playlist :: get_queue(); Queue *l = library :: get_queue(); playlist :: add(tagdb :: lookup(5), "Banned"); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)5); test_equal(q->size(), (unsigned)8); test_equal(l->size(), (unsigned)19); playlist :: add(tagdb :: lookup(16), "Favorites"); playlist :: add(tagdb :: lookup(5), "Favorites"); ent = playlist :: get_tracks("Favorites"); test_equal(ent->values.size(), (size_t)9); test_equal(q->size(), (unsigned)9); playlist :: add(tagdb :: lookup(6), "No Playlist"); test_equal(playlist :: get_tracks("No Playlist"), IDX_NULL); } static void test_delete() { IndexEntry *ent; Queue *q = playlist :: get_queue(); Queue *l = library :: get_queue(); playlist :: del(tagdb :: lookup(5), "Banned"); ent = playlist :: get_tracks("Banned"); test_equal(ent->values.size(), (size_t)4); test_equal(q->size(), (unsigned)9); test_equal(l->size(), (unsigned)20); playlist :: del(tagdb :: lookup(5), "Favorites"); ent = playlist :: get_tracks("Favorites"); test_equal(ent->values.size(), (size_t)8); test_equal(q->size(), (unsigned)8); playlist :: del(tagdb :: lookup(6), "No Playlist"); test_equal(playlist :: get_tracks("No Playlist"), IDX_NULL); } static void test_has() { test :: begin(); for (unsigned int i = 0; i < 24; i++) { Track *track = tagdb :: lookup(i); if (i <= 3) check_equal(playlist :: has(track, "Banned"), true); else check_equal(playlist :: has(track, "Banned"), false); } test :: success(); test :: begin(); for (unsigned int i = 0; i < 24; i++) { Track *track = tagdb :: lookup(i); if (i >= 16) check_equal(playlist :: has(track, "Favorites"), true); else check_equal(playlist :: has(track, "Favorites"), false); } test :: success(); } int main(int argc, char **argv) { test :: cp_data_dir(); run_test("Playlist Initialization Test", test_init); run_test("Playlist Queue Test", test_queue); run_test("Playlist Add Test", test_add); run_test("Playlist Delete Test", test_delete); run_test("Playlist Has Test", test_has); return 0; }