Index: chrome/browser/google_apis/drive_api_util_unittest.cc |
diff --git a/chrome/browser/google_apis/drive_api_util_unittest.cc b/chrome/browser/google_apis/drive_api_util_unittest.cc |
index 0577c6c106496ebfc70c4e183895c41492be847b..2d416930257df94dd7eee03dedfdd63d4405042f 100644 |
--- a/chrome/browser/google_apis/drive_api_util_unittest.cc |
+++ b/chrome/browser/google_apis/drive_api_util_unittest.cc |
@@ -16,6 +16,36 @@ TEST(DriveApiUtilTest, EscapeQueryStringValue) { |
EXPECT_EQ("\\'abcde\\'", EscapeQueryStringValue("'abcde'")); |
} |
+TEST(DriveApiUtilTest, TranslateQuery) { |
+ EXPECT_EQ("", TranslateQuery("")); |
+ EXPECT_EQ("fullText contains 'dog'", TranslateQuery("dog")); |
+ EXPECT_EQ("fullText contains 'dog' and fullText contains 'cat'", |
+ TranslateQuery("dog cat")); |
+ EXPECT_EQ("not fullText contains 'cat'", TranslateQuery("-cat")); |
+ EXPECT_EQ("fullText contains 'dog cat'", TranslateQuery("\"dog cat\"")); |
+ |
+ // Should handles full-width white space correctly. |
+ // Note: \xE3\x80\x80 (\u3000) is Ideographic Space (a.k.a. Japanese |
+ // full-width whitespace). |
+ EXPECT_EQ("fullText contains 'dog' and fullText contains 'cat'", |
+ TranslateQuery("dog" "\xE3\x80\x80" "cat")); |
+ |
+ // If the quoted token is not closed (i.e. the last '"' is missing), |
+ // we handle the remaining string is one token, as a fallback. |
+ EXPECT_EQ("fullText contains 'dog cat'", TranslateQuery("\"dog cat")); |
+ |
+ // For quoted text with leading '-'. |
+ EXPECT_EQ("not fullText contains 'dog cat'", TranslateQuery("-\"dog cat\"")); |
+ |
+ // Empty tokens should be simply ignored. |
+ EXPECT_EQ("", TranslateQuery("-")); |
+ EXPECT_EQ("", TranslateQuery("\"\"")); |
+ EXPECT_EQ("", TranslateQuery("-\"\"")); |
+ EXPECT_EQ("", TranslateQuery("\"\"\"\"")); |
+ EXPECT_EQ("", TranslateQuery("\"\" \"\"")); |
+ EXPECT_EQ("fullText contains 'dog'", TranslateQuery("\"\" dog \"\"")); |
+} |
+ |
} // namespace util |
} // namespace drive |
} // namespace google_apis |