Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Unified Diff: components/feedback/anonymizer_tool_unittest.cc

Issue 1543633003: Added anonymization patterns for URLs and email addresses (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bug-567870-introduce-anonymizer
Patch Set: Hopefully final clarification Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« components/feedback/anonymizer_tool.cc ('K') | « components/feedback/anonymizer_tool.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698