libchromeos: Migrate string_utils from Buffet to libchromeos
BUG=chromium:405714
TEST=USE=buffet ./build_packages
Change-Id: I95d8977aed6ffd718751de058d4cdda3a5395c25
Reviewed-on: https://chromium-review.googlesource.com/213361
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 52a131f..a796de2 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -37,7 +37,6 @@
'manager.cc',
'mime_utils.cc',
'storage_impls.cc',
- 'string_utils.cc',
'url_utils.cc'
],
},
@@ -91,7 +90,6 @@
'http_transport_fake.cc',
'http_utils_unittest.cc',
'mime_utils_unittest.cc',
- 'string_utils_unittest.cc',
'url_utils_unittest.cc'
],
},
diff --git a/buffet/commands/command_dictionary.cc b/buffet/commands/command_dictionary.cc
index 64f47c1..54753ad 100644
--- a/buffet/commands/command_dictionary.cc
+++ b/buffet/commands/command_dictionary.cc
@@ -5,10 +5,10 @@
#include "buffet/commands/command_dictionary.h"
#include <base/values.h>
+#include <chromeos/string_utils.h>
#include "buffet/commands/command_definition.h"
#include "buffet/commands/schema_constants.h"
-#include "buffet/string_utils.h"
namespace buffet {
@@ -63,8 +63,8 @@
return false;
}
// Construct the compound command name as "pkg_name.cmd_name".
- std::string full_command_name = string_utils::Join('.', package_name,
- command_name);
+ std::string full_command_name = chromeos::string_utils::Join(
+ '.', package_name, command_name);
// Get the "parameters" definition of the command and read it into
// an object schema.
const base::DictionaryValue* command_schema_def = nullptr;
@@ -158,7 +158,7 @@
dict.reset();
return dict;
}
- auto cmd_name_parts = string_utils::SplitAtFirst(pair.first, '.');
+ auto cmd_name_parts = chromeos::string_utils::SplitAtFirst(pair.first, '.');
std::string package_name = cmd_name_parts.first;
std::string command_name = cmd_name_parts.second;
base::DictionaryValue* package = nullptr;
diff --git a/buffet/commands/command_queue_unittest.cc b/buffet/commands/command_queue_unittest.cc
index 2c0e01b..a9d5ad9 100644
--- a/buffet/commands/command_queue_unittest.cc
+++ b/buffet/commands/command_queue_unittest.cc
@@ -6,11 +6,11 @@
#include <string>
#include <vector>
+#include <chromeos/string_utils.h>
#include <gtest/gtest.h>
#include "buffet/commands/command_dispatch_interface.h"
#include "buffet/commands/command_queue.h"
-#include "buffet/string_utils.h"
namespace {
@@ -46,7 +46,7 @@
// Get the comma-separated list of command IDs currently accumulated in the
// command queue.
std::string GetIDs() const {
- using buffet::string_utils::Join;
+ using chromeos::string_utils::Join;
return Join(',', std::vector<std::string>(ids_.begin(), ids_.end()));
}
@@ -99,7 +99,7 @@
std::string id1 = queue.Add(CreateDummyCommandInstance());
std::string id2 = queue.Add(CreateDummyCommandInstance());
std::set<std::string> ids{id1, id2}; // Make sure they are sorted properly.
- std::string expected_set = buffet::string_utils::Join(
+ std::string expected_set = chromeos::string_utils::Join(
',', std::vector<std::string>(ids.begin(), ids.end()));
EXPECT_EQ(expected_set, dispatch.GetIDs());
queue.Remove(id1);
diff --git a/buffet/commands/prop_constraints.cc b/buffet/commands/prop_constraints.cc
index 210b254..c9008d2 100644
--- a/buffet/commands/prop_constraints.cc
+++ b/buffet/commands/prop_constraints.cc
@@ -5,7 +5,6 @@
#include "buffet/commands/prop_constraints.h"
#include "buffet/commands/prop_values.h"
#include "buffet/commands/schema_constants.h"
-#include "buffet/string_utils.h"
namespace buffet {
@@ -41,7 +40,8 @@
errors::commands::kOutOfRange,
"Value %s is invalid. Expected one of [%s]",
val.c_str(),
- string_utils::Join(',', values).c_str());
+ chromeos::string_utils::Join(',',
+ values).c_str());
return false;
}
diff --git a/buffet/commands/prop_constraints.h b/buffet/commands/prop_constraints.h
index 3aa6e8e..e765f44 100644
--- a/buffet/commands/prop_constraints.h
+++ b/buffet/commands/prop_constraints.h
@@ -12,11 +12,11 @@
#include <base/basictypes.h>
#include <base/values.h>
#include <chromeos/error.h>
+#include <chromeos/string_utils.h>
#include "buffet/commands/prop_values.h"
#include "buffet/commands/schema_constants.h"
#include "buffet/commands/schema_utils.h"
-#include "buffet/string_utils.h"
namespace buffet {
@@ -138,8 +138,8 @@
T v = value.GetValueAsAny().Get<T>();
if (v < this->limit_.value)
return this->ReportErrorLessThan(
- error, string_utils::ToString(v),
- string_utils::ToString(this->limit_.value));
+ error, chromeos::string_utils::ToString(v),
+ chromeos::string_utils::ToString(this->limit_.value));
return true;
}
@@ -175,8 +175,8 @@
T v = value.GetValueAsAny().Get<T>();
if (v > this->limit_.value)
return this->ReportErrorGreaterThan(
- error, string_utils::ToString(v),
- string_utils::ToString(this->limit_.value));
+ error, chromeos::string_utils::ToString(v),
+ chromeos::string_utils::ToString(this->limit_.value));
return true;
}
@@ -282,7 +282,7 @@
// Implementation of Constraint::Validate().
bool Validate(const PropValue& value,
chromeos::ErrorPtr* error) const override {
- using string_utils::ToString;
+ using chromeos::string_utils::ToString;
T v = value.GetValueAsAny().Get<T>();
for (const auto& item : set_.value) {
if (CompareValue(v, item))
diff --git a/buffet/commands/prop_types.cc b/buffet/commands/prop_types.cc
index a3d7d6c..505dd5d 100644
--- a/buffet/commands/prop_types.cc
+++ b/buffet/commands/prop_types.cc
@@ -11,11 +11,11 @@
#include <base/json/json_writer.h>
#include <base/logging.h>
#include <base/values.h>
+#include <chromeos/string_utils.h>
#include "buffet/commands/object_schema.h"
#include "buffet/commands/prop_values.h"
#include "buffet/commands/schema_constants.h"
-#include "buffet/string_utils.h"
namespace buffet {
diff --git a/buffet/data_encoding.cc b/buffet/data_encoding.cc
index f2de937..8614d2a 100644
--- a/buffet/data_encoding.cc
+++ b/buffet/data_encoding.cc
@@ -5,9 +5,8 @@
#include "buffet/data_encoding.h"
#include <base/strings/stringprintf.h>
-#include <string.h>
-
-#include "buffet/string_utils.h"
+#include <chromeos/string_utils.h>
+#include <cstring>
namespace {
@@ -80,17 +79,17 @@
for (const auto& p : params) {
std::string key = UrlEncode(p.first.c_str(), encodeSpaceAsPlus);
std::string value = UrlEncode(p.second.c_str(), encodeSpaceAsPlus);
- pairs.push_back(string_utils::Join('=', key, value));
+ pairs.push_back(chromeos::string_utils::Join('=', key, value));
}
- return string_utils::Join('&', pairs);
+ return chromeos::string_utils::Join('&', pairs);
}
WebParamList WebParamsDecode(const std::string& data) {
WebParamList result;
- std::vector<std::string> params = string_utils::Split(data, '&');
+ std::vector<std::string> params = chromeos::string_utils::Split(data, '&');
for (const auto& p : params) {
- auto pair = string_utils::SplitAtFirst(p, '=');
+ auto pair = chromeos::string_utils::SplitAtFirst(p, '=');
result.emplace_back(UrlDecode(pair.first.c_str()),
UrlDecode(pair.second.c_str()));
}
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index 800cfa0..b111de1 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -10,6 +10,7 @@
#include <base/json/json_writer.h>
#include <base/values.h>
+#include <chromeos/string_utils.h>
#include "buffet/commands/command_definition.h"
#include "buffet/commands/command_manager.h"
@@ -19,7 +20,6 @@
#include "buffet/http_utils.h"
#include "buffet/mime_utils.h"
#include "buffet/storage_impls.h"
-#include "buffet/string_utils.h"
#include "buffet/url_utils.h"
const char buffet::kErrorDomainOAuth2[] = "oauth2";
@@ -67,7 +67,7 @@
const std::string& access_token_type,
const std::string& access_token) {
std::string authorization =
- buffet::string_utils::Join(' ', access_token_type, access_token);
+ chromeos::string_utils::Join(' ', access_token_type, access_token);
return {buffet::http::request_header::kAuthorization, authorization};
}
diff --git a/buffet/http_connection_curl.cc b/buffet/http_connection_curl.cc
index 3b2d0a8..86715ab 100644
--- a/buffet/http_connection_curl.cc
+++ b/buffet/http_connection_curl.cc
@@ -5,10 +5,10 @@
#include "buffet/http_connection_curl.h"
#include <base/logging.h>
+#include <chromeos/string_utils.h>
#include "buffet/http_request.h"
#include "buffet/http_transport_curl.h"
-#include "buffet/string_utils.h"
namespace buffet {
namespace http {
@@ -97,7 +97,9 @@
curl_slist* header_list = nullptr;
if (!headers_.empty()) {
for (auto pair : headers_) {
- std::string header = string_utils::Join(": ", pair.first, pair.second);
+ std::string header = chromeos::string_utils::Join(": ",
+ pair.first,
+ pair.second);
VLOG(2) << "Request header: " << header;
header_list = curl_slist_append(header_list, header.c_str());
}
@@ -123,7 +125,7 @@
curl_slist_free_all(header_list);
if (ret != CURLE_OK) {
chromeos::Error::AddTo(error, http::curl::kErrorDomain,
- string_utils::ToString(ret),
+ chromeos::string_utils::ToString(ret),
curl_easy_strerror(ret));
} else {
LOG(INFO) << "Response: " << GetResponseStatusCode() << " ("
@@ -200,6 +202,7 @@
size_t Connection::header_callback(char* ptr, size_t size,
size_t num, void* data) {
+ using chromeos::string_utils::SplitAtFirst;
Connection* me = reinterpret_cast<Connection*>(data);
size_t hdr_len = size * num;
std::string header(ptr, hdr_len);
@@ -213,12 +216,12 @@
if (!me->status_text_set_) {
// First header - response code as "HTTP/1.1 200 OK".
// Need to extract the OK part
- auto pair = string_utils::SplitAtFirst(header, ' ');
+ auto pair = SplitAtFirst(header, ' ');
me->protocol_version_ = pair.first;
- me->status_text_ = string_utils::SplitAtFirst(pair.second, ' ').second;
+ me->status_text_ = SplitAtFirst(pair.second, ' ').second;
me->status_text_set_ = true;
} else {
- auto pair = string_utils::SplitAtFirst(header, ':');
+ auto pair = SplitAtFirst(header, ':');
if (!pair.second.empty())
me->headers_.insert(pair);
}
diff --git a/buffet/http_connection_fake.cc b/buffet/http_connection_fake.cc
index d57786a..1cc58e0 100644
--- a/buffet/http_connection_fake.cc
+++ b/buffet/http_connection_fake.cc
@@ -5,10 +5,10 @@
#include "buffet/http_connection_fake.h"
#include <base/logging.h>
+#include <chromeos/string_utils.h>
#include "buffet/http_request.h"
#include "buffet/mime_utils.h"
-#include "buffet/string_utils.h"
namespace buffet {
namespace http {
@@ -37,8 +37,9 @@
}
bool Connection::FinishRequest(chromeos::ErrorPtr* error) {
+ using chromeos::string_utils::ToString;
request_.AddHeaders({{request_header::kContentLength,
- string_utils::ToString(request_.GetData().size())}});
+ ToString(request_.GetData().size())}});
fake::Transport* transport = static_cast<fake::Transport*>(transport_.get());
CHECK(transport) << "Expecting a fake transport";
auto handler = transport->GetHandler(request_.GetURL(), request_.GetMethod());
diff --git a/buffet/http_request.cc b/buffet/http_request.cc
index a9fa439..1c32efe 100644
--- a/buffet/http_request.cc
+++ b/buffet/http_request.cc
@@ -5,12 +5,12 @@
#include "buffet/http_request.h"
#include <base/logging.h>
+#include <chromeos/string_utils.h>
#include "buffet/http_connection_curl.h"
#include "buffet/http_transport_curl.h"
#include "buffet/map_utils.h"
#include "buffet/mime_utils.h"
-#include "buffet/string_utils.h"
namespace buffet {
namespace http {
@@ -195,11 +195,11 @@
p.second != range_value_omitted) {
std::string range;
if (p.first != range_value_omitted) {
- range = string_utils::ToString(p.first);
+ range = chromeos::string_utils::ToString(p.first);
}
range += '-';
if (p.second != range_value_omitted) {
- range += string_utils::ToString(p.second);
+ range += chromeos::string_utils::ToString(p.second);
}
ranges.push_back(range);
}
@@ -207,7 +207,8 @@
}
if (!ranges.empty())
headers.emplace_back(request_header::kRange,
- "bytes=" + string_utils::Join(',', ranges));
+ "bytes=" +
+ chromeos::string_utils::Join(',', ranges));
headers.emplace_back(request_header::kAccept, GetAccept());
if (method_ != request_type::kGet && method_ != request_type::kHead) {
diff --git a/buffet/http_transport_fake.cc b/buffet/http_transport_fake.cc
index d4b7f44..7df8567 100644
--- a/buffet/http_transport_fake.cc
+++ b/buffet/http_transport_fake.cc
@@ -10,11 +10,11 @@
#include <base/json/json_writer.h>
#include <base/logging.h>
#include <chromeos/bind_lambda.h>
+#include <chromeos/string_utils.h>
#include "buffet/http_connection_fake.h"
#include "buffet/http_request.h"
#include "buffet/mime_utils.h"
-#include "buffet/string_utils.h"
#include "buffet/url_utils.h"
namespace buffet {
@@ -171,7 +171,8 @@
status_code_ = status_code;
AddData(data, data_size);
AddHeaders({
- {response_header::kContentLength, string_utils::ToString(data_size)},
+ {response_header::kContentLength,
+ chromeos::string_utils::ToString(data_size)},
{response_header::kContentType, mime_type}
});
}
diff --git a/buffet/http_utils_unittest.cc b/buffet/http_utils_unittest.cc
index 22c2209..24c5dcd 100644
--- a/buffet/http_utils_unittest.cc
+++ b/buffet/http_utils_unittest.cc
@@ -7,12 +7,12 @@
#include <base/values.h>
#include <chromeos/bind_lambda.h>
+#include <chromeos/string_utils.h>
#include <gtest/gtest.h>
#include "buffet/http_transport_fake.h"
#include "buffet/http_utils.h"
#include "buffet/mime_utils.h"
-#include "buffet/string_utils.h"
#include "buffet/url_utils.h"
using namespace buffet; // NOLINT(build/namespaces)
@@ -311,7 +311,7 @@
// Test valid JSON responses (with success or error codes).
for (auto item : {"200;data", "400;wrong", "500;Internal Server error"}) {
- auto pair = string_utils::SplitAtFirst(item, ';');
+ auto pair = chromeos::string_utils::SplitAtFirst(item, ';');
auto response = http::PostFormData(kFakeUrl, {
{"code", pair.first},
{"value", pair.second},
@@ -321,7 +321,7 @@
EXPECT_NE(nullptr, json.get());
std::string value;
EXPECT_TRUE(json->GetString("data", &value));
- EXPECT_EQ(pair.first, string_utils::ToString(code));
+ EXPECT_EQ(pair.first, chromeos::string_utils::ToString(code));
EXPECT_EQ(pair.second, value);
}
diff --git a/buffet/mime_utils.cc b/buffet/mime_utils.cc
index dc57497..5747405 100644
--- a/buffet/mime_utils.cc
+++ b/buffet/mime_utils.cc
@@ -6,8 +6,7 @@
#include <algorithm>
#include <base/strings/string_util.h>
-
-#include "buffet/string_utils.h"
+#include <chromeos/string_utils.h>
namespace buffet {
@@ -65,7 +64,8 @@
bool mime::Split(const std::string& mime_string,
std::string* type, std::string* subtype,
mime::Parameters* parameters) {
- std::vector<std::string> parts = string_utils::Split(mime_string, ';');
+ std::vector<std::string> parts = chromeos::string_utils::Split(mime_string,
+ ';');
if (parts.empty())
return false;
@@ -76,7 +76,7 @@
parameters->clear();
parameters->reserve(parts.size() - 1);
for (size_t i = 1; i < parts.size(); i++) {
- auto pair = string_utils::SplitAtFirst(parts[i], '=');
+ auto pair = chromeos::string_utils::SplitAtFirst(parts[i], '=');
pair.second = DecodeParam(pair.second);
parameters->push_back(pair);
}
@@ -87,7 +87,7 @@
bool mime::Split(const std::string& mime_string,
std::string* type, std::string* subtype) {
std::string mime = mime::RemoveParameters(mime_string);
- auto types = string_utils::SplitAtFirst(mime, '/');
+ auto types = chromeos::string_utils::SplitAtFirst(mime, '/');
if (type)
*type = types.first;
@@ -101,22 +101,23 @@
std::string mime::Combine(const std::string& type, const std::string& subtype,
const mime::Parameters& parameters) {
std::vector<std::string> parts;
- parts.push_back(string_utils::Join('/', type, subtype));
+ parts.push_back(chromeos::string_utils::Join('/', type, subtype));
for (const auto& pair : parameters) {
- parts.push_back(string_utils::Join('=', pair.first,
- EncodeParam(pair.second)));
+ parts.push_back(chromeos::string_utils::Join('=',
+ pair.first,
+ EncodeParam(pair.second)));
}
- return string_utils::Join("; ", parts);
+ return chromeos::string_utils::Join("; ", parts);
}
std::string mime::GetType(const std::string& mime_string) {
std::string mime = mime::RemoveParameters(mime_string);
- return string_utils::SplitAtFirst(mime, '/').first;
+ return chromeos::string_utils::SplitAtFirst(mime, '/').first;
}
std::string mime::GetSubtype(const std::string& mime_string) {
std::string mime = mime::RemoveParameters(mime_string);
- return string_utils::SplitAtFirst(mime, '/').second;
+ return chromeos::string_utils::SplitAtFirst(mime, '/').second;
}
mime::Parameters mime::GetParameters(const std::string& mime_string) {
@@ -131,7 +132,7 @@
}
std::string mime::RemoveParameters(const std::string& mime_string) {
- return string_utils::SplitAtFirst(mime_string, ';').first;
+ return chromeos::string_utils::SplitAtFirst(mime_string, ';').first;
}
std::string mime::AppendParameter(const std::string& mime_string,
@@ -139,7 +140,7 @@
const std::string& paramValue) {
std::string mime(mime_string);
mime += "; ";
- mime += string_utils::Join('=', paramName, EncodeParam(paramValue));
+ mime += chromeos::string_utils::Join('=', paramName, EncodeParam(paramValue));
return mime;
}
diff --git a/buffet/string_utils.cc b/buffet/string_utils.cc
deleted file mode 100644
index 8916e96..0000000
--- a/buffet/string_utils.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2014 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "buffet/string_utils.h"
-
-#include <algorithm>
-#include <string.h>
-#include <utility>
-
-#include <base/strings/string_util.h>
-#include <base/strings/stringprintf.h>
-
-namespace buffet {
-namespace string_utils {
-
-std::vector<std::string> Split(const std::string& str,
- char delimiter,
- bool trim_whitespaces,
- bool purge_empty_strings) {
- std::vector<std::string> tokens;
- if (delimiter == 0)
- return tokens;
-
- const char* sz = str.c_str();
- if (sz) {
- const char* szNext = strchr(sz, delimiter);
- while (szNext) {
- if (szNext != sz || !purge_empty_strings)
- tokens.emplace_back(sz, szNext - sz);
- sz = szNext + 1;
- szNext = strchr(sz, delimiter);
- }
- if (*sz != 0 || !purge_empty_strings)
- tokens.emplace_back(sz);
- }
-
- if (trim_whitespaces) {
- std::for_each(tokens.begin(), tokens.end(),
- [](std::string& str) {
- base::TrimWhitespaceASCII(str, base::TRIM_ALL, &str); });
- }
-
- return tokens;
-}
-
-std::pair<std::string, std::string> SplitAtFirst(const std::string& str,
- char delimiter,
- bool trim_whitespaces) {
- std::pair<std::string, std::string> pair;
- if (delimiter == 0)
- return pair;
-
- const char* sz = str.c_str();
- const char* szNext = strchr(sz, delimiter);
- if (szNext) {
- pair.first = std::string(sz, szNext);
- pair.second = std::string(szNext + 1);
- } else {
- pair.first = str;
- }
-
- if (trim_whitespaces) {
- base::TrimWhitespaceASCII(pair.first, base::TRIM_ALL, &pair.first);
- base::TrimWhitespaceASCII(pair.second, base::TRIM_ALL, &pair.second);
- }
-
- return pair;
-}
-
-std::string Join(char delimiter, const std::vector<std::string>& strings) {
- return JoinString(strings, delimiter);
-}
-
-std::string Join(const std::string& delimiter,
- const std::vector<std::string>& strings) {
- return JoinString(strings, delimiter);
-}
-
-std::string Join(char delimiter,
- const std::string& str1, const std::string& str2) {
- return str1 + delimiter + str2;
-}
-
-std::string Join(const std::string& delimiter,
- const std::string& str1, const std::string& str2) {
- return str1 + delimiter + str2;
-}
-
-std::string ToString(double value) {
- return base::StringPrintf("%g", value);
-}
-
-std::string ToString(bool value) {
- return value ? "true" : "false";
-}
-
-} // namespace string_utils
-} // namespace buffet
diff --git a/buffet/string_utils.h b/buffet/string_utils.h
deleted file mode 100644
index e29675b..0000000
--- a/buffet/string_utils.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2014 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BUFFET_STRING_UTILS_H_
-#define BUFFET_STRING_UTILS_H_
-
-#include <string>
-#include <utility>
-#include <vector>
-
-namespace buffet {
-namespace string_utils {
-
-// Treats the string as a delimited list of substrings and returns the array
-// of original elements of the list.
-// By default, empty elements from the original string are omitted and
-// each element has all whitespaces trimmed off.
-std::vector<std::string> Split(const std::string& str,
- char delimiter,
- bool trim_whitespaces = true,
- bool purge_empty_strings = true);
-
-// Splits the string into two pieces at the first position of the specified
-// delimiter. By default, each part has all whitespaces trimmed off.
-std::pair<std::string, std::string> SplitAtFirst(const std::string& str,
- char delimiter,
- bool trim_whitespaces = true);
-
-// Joins an array of strings into a single string separated by |delimiter|.
-std::string Join(char delimiter, const std::vector<std::string>& strings);
-std::string Join(const std::string& delimiter,
- const std::vector<std::string>& strings);
-std::string Join(char delimiter,
- const std::string& str1, const std::string& str2);
-std::string Join(const std::string& delimiter,
- const std::string& str1, const std::string& str2);
-
-// string_utils::ToString() is a helper function to convert any scalar type
-// to a string. In most cases, it redirects the call to std::to_string with
-// two exceptions: for std::string itself and for double and bool.
-template<typename T>
-inline std::string ToString(T value) { return std::to_string(value); }
-// Having the following overload is handy for templates where the type
-// of template parameter isn't known and could be a string itself.
-inline std::string ToString(std::string value) { return value; }
-// We overload this for double because std::to_string(double) uses %f to
-// format the value and I would like to use a shorter %g format instead.
-std::string ToString(double value);
-// And the bool to be converted as true/false instead of 1/0.
-std::string ToString(bool value);
-
-} // namespace string_utils
-} // namespace buffet
-
-#endif // BUFFET_STRING_UTILS_H_
diff --git a/buffet/string_utils_unittest.cc b/buffet/string_utils_unittest.cc
deleted file mode 100644
index 4a021f4..0000000
--- a/buffet/string_utils_unittest.cc
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "buffet/string_utils.h"
-
-#include <gtest/gtest.h>
-
-using namespace buffet; // NOLINT(build/namespaces)
-
-TEST(StringUtils, Split) {
- std::vector<std::string> parts;
-
- parts = string_utils::Split(",a,bc , d,,e,", ',', true, true);
- EXPECT_EQ(4, parts.size());
- EXPECT_EQ("a", parts[0]);
- EXPECT_EQ("bc", parts[1]);
- EXPECT_EQ("d", parts[2]);
- EXPECT_EQ("e", parts[3]);
-
- parts = string_utils::Split(",a,bc , d,,e,", ',', false, true);
- EXPECT_EQ(4, parts.size());
- EXPECT_EQ("a", parts[0]);
- EXPECT_EQ("bc ", parts[1]);
- EXPECT_EQ(" d", parts[2]);
- EXPECT_EQ("e", parts[3]);
-
- parts = string_utils::Split(",a,bc , d,,e,", ',', true, false);
- EXPECT_EQ(7, parts.size());
- EXPECT_EQ("", parts[0]);
- EXPECT_EQ("a", parts[1]);
- EXPECT_EQ("bc", parts[2]);
- EXPECT_EQ("d", parts[3]);
- EXPECT_EQ("", parts[4]);
- EXPECT_EQ("e", parts[5]);
- EXPECT_EQ("", parts[6]);
-
- parts = string_utils::Split(",a,bc , d,,e,", ',', false, false);
- EXPECT_EQ(7, parts.size());
- EXPECT_EQ("", parts[0]);
- EXPECT_EQ("a", parts[1]);
- EXPECT_EQ("bc ", parts[2]);
- EXPECT_EQ(" d", parts[3]);
- EXPECT_EQ("", parts[4]);
- EXPECT_EQ("e", parts[5]);
- EXPECT_EQ("", parts[6]);
-}
-
-TEST(StringUtils, SplitAtFirst) {
- std::pair<std::string, std::string> pair;
-
- pair = string_utils::SplitAtFirst(" 123 : 4 : 56 : 789 ", ':', true);
- EXPECT_EQ("123", pair.first);
- EXPECT_EQ("4 : 56 : 789", pair.second);
-
- pair = string_utils::SplitAtFirst(" 123 : 4 : 56 : 789 ", ':', false);
- EXPECT_EQ(" 123 ", pair.first);
- EXPECT_EQ(" 4 : 56 : 789 ", pair.second);
-
- pair = string_utils::SplitAtFirst("", '=');
- EXPECT_EQ("", pair.first);
- EXPECT_EQ("", pair.second);
-
- pair = string_utils::SplitAtFirst("=", '=');
- EXPECT_EQ("", pair.first);
- EXPECT_EQ("", pair.second);
-
- pair = string_utils::SplitAtFirst("a=", '=');
- EXPECT_EQ("a", pair.first);
- EXPECT_EQ("", pair.second);
-
- pair = string_utils::SplitAtFirst("abc=", '=');
- EXPECT_EQ("abc", pair.first);
- EXPECT_EQ("", pair.second);
-
- pair = string_utils::SplitAtFirst("=a", '=');
- EXPECT_EQ("", pair.first);
- EXPECT_EQ("a", pair.second);
-
- pair = string_utils::SplitAtFirst("=abc=", '=');
- EXPECT_EQ("", pair.first);
- EXPECT_EQ("abc=", pair.second);
-
- pair = string_utils::SplitAtFirst("abc", '=');
- EXPECT_EQ("abc", pair.first);
- EXPECT_EQ("", pair.second);
-}
-
-TEST(StringUtils, Join_Char) {
- EXPECT_EQ("", string_utils::Join(',', {}));
- EXPECT_EQ("abc", string_utils::Join(',', {"abc"}));
- EXPECT_EQ("abc,defg", string_utils::Join(',', {"abc", "defg"}));
- EXPECT_EQ("1:2:3", string_utils::Join(':', {"1", "2", "3"}));
- EXPECT_EQ("192.168.0.1", string_utils::Join('.', {"192", "168", "0", "1"}));
- EXPECT_EQ("ff02::1", string_utils::Join(':', {"ff02", "", "1"}));
-}
-
-TEST(StringUtils, Join_String) {
- EXPECT_EQ("", string_utils::Join(",", {}));
- EXPECT_EQ("abc", string_utils::Join(",", {"abc"}));
- EXPECT_EQ("abc,defg", string_utils::Join(",", {"abc", "defg"}));
- EXPECT_EQ("1 : 2 : 3", string_utils::Join(" : ", {"1", "2", "3"}));
- EXPECT_EQ("123", string_utils::Join("", {"1", "2", "3"}));
-}
-
-TEST(StringUtils, Join_Pair) {
- EXPECT_EQ("ab,cd", string_utils::Join(',', "ab", "cd"));
- EXPECT_EQ("key = value", string_utils::Join(" = ", "key", "value"));
-}