2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "MediaSource.h"
10 #include "filesystem/File.h"
11 #include "settings/MediaSourceSettings.h"
12 #include "test/TestUtils.h"
13 #include "utils/XBMCTinyXML2.h"
14 #include "utils/XMLUtils.h"
16 #include <gtest/gtest.h>
18 TEST(TestMediaSourceSettings
, LoadString
)
20 CMediaSourceSettings
& ms
= CMediaSourceSettings::GetInstance();
21 EXPECT_TRUE(ms
.Load(XBMC_REF_FILE_PATH("/xbmc/settings/test/test-MediaSources.xml")));
23 EXPECT_EQ(ms
.GetSources("programs")->size(), 0);
24 EXPECT_EQ(ms
.GetSources("files")->size(), 0);
25 EXPECT_EQ(ms
.GetSources("music")->size(), 2);
26 EXPECT_EQ(ms
.GetSources("video")->size(), 4);
27 EXPECT_EQ(ms
.GetSources("pictures")->size(), 1);
28 EXPECT_EQ(ms
.GetSources("games")->size(), 0);
31 TEST(TestMediaSourceSettings
, SaveString
)
33 CMediaSourceSettings
& ms
= CMediaSourceSettings::GetInstance();
34 EXPECT_TRUE(ms
.Load(XBMC_REF_FILE_PATH("/xbmc/settings/test/test-MediaSources.xml")));
36 int refprograms
= ms
.GetSources("programs")->size();
37 int reffiles
= ms
.GetSources("files")->size();
38 int refmusic
= ms
.GetSources("music")->size();
39 int refvideo
= ms
.GetSources("video")->size();
40 int refpictures
= ms
.GetSources("pictures")->size();
41 int refgames
= ms
.GetSources("games")->size();
44 file
= XBMC_CREATETEMPFILE(".xml");
45 std::string xmlfile
= XBMC_TEMPFILEPATH(file
);
46 std::cout
<< "Reference file generated at '" << XBMC_TEMPFILEPATH(file
) << "'" << std::endl
;
49 EXPECT_TRUE(ms
.Save(xmlfile
));
51 EXPECT_TRUE(ms
.Load(xmlfile
));
52 auto progsources
= ms
.GetSources("programs");
53 auto progsources2
= ms
.GetSources("myprograms");
54 EXPECT_TRUE(progsources
== progsources2
);
55 EXPECT_EQ(progsources
->size(), refprograms
);
56 auto filessources
= ms
.GetSources("files");
57 EXPECT_EQ(filessources
->size(), reffiles
);
58 auto musicsources
= ms
.GetSources("music");
59 EXPECT_EQ(musicsources
->size(), refmusic
);
60 auto videosources
= ms
.GetSources("video");
61 auto videosources2
= ms
.GetSources("videos");
62 EXPECT_TRUE(videosources
== videosources2
);
63 EXPECT_EQ(videosources
->size(), refvideo
);
64 auto picturessources
= ms
.GetSources("pictures");
65 EXPECT_EQ(picturessources
->size(), refpictures
);
66 auto gamessources
= ms
.GetSources("games");
67 EXPECT_EQ(gamessources
->size(), refgames
);
70 TEST(TestMediaSourceSettings
, GetSource
)
72 // ToDo: implement test
73 // Test Malformed source
74 // Test missing name/path element
77 TEST(TestMediaSourceSettings
, SetSources
)
79 // ToDo: implement test