/* * Copyright 2016 (c) Anna Schumaker. */ #include #include #include #include #include #include #include void test_library() { struct playlist *playlist; struct library *library; idle_init_sync(); filter_init(); tags_init(); pl_system_init(NULL); pl_library_init(NULL); while (idle_run_task()) {}; test_equal(pl_library.pl_new("tests/Music/Hyrule Symphony/01 - Title Theme.ogg"), (bool)false); test_equal((void *)pl_library.pl_get_queue("tests/Music"), NULL); test_equal(pl_library.pl_new("tests/Music"), (bool)true); test_equal(pl_library.pl_new("tests/Music"), (bool)false); test_not_equal((void *)pl_library.pl_get_queue("tests/Music"), NULL); library = library_get(0); playlist = library->li_playlist; test_not_equal((void *)library, NULL); test_not_equal((void *)playlist, NULL); test_equal(queue_size(&playlist->pl_queue), 0); while (idle_run_task()) {}; test_equal(queue_size(&playlist->pl_queue), 48); test_equal(queue_size(pl_system.pl_get_queue("Unplayed")), 48); test_equal(queue_size(pl_system.pl_get_queue("Collection")), 48); test_equal(pl_library.pl_add_track("tests/Music", track_get(0)), (bool)false); test_equal(pl_library.pl_add_track("tests/Music", track_get(1)), (bool)false); test_equal(pl_library.pl_remove_track("tests/Music", track_get(0)), (bool)false); test_equal(pl_library.pl_remove_track("tests/Music", track_get(1)), (bool)false); pl_library_deinit(); test_equal((void *)pl_library.pl_get_queue("tests/Music"), NULL); test_equal((void *)library->li_playlist, NULL); pl_library_init(NULL); while (idle_run_task()) {}; playlist = (struct playlist *)library->li_playlist; test_not_equal(library->li_playlist, NULL); test_not_equal((void *)pl_library.pl_get_queue("tests/Music"), NULL); test_equal(queue_size(&playlist->pl_queue), 48); test_equal((void *)pl_library.pl_get_queue("tests/Music"), (void *)&playlist->pl_queue); test_equal(pl_library.pl_add_track("tests/Music", track_get(0)), (bool)false); test_equal(pl_library.pl_add_track("tests/Music", track_get(1)), (bool)false); test_equal(pl_library.pl_remove_track("tests/Music", track_get(0)), (bool)false); test_equal(pl_library.pl_remove_track("tests/Music", track_get(1)), (bool)false); test_equal(queue_size(&playlist->pl_queue), 48); test_equal(queue_has_flag(&playlist->pl_queue, Q_RANDOM), (bool)false); pl_library.pl_set_flag("tests/Music", Q_RANDOM, true); test_equal(queue_has_flag(&playlist->pl_queue, Q_RANDOM), (bool)true); pl_library.pl_set_flag("tests/Music", Q_RANDOM, false); test_equal(queue_has_flag(&playlist->pl_queue, Q_RANDOM), (bool)false); test_equal(g_slist_length(playlist->pl_queue.q_sort), 3); pl_library.pl_sort("tests/Music", COMPARE_ARTIST, true); test_equal(g_slist_length(playlist->pl_queue.q_sort), 1); pl_library.pl_sort("tests/Music", COMPARE_YEAR, false); test_equal(g_slist_length(playlist->pl_queue.q_sort), 2); pl_library.pl_sort("tests/Music", COMPARE_TRACK, false); test_equal(g_slist_length(playlist->pl_queue.q_sort), 3); test_equal(pl_library.pl_delete("tests/Music"), (bool)true); test_equal(pl_library.pl_delete("tests/Music"), (bool)false); test_equal((void *)library_get(0), NULL); test_equal(queue_size(pl_system.pl_get_queue("Unplayed")), 0); test_equal(queue_size(pl_system.pl_get_queue("Collection")), 0); test_equal(track_db_get()->db_size, 0); pl_library_deinit(); pl_system_deinit(); tags_deinit(); filter_deinit(); idle_deinit(); } DECLARE_UNIT_TESTS( UNIT_TEST("Library Playlists", test_library), );