]> granicus.if.org Git - icinga2/commitdiff
Add String::Contains().
authorMichael Friedrich <michael.friedrich@netways.de>
Tue, 17 Dec 2013 11:19:29 +0000 (12:19 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Tue, 17 Dec 2013 17:34:05 +0000 (18:34 +0100)
Refs #5355

lib/base/qstring.cpp
lib/base/qstring.h
test/CMakeLists.txt
test/base-string.cpp

index 180fe532f5c0f21dea39c3267ebd6310528dc49d..24cc970df461d65d9c6826d933af54296e618be4 100644 (file)
@@ -22,6 +22,8 @@
 #include <boost/algorithm/string/trim.hpp>
 #include <boost/algorithm/string/join.hpp>
 #include <boost/algorithm/string/compare.hpp>
+#include <boost/algorithm/string/predicate.hpp>
+#include <boost/algorithm/string/classification.hpp>
 
 using namespace icinga;
 
@@ -179,6 +181,11 @@ void String::Trim(void)
        boost::algorithm::trim(m_Data);
 }
 
+bool String::Contains(const String& str) const
+{
+       return boost::algorithm::contains(m_Data, str);
+}
+
 void String::swap(String& str)
 {
        m_Data.swap(str.m_Data);
index 47f7e5ad7deebbf259c25daa25d74991c47c8c50..e5bd45adf01e913e5c8dbdcbe9dde7a0ec95427b 100644 (file)
@@ -91,6 +91,7 @@ public:
        void Replace(size_t first, size_t second, const String& str);
 
        void Trim(void);
+       bool Contains(const String& str) const;
 
        void swap(String& str);
        Iterator erase(Iterator first, Iterator last);
index f4867e12836af3ed203238ab6d1b0a402db59256..752914d58865d24b10c94b667194e82565913e91 100644 (file)
@@ -62,6 +62,7 @@ add_boost_test(base
         base_string/clear
         base_string/append
         base_string/trim
+       base_string/contains
         base_string/replace
         base_string/index
         base_string/find
index 0de138f7ad40ebc2250b84e3d41f428a78212e50..f4c0970c2d63e5bdf1406243c5150c42a7de3688 100644 (file)
@@ -79,6 +79,21 @@ BOOST_AUTO_TEST_CASE(trim)
        BOOST_CHECK(s4 == "hello");
 }
 
+BOOST_AUTO_TEST_CASE(contains)
+{
+       String s1 = "hello world";
+       String s2 = "hello";
+       BOOST_CHECK(s1.Contains(s2));
+
+       String s3 = "  hello world  ";
+       String s4 = "  hello";
+       BOOST_CHECK(s3.Contains(s4));
+
+       String s5 = "  hello world  ";
+       String s6 = "world  ";
+       BOOST_CHECK(s5.Contains(s6));
+}
+
 BOOST_AUTO_TEST_CASE(replace)
 {
        String s = "hello";