/* * Copyright 2016 (c) Anna Schumaker. */ #include #include #include #include #include #include void test_library() { struct playlist *playlist; struct library *library; idle_init_sync(); filter_init(); tags_init(); while (idle_run_task()) {}; library = library_find("tests/Music"); track_add(library, "tests/Music/Hyrule Symphony/01 - Title Theme.ogg"); track_add(library, "tests/Music/Hyrule Symphony/02 - Kokiri Forest.ogg"); test_equal(library->li_playlist, NULL); test_equal((void *)pl_library.pl_get_queue("tests/Music"), NULL); 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_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), 2); 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), 2); 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); pl_library_deinit(); test_equal(library->li_playlist, NULL); tags_deinit(); filter_deinit(); idle_deinit(); } DECLARE_UNIT_TESTS( UNIT_TEST("Library Playlists", test_library), );