summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/string_escape_unittest.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/base/string_escape_unittest.cc b/base/string_escape_unittest.cc
index dda0d2a7..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 @@ TEST(StringEscapeTest, JavascriptDoubleQuote) {
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 @@ TEST(StringEscapeTest, JavascriptDoubleQuote) {
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);
}