Index: components/feedback/anonymizer_tool_unittest.cc |
diff --git a/components/feedback/anonymizer_tool_unittest.cc b/components/feedback/anonymizer_tool_unittest.cc |
index 68f35a8e4bd073f6b9464d5c33d0b97c7f30b654..2e89137122076af305472c14b506497b3d9dacf2 100644 |
--- a/components/feedback/anonymizer_tool_unittest.cc |
+++ b/components/feedback/anonymizer_tool_unittest.cc |
@@ -6,6 +6,8 @@ |
#include <gtest/gtest.h> |
+#include "base/strings/string_util.h" |
+ |
namespace feedback { |
class AnonymizerToolTest : public testing::Test { |
@@ -18,11 +20,19 @@ class AnonymizerToolTest : public testing::Test { |
return anonymizer_.AnonymizeCustomPatterns(input); |
} |
- static std::string AnonymizeCustomPattern( |
+ std::string AnonymizeCustomPatternWithContext( |
const std::string& input, |
const std::string& pattern, |
std::map<std::string, std::string>* space) { |
- return AnonymizerTool::AnonymizeCustomPattern(input, pattern, space); |
+ return anonymizer_.AnonymizeCustomPatternWithContext(input, pattern, space); |
+ } |
+ |
+ std::string AnonymizeCustomPatternWithoutContext( |
+ const std::string& input, |
+ const CustomPatternWithoutContext& pattern, |
+ std::map<std::string, std::string>* space) { |
+ return anonymizer_.AnonymizeCustomPatternWithoutContext(input, pattern, |
+ space); |
} |
AnonymizerTool anonymizer_; |
@@ -84,26 +94,86 @@ TEST_F(AnonymizerToolTest, AnonymizeCustomPatterns) { |
EXPECT_EQ( |
"a\nb [SSID=1] [SSID=2] [SSID=foo\nbar] b", |
AnonymizeCustomPatterns("a\nb [SSID=foo] [SSID=bar] [SSID=foo\nbar] b")); |
+ |
+ EXPECT_EQ("<email: 1>", |
+ AnonymizeCustomPatterns("foo@bar.com")); |
+ EXPECT_EQ("Email: <email: 1>.", |
+ AnonymizeCustomPatterns("Email: foo@bar.com.")); |
+ EXPECT_EQ("Email:\n<email: 2>\n", |
+ AnonymizeCustomPatterns("Email:\nfooooo@bar.com\n")); |
+ |
+ EXPECT_EQ("[<IPv6: 1>]", AnonymizeCustomPatterns( |
+ "[2001:0db8:0000:0000:0000:ff00:0042:8329]")); |
+ EXPECT_EQ("[<IPv6: 2>]", |
+ AnonymizeCustomPatterns("[2001:db8:0:0:0:ff00:42:8329]")); |
+ EXPECT_EQ("[<IPv6: 3>]", AnonymizeCustomPatterns("[2001:db8::ff00:42:8329]")); |
+ EXPECT_EQ("[<IPv6: 4>]", AnonymizeCustomPatterns("[::1]")); |
+ EXPECT_EQ("<IPv4: 1>", AnonymizeCustomPatterns("192.168.0.1")); |
+ |
+ EXPECT_EQ("<URL: 1>", |
+ AnonymizeCustomPatterns("http://example.com/foo?test=1")); |
+ EXPECT_EQ("Foo <URL: 2> Bar", |
+ AnonymizeCustomPatterns("Foo http://192.168.0.1/foo?test=1#123 Bar")); |
+ const char* kURLs[] = { |
+ "http://example.com/foo?test=1", |
+ "http://userid:password@example.com:8080", |
+ "http://userid:password@example.com:8080/", |
+ "http://@example.com", |
+ "http://192.168.0.1", |
+ "http://192.168.0.1/", |
+ "http://اختبار.com", |
+ "http://test.com/foo(bar)baz.html", |
+ "http://test.com/foo%20bar", |
+ "ftp://test:tester@test.com", |
+ "chrome://extensions/", |
+ "chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/options.html", |
+ "http://example.com/foo?email=foo@bar.com", |
+ }; |
+ for (size_t i = 0; i < arraysize(kURLs); ++i) { |
+ SCOPED_TRACE(kURLs[i]); |
+ std::string got = AnonymizeCustomPatterns(kURLs[i]); |
+ EXPECT_TRUE( |
+ base::StartsWith(got, "<URL: ", base::CompareCase::INSENSITIVE_ASCII)); |
+ EXPECT_TRUE(base::EndsWith(got, ">", base::CompareCase::INSENSITIVE_ASCII)); |
+ } |
+ // Test that "Android:" is not considered a schema with empty hier part. |
+ EXPECT_EQ("The following applies to Android:", |
+ AnonymizeCustomPatterns("The following applies to Android:")); |
} |
-TEST_F(AnonymizerToolTest, AnonymizeCustomPattern) { |
+TEST_F(AnonymizerToolTest, AnonymizeCustomPatternWithContext) { |
const char kPattern[] = "(\\b(?i)id:? ')(\\d+)(')"; |
std::map<std::string, std::string> space; |
- EXPECT_EQ("", AnonymizeCustomPattern("", kPattern, &space)); |
+ EXPECT_EQ("", AnonymizeCustomPatternWithContext("", kPattern, &space)); |
EXPECT_EQ("foo\nbar\n", |
- AnonymizeCustomPattern("foo\nbar\n", kPattern, &space)); |
- EXPECT_EQ("id '1'", AnonymizeCustomPattern("id '2345'", kPattern, &space)); |
- EXPECT_EQ("id '2'", AnonymizeCustomPattern("id '1234'", kPattern, &space)); |
- EXPECT_EQ("id: '2'", AnonymizeCustomPattern("id: '1234'", kPattern, &space)); |
- EXPECT_EQ("ID: '1'", AnonymizeCustomPattern("ID: '2345'", kPattern, &space)); |
+ AnonymizeCustomPatternWithContext("foo\nbar\n", kPattern, &space)); |
+ EXPECT_EQ("id '1'", |
+ AnonymizeCustomPatternWithContext("id '2345'", kPattern, &space)); |
+ EXPECT_EQ("id '2'", |
+ AnonymizeCustomPatternWithContext("id '1234'", kPattern, &space)); |
+ EXPECT_EQ("id: '2'", |
+ AnonymizeCustomPatternWithContext("id: '1234'", kPattern, &space)); |
+ EXPECT_EQ("ID: '1'", |
+ AnonymizeCustomPatternWithContext("ID: '2345'", kPattern, &space)); |
EXPECT_EQ("x1 id '1' 1x id '2'\nid '1'\n", |
- AnonymizeCustomPattern("x1 id '2345' 1x id '1234'\nid '2345'\n", |
- kPattern, &space)); |
+ AnonymizeCustomPatternWithContext( |
+ "x1 id '2345' 1x id '1234'\nid '2345'\n", kPattern, &space)); |
space.clear(); |
- EXPECT_EQ("id '1'", AnonymizeCustomPattern("id '1234'", kPattern, &space)); |
+ EXPECT_EQ("id '1'", |
+ AnonymizeCustomPatternWithContext("id '1234'", kPattern, &space)); |
space.clear(); |
- EXPECT_EQ("x1z", AnonymizeCustomPattern("xyz", "()(y+)()", &space)); |
+ EXPECT_EQ("x1z", |
+ AnonymizeCustomPatternWithContext("xyz", "()(y+)()", &space)); |
+} |
+ |
+TEST_F(AnonymizerToolTest, AnonymizeCustomPatternWithoutContext) { |
+ CustomPatternWithoutContext kPattern = {"pattern", "(o+)"}; |
+ std::map<std::string, std::string> space; |
+ EXPECT_EQ("", AnonymizeCustomPatternWithoutContext("", kPattern, &space)); |
+ EXPECT_EQ("f<pattern: 1>\nf<pattern: 2>z\nf<pattern: 1>l\n", |
+ AnonymizeCustomPatternWithoutContext("fo\nfooz\nfol\n", kPattern, |
+ &space)); |
} |
} // namespace feedback |