diff --git a/core/tags/track.cpp b/core/tags/track.cpp index cc9626bf..099f9c78 100644 --- a/core/tags/track.cpp +++ b/core/tags/track.cpp @@ -11,4 +11,10 @@ Track :: Track() track(0), length(0), play_count(0), last_year(0), last_month(0), last_day(0) {} +Track :: Track(Library *library) + : _library(library) +{ + _library->inc_size(); +} + Library *Track :: library() { return _library; } diff --git a/include/core/tags/track.h b/include/core/tags/track.h index 07a70068..444a7c98 100644 --- a/include/core/tags/track.h +++ b/include/core/tags/track.h @@ -76,6 +76,13 @@ public: /** Track constructor */ Track(); + /** + * Track constructor + * + * @param library The library containing this track. + */ + Track(Library *); + /** * Track constructor * @param filepath Filepath of the track diff --git a/tests/core/tags/track.cpp b/tests/core/tags/track.cpp index 1cb6049b..68d036ac 100644 --- a/tests/core/tags/track.cpp +++ b/tests/core/tags/track.cpp @@ -5,7 +5,7 @@ #include #include -static void test_track_tag() +static void test_track_tag_default() { Track track; @@ -30,8 +30,18 @@ static void test_track_tag() test_equal(track.last_day, (unsigned)0); } +static void test_track_tag_constructor() +{ + Library *library = tags :: get_library("/home/Zelda/Music"); + Track track(library); + + test_equal(track.library(), library); + test_equal(track.library()->size(), (unsigned)1); +} + int main(int argc, char **argv) { - run_test("Track Tag Test", test_track_tag); + run_test("Track Tag Default Constructor Test", test_track_tag_default); + run_test("Track Tag Constructor Test", test_track_tag_constructor); return 0; }