[Libreoffice-commits] online.git: common/Util.hpp test/test.cpp test/WhiteBoxTests.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon Dec 19 05:46:33 UTC 2016
common/Util.hpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++++
test/WhiteBoxTests.cpp | 51 ++++++++++++++++++++++++++++++++++++++++-
test/test.cpp | 1
3 files changed, 110 insertions(+), 2 deletions(-)
New commits:
commit 32271b8d5c108c452db1089c100c40a62002db1f
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sat Dec 17 09:55:28 2016 -0500
loolwsd: string trimming helpers
Change-Id: I5e47f92b624890421bd7022084063cdea77da12b
Reviewed-on: https://gerrit.libreoffice.org/32155
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/common/Util.hpp b/common/Util.hpp
index e567972..58a33e2 100644
--- a/common/Util.hpp
+++ b/common/Util.hpp
@@ -120,6 +120,66 @@ namespace Util
return s;
}
+ /// Trim spaces from both left and right. Just spaces.
+ inline std::string& trim(std::string& s)
+ {
+ const auto first = s.find_first_not_of(' ');
+ const auto last = s.find_last_not_of(' ');
+ if (first != std::string::npos)
+ {
+ if (last != std::string::npos)
+ {
+ s = s.substr(first, last + 1 - first);
+ }
+ else
+ {
+ s = s.substr(first);
+ }
+ }
+ else
+ {
+ if (last != std::string::npos)
+ {
+ s = s.substr(0, last + 1);
+ }
+ else
+ {
+ s.clear();
+ }
+ }
+
+ return s;
+ }
+
+ /// Trim spaces from both left and right and copy. Just spaces.
+ inline std::string trimmed(const std::string& s)
+ {
+ const auto first = s.find_first_not_of(' ');
+ const auto last = s.find_last_not_of(' ');
+ if (first != std::string::npos)
+ {
+ if (last != std::string::npos)
+ {
+ return s.substr(first, last + 1 - first);
+ }
+
+ return s.substr(first);
+ }
+
+ if (last != std::string::npos)
+ {
+ return s.substr(0, last + 1);
+ }
+
+ return std::string();
+ }
+
+ /// Trim spaces from left and right. Just spaces.
+ inline std::string trimmed(const char* s)
+ {
+ return trimmed(std::string(s));
+ }
+
/// Given one or more patterns to allow, and one or more to deny,
/// the match member will return true if, and only if, the subject
/// matches the allowed list, but not the deny.
diff --git a/test/WhiteBoxTests.cpp b/test/WhiteBoxTests.cpp
index 6ca75bc..0b9620a 100644
--- a/test/WhiteBoxTests.cpp
+++ b/test/WhiteBoxTests.cpp
@@ -14,8 +14,8 @@
#include <ChildSession.hpp>
#include <Common.hpp>
#include <Kit.hpp>
-#include <Protocol.hpp>
#include <MessageQueue.hpp>
+#include <Protocol.hpp>
#include <Util.hpp>
/// WhiteBox unit-tests.
@@ -73,6 +73,55 @@ void WhiteBoxTests::testLOOLProtocolFunctions()
CPPUNIT_ASSERT(LOOLProtocol::getTokenKeywordFromMessage(message, "mumble", map, mumble));
CPPUNIT_ASSERT_EQUAL(2, mumble);
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed("A").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), Util::trimmed("A"));
+
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed(" X").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("X"), Util::trimmed(" X"));
+
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed("Y ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("Y"), Util::trimmed("Y "));
+
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trimmed(" Z ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), Util::trimmed(" Z "));
+
+ CPPUNIT_ASSERT_EQUAL(0UL, Util::trimmed(" ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trimmed(" "));
+
+ CPPUNIT_ASSERT_EQUAL(0UL, Util::trimmed(" ").size());
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trimmed(" "));
+
+ std::string s;
+
+ s = "A";
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
+ s = "A";
+ CPPUNIT_ASSERT_EQUAL(std::string("A"), Util::trim(s));
+
+ s = " X";
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
+ s = " X";
+ CPPUNIT_ASSERT_EQUAL(std::string("X"), Util::trim(s));
+
+ s = "Y ";
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
+ s = "Y ";
+ CPPUNIT_ASSERT_EQUAL(std::string("Y"), Util::trim(s));
+
+ s = " Z ";
+ CPPUNIT_ASSERT_EQUAL(1UL, Util::trim(s).size());
+ s = " Z ";
+ CPPUNIT_ASSERT_EQUAL(std::string("Z"), Util::trim(s));
+
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(0UL, Util::trim(s).size());
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trim(s));
+
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(0UL, Util::trim(s).size());
+ s = " ";
+ CPPUNIT_ASSERT_EQUAL(std::string(""), Util::trim(s));
}
void WhiteBoxTests::testRegexListMatcher()
diff --git a/test/test.cpp b/test/test.cpp
index ba80912..0f8b359 100644
--- a/test/test.cpp
+++ b/test/test.cpp
@@ -58,7 +58,6 @@ int main(int /*argc*/, char** /*argv*/)
{
Log::initialize("tst");
-
CPPUNIT_NS::TestResult controller;
CPPUNIT_NS::TestResultCollector result;
controller.addListener(&result);
More information about the Libreoffice-commits
mailing list