mirror of
https://github.com/polybar/polybar.git
synced 2026-02-10 22:25:36 +00:00
feat(xkeyboard): Icon matching using variant (#2521)
* feat(string_util): add contains_nocase * feat(xkeyboard): Enable icon by variant * Cleanup * string_util: add some cases to string test * string_util: rename contains_nocase -> contains_ignore_case * layouticonset: use contains_ignore_case * layouticonset: apply renamings and remove dead code * remove VARIANT_NONE and use empty string instead * use emplace_back and add assert * layouticonset: precompute condition * xkeyboard: restore missing continue * Cleanup parse_icons * Always choose the first case-insensitive match * Cleanup layouticonset.get * update the changelog Co-authored-by: patrick96 <p.ziegler96@gmail.com>
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
#include "utils/string.hpp"
|
||||
|
||||
#include "common/test.hpp"
|
||||
|
||||
using namespace polybar;
|
||||
@ -20,6 +21,27 @@ TEST(String, compare) {
|
||||
EXPECT_FALSE(string_util::compare("foo", "bar"));
|
||||
}
|
||||
|
||||
TEST(String, contains) {
|
||||
EXPECT_TRUE(string_util::contains("fooooobar", "foo"));
|
||||
EXPECT_TRUE(string_util::contains("barrrrrrfoo", "foo"));
|
||||
EXPECT_TRUE(string_util::contains("barrfoobazzz", "foo"));
|
||||
EXPECT_FALSE(string_util::contains("foo", "Foo"));
|
||||
EXPECT_FALSE(string_util::contains("foo", "bar"));
|
||||
}
|
||||
|
||||
TEST(String, contains_ignore_case) {
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("fooooobar", "foo"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("barrrrrrfoo", "foo"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("barrfoobazzz", "foo"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("fooooobar", "fOO"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("barrrrrrfoo", "FOo"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("barrfoobazzz", "FoO"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("foo", "Foo"));
|
||||
EXPECT_FALSE(string_util::contains_ignore_case("foo", "bar"));
|
||||
EXPECT_TRUE(string_util::contains_ignore_case("foo", ""));
|
||||
EXPECT_FALSE(string_util::contains_ignore_case("", "bar"));
|
||||
}
|
||||
|
||||
TEST(String, replace) {
|
||||
EXPECT_EQ("a.c", string_util::replace("abc", "b", "."));
|
||||
EXPECT_EQ("a.a", string_util::replace("aaa", "a", ".", 1, 2));
|
||||
|
||||
Reference in New Issue
Block a user