mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-09-13 06:52:58 -06:00
Qt: Better wayland detection to enforce xcb
In certain cases, the platform can be "wayland-egl", "wayland-xcomposite", and other values for which I haven't found a full list yet. Instead of matching only "wayland", we now look for "wayland" anywhere in the `QT_QPA_PLATFORM` string in a case-insensitive manner. Acknowledgements: `CaseInsensitiveContains`' implementation was heavily inspired by GNU's non-standard glibc `strcasestr` function, which can be found here licensed under GPLv2 or later: https://ftp.gnu.org/gnu/libc/
This commit is contained in:
@ -225,3 +225,34 @@ TEST(StringUtil, SplitPathWindowsPathWithDriveLetter)
|
||||
EXPECT_EQ(extension, "");
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(StringUtil, CaseInsensitiveContains_BasicMatches)
|
||||
{
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("hello world", "hello"));
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("hello world", "world"));
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("HELLO WORLD", "hello"));
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("HeLLo WoRLd", "WORLD"));
|
||||
}
|
||||
|
||||
TEST(StringUtil, CaseInsensitiveContains_SubstringNotFound)
|
||||
{
|
||||
EXPECT_FALSE(Common::CaseInsensitiveContains("hello world", "hey"));
|
||||
}
|
||||
|
||||
TEST(StringUtil, CaseInsensitiveContains_EmptyStrings)
|
||||
{
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("", ""));
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("hello", ""));
|
||||
EXPECT_FALSE(Common::CaseInsensitiveContains("", "world"));
|
||||
}
|
||||
|
||||
TEST(StringUtil, CaseInsensitiveContains_EntireStringMatch)
|
||||
{
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("Test", "TEST"));
|
||||
}
|
||||
|
||||
TEST(StringUtil, CaseInsensitiveContains_OverlappingMatches)
|
||||
{
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("aaaaaa", "aa"));
|
||||
EXPECT_TRUE(Common::CaseInsensitiveContains("ababababa", "bABa"));
|
||||
}
|
||||
|
Reference in New Issue
Block a user