Commit a689341a authored by Owen Min's avatar Owen Min Committed by Commit Bot

Update Chrome Cloud Reporting test

1) Use raw string to avoid multiple escapes.
2) Add tests for plugins and signed in user data.
3) Add slash and quote in the test data to make sure they can be escaped
   properly by the report helper.

Bug: 924645
Change-Id: I00d6166d967d8ebae82ac8bba5cc698b3eb2e418
Reviewed-on: https://chromium-review.googlesource.com/c/1431335Reviewed-by: default avatarMarc-André Decoste <mad@chromium.org>
Commit-Queue: Owen Min <zmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625359}
parent 568f2604
...@@ -33,7 +33,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, OSInfo) { ...@@ -33,7 +33,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, OSInfo) {
std::string expected_os_info; std::string expected_os_info;
expected_os_info = base::StringPrintf( expected_os_info = base::StringPrintf(
"{\"arch\":\"%s\",\"os\":\"%s\",\"os_version\":\"%s\"}", R"({"arch":"%s","os":"%s","os_version":"%s"})",
policy::GetOSArchitecture().c_str(), policy::GetOSPlatform().c_str(), policy::GetOSArchitecture().c_str(), policy::GetOSPlatform().c_str(),
policy::GetOSVersion().c_str()); policy::GetOSVersion().c_str());
request = request =
...@@ -46,7 +46,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, MachineName) { ...@@ -46,7 +46,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, MachineName) {
std::unique_ptr<em::ChromeDesktopReportRequest> request; std::unique_ptr<em::ChromeDesktopReportRequest> request;
std::string expected_machine_name; std::string expected_machine_name;
expected_machine_name = base::StringPrintf("{\"computername\":\"%s\"}", expected_machine_name = base::StringPrintf(R"({"computername":"%s"})",
policy::GetMachineName().c_str()); policy::GetMachineName().c_str());
request = request =
GenerateChromeDesktopReportRequest(base::DictionaryValue(), &profile_); GenerateChromeDesktopReportRequest(base::DictionaryValue(), &profile_);
...@@ -61,7 +61,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, OSUsername) { ...@@ -61,7 +61,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, OSUsername) {
// The username needs to be escaped as the name can contain slashes. // The username needs to be escaped as the name can contain slashes.
base::EscapeJSONString(policy::GetOSUsername(), false, &os_username_escaped); base::EscapeJSONString(policy::GetOSUsername(), false, &os_username_escaped);
expected_os_username = expected_os_username =
base::StringPrintf("{\"username\":\"%s\"}", os_username_escaped.c_str()); base::StringPrintf(R"({"username":"%s"})", os_username_escaped.c_str());
request = request =
GenerateChromeDesktopReportRequest(base::DictionaryValue(), &profile_); GenerateChromeDesktopReportRequest(base::DictionaryValue(), &profile_);
...@@ -93,7 +93,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) { ...@@ -93,7 +93,7 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) {
// Extension list will be a empty list by default. // Extension list will be a empty list by default.
expected_extension_list = "[]"; expected_extension_list = "[]";
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": {\"chromeUserProfileReport\":[{}]}}")); R"({"browserReport": {"chromeUserProfileReport":[{}]}})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
request = GenerateChromeDesktopReportRequest(*report, &profile_); request = GenerateChromeDesktopReportRequest(*report, &profile_);
ASSERT_TRUE(request); ASSERT_TRUE(request);
...@@ -102,10 +102,15 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) { ...@@ -102,10 +102,15 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) {
.extension_data()); .extension_data());
// Extension list will be copied from the |report|. // Extension list will be copied from the |report|.
expected_extension_list = "[{\"id\":\"1\"}]"; expected_extension_list = R"([{"id":"1\\\""}])";
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": " R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"extensionData\":[{\"id\":\"1\"}]}]}}")); {"chromeUserProfileReport":
[
{"extensionData": [{"id":"1\\\""}]}
]
}
})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
request = GenerateChromeDesktopReportRequest(*report, &profile_); request = GenerateChromeDesktopReportRequest(*report, &profile_);
ASSERT_TRUE(request); ASSERT_TRUE(request);
...@@ -114,6 +119,49 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) { ...@@ -114,6 +119,49 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ExtensionList) {
.extension_data()); .extension_data());
} }
TEST_F(ChromeDesktopReportRequestGeneratorTest, PluginList) {
std::unique_ptr<em::ChromeDesktopReportRequest> request;
std::unique_ptr<base::DictionaryValue> report;
std::string expected_plugin_list;
expected_plugin_list = R"([{"id":"1\\\""}])";
report = base::DictionaryValue::From(base::JSONReader::Read(
R"({"browserReport":
{"chromeUserProfileReport":
[
{"plugins": [{"id":"1\\\""}]}
]
}
})"));
ASSERT_TRUE(report);
request = GenerateChromeDesktopReportRequest(*report, &profile_);
ASSERT_TRUE(request);
EXPECT_EQ(expected_plugin_list,
request->browser_report().chrome_user_profile_reports(0).plugins());
}
TEST_F(ChromeDesktopReportRequestGeneratorTest, SignedInUser) {
std::unique_ptr<em::ChromeDesktopReportRequest> request;
std::unique_ptr<base::DictionaryValue> report;
std::string expected_signed_in_user;
expected_signed_in_user = R"({"email":"a\\@example.com"})";
report = base::DictionaryValue::From(base::JSONReader::Read(
R"({"browserReport":
{"chromeUserProfileReport":
[
{"chromeSignInUser": {"email":"a\\@example.com"}}
]
}
})"));
ASSERT_TRUE(report);
request = GenerateChromeDesktopReportRequest(*report, &profile_);
ASSERT_TRUE(request);
EXPECT_EQ(expected_signed_in_user, request->browser_report()
.chrome_user_profile_reports(0)
.chrome_signed_in_user());
}
TEST_F(ChromeDesktopReportRequestGeneratorTest, ProfileID) { TEST_F(ChromeDesktopReportRequestGeneratorTest, ProfileID) {
std::unique_ptr<em::ChromeDesktopReportRequest> request; std::unique_ptr<em::ChromeDesktopReportRequest> request;
...@@ -126,10 +174,12 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ProfileID) { ...@@ -126,10 +174,12 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, ProfileID) {
// Profile ID will be merged into the first item of // Profile ID will be merged into the first item of
// |chrome_user_profile_reports| // |chrome_user_profile_reports|
std::unique_ptr<base::DictionaryValue> report = base::DictionaryValue::From( std::unique_ptr<base::DictionaryValue> report =
base::JSONReader::Read("{\"browserReport\": " base::DictionaryValue::From(base::JSONReader::Read(R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"extensionData\":" {"chromeUserProfileReport":[
"[{\"id\":\"1\"}]}]}}")); {"extensionData": [{"id":"1"}]}
]}
})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
request = GenerateChromeDesktopReportRequest(*report, &profile_); request = GenerateChromeDesktopReportRequest(*report, &profile_);
ASSERT_TRUE(request); ASSERT_TRUE(request);
...@@ -141,14 +191,14 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, InvalidInput) { ...@@ -141,14 +191,14 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, InvalidInput) {
// |request| will not be generated if the type of input is invalid. // |request| will not be generated if the type of input is invalid.
std::unique_ptr<base::DictionaryValue> report; std::unique_ptr<base::DictionaryValue> report;
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": " R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"extensionData\":{}}]}}")); {"chromeUserProfileReport":[{"extensionData":{}}]}})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_)); EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_));
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": " R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"chromeSignInUser\":\"\"}]}}")); {"chromeUserProfileReport":[{"chromeSignInUser":""}]}})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_)); EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_));
} }
...@@ -158,24 +208,33 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, SafeBrowsing) { ...@@ -158,24 +208,33 @@ TEST_F(ChromeDesktopReportRequestGeneratorTest, SafeBrowsing) {
true); true);
std::unique_ptr<base::DictionaryValue> report; std::unique_ptr<base::DictionaryValue> report;
report = base::DictionaryValue::From( report =
base::JSONReader::Read("{\"browserReport\": " base::DictionaryValue::From(base::JSONReader::Read(R"({"browserReport":
"{\"chromeUserProfileReport\":[{" {"chromeUserProfileReport":[{
"\"safeBrowsingWarnings\":\"invalid\"}]}}")); "safeBrowsingWarnings":"invalid"
}]
}
})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_)); EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_));
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": " R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"safeBrowsingWarningsClickThrough\":" {"chromeUserProfileReport":[{
"\"invalid\"}]}}")); "safeBrowsingWarningsClickThrough": "invalid"}]
}
})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_)); EXPECT_FALSE(GenerateChromeDesktopReportRequest(*report, &profile_));
report = base::DictionaryValue::From(base::JSONReader::Read( report = base::DictionaryValue::From(base::JSONReader::Read(
"{\"browserReport\": " R"({"browserReport":
"{\"chromeUserProfileReport\":[{\"safeBrowsingWarnings\":3, " {"chromeUserProfileReport":[{
"\"safeBrowsingWarningsClickThrough\":1}]}}")); "safeBrowsingWarnings":3,
"safeBrowsingWarningsClickThrough":1
}]
}
})"));
ASSERT_TRUE(report); ASSERT_TRUE(report);
std::unique_ptr<em::ChromeDesktopReportRequest> request = std::unique_ptr<em::ChromeDesktopReportRequest> request =
GenerateChromeDesktopReportRequest(*report, &profile_); GenerateChromeDesktopReportRequest(*report, &profile_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment