refactor(strhelpers): extract shared strReplaceAll helper (#7711)

Co-authored-by: philmoz <philmoz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Peter Feerick
2026-08-27 09:39:10 +10:00
committed by GitHub
co-authored by philmoz Claude Sonnet 5
parent 2b9b8fd479
commit 8347285abe
9 changed files with 95 additions and 52 deletions
+65
View File
@@ -0,0 +1,65 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "gtests.h"
#include "strhelpers.h"
TEST(StrHelpers, ReplaceAllEmptyFrom)
{
std::string s = "hello world";
strReplaceAll(s, "", "x");
EXPECT_EQ(s, "hello world");
}
TEST(StrHelpers, ReplaceAllEmptyTo)
{
std::string s = "hello world";
strReplaceAll(s, "o", "");
EXPECT_EQ(s, "hell wrld");
}
TEST(StrHelpers, ReplaceAllNoMatch)
{
std::string s = "hello world";
strReplaceAll(s, "xyz", "abc");
EXPECT_EQ(s, "hello world");
}
TEST(StrHelpers, ReplaceAllOverlappingMatches)
{
std::string s = "aaaa";
strReplaceAll(s, "aa", "a");
EXPECT_EQ(s, "aa");
}
TEST(StrHelpers, ReplaceAllToContainsFrom)
{
std::string s = "cat";
strReplaceAll(s, "cat", "concatenate");
EXPECT_EQ(s, "concatenate");
}
TEST(StrHelpers, ReplaceAllMultipleMatches)
{
std::string s = "a,b,c,d";
strReplaceAll(s, ",", " - ");
EXPECT_EQ(s, "a - b - c - d");
}