Add a few tests to string_escape improving code coverage.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1026 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: 1e3f8396c6f205b2be2a102d4fbca870638e7f6b
diff --git a/base/string_escape_unittest.cc b/base/string_escape_unittest.cc
index dda0d2a..502f122 100644
--- a/base/string_escape_unittest.cc
+++ b/base/string_escape_unittest.cc
@@ -33,6 +33,7 @@
TEST(StringEscapeTest, JavascriptDoubleQuote) {
static const char* kToEscape = "\b\001aZ\"\\wee";
static const char* kEscaped = "\\b\\x01aZ\\\"\\\\wee";
+ static const char* kEscapedQuoted = "\"\\b\\x01aZ\\\"\\\\wee\"";
static const wchar_t* kUToEscape = L"\b\x0001" L"a\x123fZ\"\\wee";
static const char* kUEscaped = "\\b\\x01a\\u123FZ\\\"\\\\wee";
static const char* kUEscapedQuoted = "\"\\b\\x01a\\u123FZ\\\"\\\\wee\"";
@@ -63,6 +64,10 @@
string_escape::JavascriptDoubleQuote(std::string(kToEscape), false, &out);
ASSERT_EQ(std::string("testy: ") + kEscaped, out);
+ out = "testy: ";
+ string_escape::JavascriptDoubleQuote(std::string(kToEscape), true, &out);
+ ASSERT_EQ(std::string("testy: ") + kEscapedQuoted, out);
+
// Test null, non-printable, and non-7bit
std::string str("TeSt");
str.push_back(0);
@@ -75,4 +80,9 @@
out = "testy: ";
string_escape::JavascriptDoubleQuote(str, false, &out);
ASSERT_EQ("testy: TeSt\\x00\\x0F\\x7F\xf0\x80!", out);
+
+ // Test escape sequences
+ out = "testy: ";
+ string_escape::JavascriptDoubleQuote("a\b\f\n\r\t\v\1\\.\"z", false, &out);
+ ASSERT_EQ("testy: a\\b\\f\\n\\r\\t\\v\\x01\\\\.\\\"z", out);
}