aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Morten Kvarving <spiff@kodi.tv>2024-05-12 08:13:40 +0200
committerGitHub <noreply@github.com>2024-05-12 08:13:40 +0200
commita43c9b90b7f8a8b3be4221e33047bcdb653426bd (patch)
tree461dc4cfcd6d6df63272458dfd5a0157d519d0f9
parent5f8d504054d9081e527febe4d7a3e163acf61a3f (diff)
parent9941c6cff75f13cfd0d28566e13980a6e701a79e (diff)
downloadxbmc-a43c9b90b7f8a8b3be4221e33047bcdb653426bd.tar.xz
Merge pull request #25185 from notspiff/simplify_network_fileitem_classifiers
Simplify network FileItem classifiers
-rw-r--r--xbmc/network/NetworkFileItemClassify.cpp14
-rw-r--r--xbmc/network/NetworkFileItemClassify.h2
-rw-r--r--xbmc/network/test/TestNetworkFileItemClassify.cpp183
3 files changed, 60 insertions, 139 deletions
diff --git a/xbmc/network/NetworkFileItemClassify.cpp b/xbmc/network/NetworkFileItemClassify.cpp
index ed4bd77be6..ef27892c93 100644
--- a/xbmc/network/NetworkFileItemClassify.cpp
+++ b/xbmc/network/NetworkFileItemClassify.cpp
@@ -14,15 +14,12 @@
namespace KODI::NETWORK
{
-bool IsInternetStream(const CFileItem& item, const bool bStrictCheck /* = false */)
+bool IsInternetStream(const CFileItem& item)
{
if (item.HasProperty("IsHTTPDirectory"))
- return bStrictCheck;
+ return false;
- if (!item.GetDynPath().empty())
- return URIUtils::IsInternetStream(item.GetDynPath(), bStrictCheck);
-
- return URIUtils::IsInternetStream(item.GetPath(), bStrictCheck);
+ return URIUtils::IsInternetStream(item.GetDynPath());
}
bool IsRemote(const CFileItem& item)
@@ -32,10 +29,7 @@ bool IsRemote(const CFileItem& item)
bool IsStreamedFilesystem(const CFileItem& item)
{
- if (!item.GetDynPath().empty())
- return URIUtils::IsStreamedFilesystem(item.GetDynPath());
-
- return URIUtils::IsStreamedFilesystem(item.GetPath());
+ return URIUtils::IsStreamedFilesystem(item.GetDynPath());
}
} // namespace KODI::NETWORK
diff --git a/xbmc/network/NetworkFileItemClassify.h b/xbmc/network/NetworkFileItemClassify.h
index 5a96a98253..dc309e0145 100644
--- a/xbmc/network/NetworkFileItemClassify.h
+++ b/xbmc/network/NetworkFileItemClassify.h
@@ -14,7 +14,7 @@ namespace KODI::NETWORK
{
//! \brief Check whether an item is a an internet stream.
-bool IsInternetStream(const CFileItem& item, const bool bStrictCheck = false);
+bool IsInternetStream(const CFileItem& item);
//! \brief Check whether an item is on a remote location.
bool IsRemote(const CFileItem& item);
diff --git a/xbmc/network/test/TestNetworkFileItemClassify.cpp b/xbmc/network/test/TestNetworkFileItemClassify.cpp
index 13dbd44c72..9cd99615b1 100644
--- a/xbmc/network/test/TestNetworkFileItemClassify.cpp
+++ b/xbmc/network/test/TestNetworkFileItemClassify.cpp
@@ -33,120 +33,58 @@ struct SimpleDefinition
} // namespace
-struct InternetStreamDefinition
-{
- InternetStreamDefinition(const std::string& path, bool folder, bool strict, bool res)
- : item(path, folder), strictCheck(strict), result(res)
- {
- }
-
- CFileItem item;
- bool strictCheck;
- bool result;
-};
-
-class InternetStreamTest : public testing::WithParamInterface<InternetStreamDefinition>,
+class InternetStreamTest : public testing::WithParamInterface<SimpleDefinition>,
public testing::Test
{
};
TEST_P(InternetStreamTest, IsInternetStream)
{
- EXPECT_EQ(NETWORK::IsInternetStream(GetParam().item, GetParam().strictCheck), GetParam().result);
+ EXPECT_EQ(NETWORK::IsInternetStream(GetParam().item), GetParam().result);
}
const auto inetstream_tests = std::array{
- InternetStreamDefinition{"/home/user/test.disc", false, false, false},
- InternetStreamDefinition{"/home/user/test.disc", true, true, false},
- InternetStreamDefinition{"http://some.where/foo", false, false, true},
- InternetStreamDefinition{"http://some.where/foo", false, true, true},
- InternetStreamDefinition{"http://some.where/foo", true, false, true},
- InternetStreamDefinition{"http://some.where/foo", true, true, true},
- InternetStreamDefinition{"https://some.where/foo", false, false, true},
- InternetStreamDefinition{"https://some.where/foo", false, true, true},
- InternetStreamDefinition{"https://some.where/foo", true, false, true},
- InternetStreamDefinition{"https://some.where/foo", true, true, true},
- InternetStreamDefinition{"tcp://some.where/foo", false, false, true},
- InternetStreamDefinition{"tcp://some.where/foo", false, true, true},
- InternetStreamDefinition{"tcp://some.where/foo", true, false, true},
- InternetStreamDefinition{"tcp://some.where/foo", true, true, true},
- InternetStreamDefinition{"udp://some.where/foo", false, false, true},
- InternetStreamDefinition{"udp://some.where/foo", false, true, true},
- InternetStreamDefinition{"udp://some.where/foo", true, false, true},
- InternetStreamDefinition{"udp://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtp://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtp://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtp://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtp://some.where/foo", true, true, true},
- InternetStreamDefinition{"sdp://some.where/foo", false, false, true},
- InternetStreamDefinition{"sdp://some.where/foo", false, true, true},
- InternetStreamDefinition{"sdp://some.where/foo", true, false, true},
- InternetStreamDefinition{"sdp://some.where/foo", true, true, true},
- InternetStreamDefinition{"mms://some.where/foo", false, false, true},
- InternetStreamDefinition{"mms://some.where/foo", false, true, true},
- InternetStreamDefinition{"mms://some.where/foo", true, false, true},
- InternetStreamDefinition{"mms://some.where/foo", true, true, true},
- InternetStreamDefinition{"mmst://some.where/foo", false, false, true},
- InternetStreamDefinition{"mmst://some.where/foo", false, true, true},
- InternetStreamDefinition{"mmst://some.where/foo", true, false, true},
- InternetStreamDefinition{"mmst://some.where/foo", true, true, true},
- InternetStreamDefinition{"mmsh://some.where/foo", false, false, true},
- InternetStreamDefinition{"mmsh://some.where/foo", false, true, true},
- InternetStreamDefinition{"mmsh://some.where/foo", true, false, true},
- InternetStreamDefinition{"mmsh://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtsp://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtsp://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtsp://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtsp://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtmp://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtmp://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtmp://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtmp://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtmpt://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtmpt://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtmpt://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtmpt://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtmpe://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtmpe://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtmpe://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtmpe://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtmpte://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtmpte://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtmpte://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtmpte://some.where/foo", true, true, true},
- InternetStreamDefinition{"rtmps://some.where/foo", false, false, true},
- InternetStreamDefinition{"rtmps://some.where/foo", false, true, true},
- InternetStreamDefinition{"rtmps://some.where/foo", true, false, true},
- InternetStreamDefinition{"rtmps://some.where/foo", true, true, true},
- InternetStreamDefinition{"shout://some.where/foo", false, false, true},
- InternetStreamDefinition{"shout://some.where/foo", false, true, true},
- InternetStreamDefinition{"shout://some.where/foo", true, false, true},
- InternetStreamDefinition{"shout://some.where/foo", true, true, true},
- InternetStreamDefinition{"rss://some.where/foo", false, false, true},
- InternetStreamDefinition{"rss://some.where/foo", false, true, true},
- InternetStreamDefinition{"rss://some.where/foo", true, false, true},
- InternetStreamDefinition{"rss://some.where/foo", true, true, true},
- InternetStreamDefinition{"rsss://some.where/foo", false, false, true},
- InternetStreamDefinition{"rsss://some.where/foo", false, true, true},
- InternetStreamDefinition{"rsss://some.where/foo", true, false, true},
- InternetStreamDefinition{"rsss://some.where/foo", true, true, true},
- InternetStreamDefinition{"upnp://some.where/foo", false, false, false},
- InternetStreamDefinition{"upnp://some.where/foo", true, false, false},
- InternetStreamDefinition{"upnp://some.where/foo", false, true, true},
- InternetStreamDefinition{"upnp://some.where/foo", true, true, true},
- InternetStreamDefinition{"ftp://some.where/foo", false, false, false},
- InternetStreamDefinition{"ftp://some.where/foo", true, false, false},
- InternetStreamDefinition{"ftp://some.where/foo", false, true, true},
- InternetStreamDefinition{"ftp://some.where/foo", true, true, true},
- InternetStreamDefinition{"sftp://some.where/foo", false, false, false},
- InternetStreamDefinition{"sftp://some.where/foo", true, false, false},
- InternetStreamDefinition{"sftp://some.where/foo", false, true, true},
- InternetStreamDefinition{"sftp://some.where/foo", true, true, true},
- InternetStreamDefinition{"ssh://some.where/foo", false, false, false},
- InternetStreamDefinition{"ssh://some.where/foo", true, false, false},
- InternetStreamDefinition{"ssh://some.where/foo", false, true, true},
- InternetStreamDefinition{"ssh://some.where/foo", true, true, true},
- InternetStreamDefinition{"ssh://some.where/foo", true, true, true},
+ SimpleDefinition{"/home/user/test.disc", false, false},
+ SimpleDefinition{"http://some.where/foo", false, true},
+ SimpleDefinition{"http://some.where/foo", true, true},
+ SimpleDefinition{"https://some.where/foo", false, true},
+ SimpleDefinition{"https://some.where/foo", true, true},
+ SimpleDefinition{"tcp://some.where/foo", false, true},
+ SimpleDefinition{"tcp://some.where/foo", true, true},
+ SimpleDefinition{"udp://some.where/foo", false, true},
+ SimpleDefinition{"udp://some.where/foo", true, true},
+ SimpleDefinition{"rtp://some.where/foo", false, true},
+ SimpleDefinition{"rtp://some.where/foo", true, true},
+ SimpleDefinition{"sdp://some.where/foo", false, true},
+ SimpleDefinition{"sdp://some.where/foo", true, true},
+ SimpleDefinition{"mms://some.where/foo", false, true},
+ SimpleDefinition{"mms://some.where/foo", true, true},
+ SimpleDefinition{"mmst://some.where/foo", false, true},
+ SimpleDefinition{"mmst://some.where/foo", true, true},
+ SimpleDefinition{"mmsh://some.where/foo", false, true},
+ SimpleDefinition{"mmsh://some.where/foo", true, true},
+ SimpleDefinition{"rtsp://some.where/foo", false, true},
+ SimpleDefinition{"rtsp://some.where/foo", true, true},
+ SimpleDefinition{"rtmp://some.where/foo", false, true},
+ SimpleDefinition{"rtmp://some.where/foo", true, true},
+ SimpleDefinition{"rtmpt://some.where/foo", false, true},
+ SimpleDefinition{"rtmpt://some.where/foo", true, true},
+ SimpleDefinition{"rtmpe://some.where/foo", false, true},
+ SimpleDefinition{"rtmpe://some.where/foo", true, true},
+ SimpleDefinition{"rtmpte://some.where/foo", false, true},
+ SimpleDefinition{"rtmpte://some.where/foo", true, true},
+ SimpleDefinition{"rtmps://some.where/foo", false, true},
+ SimpleDefinition{"rtmps://some.where/foo", true, true},
+ SimpleDefinition{"shout://some.where/foo", false, true},
+ SimpleDefinition{"shout://some.where/foo", true, true},
+ SimpleDefinition{"rss://some.where/foo", false, true},
+ SimpleDefinition{"rss://some.where/foo", true, true},
+ SimpleDefinition{"rsss://some.where/foo", false, true},
+ SimpleDefinition{"rsss://some.where/foo", true, true},
+ SimpleDefinition{"upnp://some.where/foo", false, false},
+ SimpleDefinition{"ftp://some.where/foo", false, false},
+ SimpleDefinition{"sftp://some.where/foo", false, false},
+ SimpleDefinition{"ssh://some.where/foo", false, false},
};
INSTANTIATE_TEST_SUITE_P(TestNetworkFileItemClassify,
@@ -158,38 +96,27 @@ TEST(TestNetworkWorkFileItemClassify, InternetStreamStacks)
std::string stackPath;
EXPECT_TRUE(XFILE::CStackDirectory::ConstructStackPath(
{"/home/foo/somthing.avi", "/home/bar/else.mkv"}, stackPath));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), true));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), true));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false)));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true)));
EXPECT_TRUE(XFILE::CStackDirectory::ConstructStackPath(
{"https://home/foo/somthing.avi", "https://home/bar/else.mkv"}, stackPath));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, false), false));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, true), false));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, false), true));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, true), true));
+ EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, false)));
+ EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, true)));
EXPECT_TRUE(XFILE::CStackDirectory::ConstructStackPath(
{"ftp://home/foo/somthing.avi", "ftp://home/bar/else.mkv"}, stackPath));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), false));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, false), true));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, true), true));
-
- EXPECT_TRUE(XFILE::CStackDirectory::ConstructStackPath(
- {"ftp://home/foo/somthing.avi", "/home/bar/else.mkv"}, stackPath));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), false));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, false), true));
- EXPECT_TRUE(NETWORK::IsInternetStream(CFileItem(stackPath, true), true));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false)));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true)));
EXPECT_TRUE(XFILE::CStackDirectory::ConstructStackPath(
{"/home/foo/somthing.avi", "ftp://home/bar/else.mkv"}, stackPath));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), false));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false), true));
- EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true), true));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, false)));
+ EXPECT_FALSE(NETWORK::IsInternetStream(CFileItem(stackPath, true)));
+
+ CFileItem item("https://some.where/", true);
+ item.SetProperty("IsHTTPDirectory", true);
+ EXPECT_FALSE(NETWORK::IsInternetStream(item));
}
class RemoteTest : public testing::WithParamInterface<SimpleDefinition>, public testing::Test