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

Unified Diff: chrome/browser/metrics/metrics_log_unittest.cc

Issue 9232071: Upload UMA data using protocol buffers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 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
« no previous file with comments | « chrome/browser/metrics/metrics_log_serializer_unittest.cc ('k') | chrome/browser/metrics/metrics_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/metrics_log_unittest.cc
diff --git a/chrome/browser/metrics/metrics_log_unittest.cc b/chrome/browser/metrics/metrics_log_unittest.cc
index edea42bf40762ec6d2b5a9662367e607de5c281a..b4b13e0fe44186e88d53dbb34e5eca89694d0770 100644
--- a/chrome/browser/metrics/metrics_log_unittest.cc
+++ b/chrome/browser/metrics/metrics_log_unittest.cc
@@ -18,14 +18,10 @@
using base::TimeDelta;
namespace {
- class MetricsLogTest : public testing::Test {
- };
-};
-
// Since buildtime is highly variable, this function will scan an output log and
// replace it with a consistent number.
-static void NormalizeBuildtime(std::string* xml_encoded) {
+void NormalizeBuildtime(std::string* xml_encoded) {
std::string prefix = "buildtime=\"";
const char postfix = '\"';
size_t offset = xml_encoded->find(prefix);
@@ -43,54 +39,6 @@ static void NormalizeBuildtime(std::string* xml_encoded) {
xml_encoded->replace(offset, postfix_position - offset, "123246");
}
-TEST(MetricsLogTest, EmptyRecord) {
- std::string expected_output = base::StringPrintf(
- "<log clientid=\"bogus client ID\" buildtime=\"123456789\" "
- "appversion=\"%s\"/>", MetricsLog::GetVersionString().c_str());
-
- MetricsLog log("bogus client ID", 0);
- log.CloseLog();
-
- int size = log.GetEncodedLogSize();
- ASSERT_GT(size, 0);
-
- std::string encoded;
- // Leave room for the NUL terminator.
- ASSERT_TRUE(log.GetEncodedLog(WriteInto(&encoded, size + 1), size));
- TrimWhitespaceASCII(encoded, TRIM_ALL, &encoded);
- NormalizeBuildtime(&encoded);
- NormalizeBuildtime(&expected_output);
-
- ASSERT_EQ(expected_output, encoded);
-}
-
-#if defined(OS_CHROMEOS)
-TEST(MetricsLogTest, ChromeOSEmptyRecord) {
- std::string expected_output = base::StringPrintf(
- "<log clientid=\"bogus client ID\" buildtime=\"123456789\" "
- "appversion=\"%s\" hardwareclass=\"sample-class\"/>",
- MetricsLog::GetVersionString().c_str());
-
- MetricsLog log("bogus client ID", 0);
- log.set_hardware_class("sample-class");
- log.CloseLog();
-
- int size = log.GetEncodedLogSize();
- ASSERT_GT(size, 0);
-
- std::string encoded;
- // Leave room for the NUL terminator.
- ASSERT_TRUE(log.GetEncodedLog(WriteInto(&encoded, size + 1), size));
- TrimWhitespaceASCII(encoded, TRIM_ALL, &encoded);
- NormalizeBuildtime(&encoded);
- NormalizeBuildtime(&expected_output);
-
- ASSERT_EQ(expected_output, encoded);
-}
-#endif // OS_CHROMEOS
-
-namespace {
-
class NoTimeMetricsLog : public MetricsLog {
public:
NoTimeMetricsLog(std::string client_id, int session_id):
@@ -103,103 +51,12 @@ class NoTimeMetricsLog : public MetricsLog {
}
};
-}; // namespace
-
-TEST(MetricsLogTest, WindowEvent) {
- std::string expected_output = base::StringPrintf(
- "<log clientid=\"bogus client ID\" buildtime=\"123456789\" "
- "appversion=\"%s\">\n"
- " <window action=\"create\" windowid=\"0\" session=\"0\" time=\"\"/>\n"
- " <window action=\"open\" windowid=\"1\" parent=\"0\" "
- "session=\"0\" time=\"\"/>\n"
- " <window action=\"close\" windowid=\"1\" parent=\"0\" "
- "session=\"0\" time=\"\"/>\n"
- " <window action=\"destroy\" windowid=\"0\" session=\"0\" time=\"\"/>\n"
- "</log>", MetricsLog::GetVersionString().c_str());
-
- NoTimeMetricsLog log("bogus client ID", 0);
- log.RecordWindowEvent(MetricsLog::WINDOW_CREATE, 0, -1);
- log.RecordWindowEvent(MetricsLog::WINDOW_OPEN, 1, 0);
- log.RecordWindowEvent(MetricsLog::WINDOW_CLOSE, 1, 0);
- log.RecordWindowEvent(MetricsLog::WINDOW_DESTROY, 0, -1);
- log.CloseLog();
-
- ASSERT_EQ(4, log.num_events());
+} // namespace
- int size = log.GetEncodedLogSize();
- ASSERT_GT(size, 0);
-
- std::string encoded;
- // Leave room for the NUL terminator.
- ASSERT_TRUE(log.GetEncodedLog(WriteInto(&encoded, size + 1), size));
- TrimWhitespaceASCII(encoded, TRIM_ALL, &encoded);
- NormalizeBuildtime(&encoded);
- NormalizeBuildtime(&expected_output);
-
- ASSERT_EQ(expected_output, encoded);
-}
-
-TEST(MetricsLogTest, LoadEvent) {
- std::string expected_output = base::StringPrintf(
- "<log clientid=\"bogus client ID\" buildtime=\"123456789\" "
- "appversion=\"%s\">\n"
- " <document action=\"load\" docid=\"1\" window=\"3\" loadtime=\"7219\" "
- "origin=\"link\" session=\"0\" time=\"\"/>\n"
- "</log>", MetricsLog::GetVersionString().c_str());
-
- NoTimeMetricsLog log("bogus client ID", 0);
- log.RecordLoadEvent(3, GURL("http://google.com"),
- content::PAGE_TRANSITION_LINK, 1,
- TimeDelta::FromMilliseconds(7219));
-
- log.CloseLog();
-
- ASSERT_EQ(1, log.num_events());
-
- int size = log.GetEncodedLogSize();
- ASSERT_GT(size, 0);
-
- std::string encoded;
- // Leave room for the NUL terminator.
- ASSERT_TRUE(log.GetEncodedLog(WriteInto(&encoded, size + 1), size));
- TrimWhitespaceASCII(encoded, TRIM_ALL, &encoded);
- NormalizeBuildtime(&encoded);
- NormalizeBuildtime(&expected_output);
-
- ASSERT_EQ(expected_output, encoded);
-}
+class MetricsLogTest : public testing::Test {
+};
#if defined(OS_CHROMEOS)
-TEST(MetricsLogTest, ChromeOSLoadEvent) {
- std::string expected_output = base::StringPrintf(
- "<log clientid=\"bogus client ID\" buildtime=\"123456789\" "
- "appversion=\"%s\" hardwareclass=\"sample-class\">\n"
- " <document action=\"load\" docid=\"1\" window=\"3\" loadtime=\"7219\" "
- "origin=\"link\" session=\"0\" time=\"\"/>\n"
- "</log>", MetricsLog::GetVersionString().c_str());
-
- NoTimeMetricsLog log("bogus client ID", 0);
- log.RecordLoadEvent(3, GURL("http://google.com"),
- content::PAGE_TRANSITION_LINK, 1,
- TimeDelta::FromMilliseconds(7219));
- log.set_hardware_class("sample-class");
- log.CloseLog();
-
- ASSERT_EQ(1, log.num_events());
-
- int size = log.GetEncodedLogSize();
- ASSERT_GT(size, 0);
-
- std::string encoded;
- // Leave room for the NUL terminator.
- ASSERT_TRUE(log.GetEncodedLog(WriteInto(&encoded, size + 1), size));
- TrimWhitespaceASCII(encoded, TRIM_ALL, &encoded);
- NormalizeBuildtime(&encoded);
- NormalizeBuildtime(&expected_output);
-
- ASSERT_EQ(expected_output, encoded);
-}
-
TEST(MetricsLogTest, ChromeOSStabilityData) {
NoTimeMetricsLog log("bogus client ID", 0);
TestingPrefService prefs;
@@ -218,7 +75,7 @@ TEST(MetricsLogTest, ChromeOSStabilityData) {
log.WriteStabilityElement(&prefs);
log.CloseLog();
- int size = log.GetEncodedLogSize();
+ int size = log.GetEncodedLogSizeXml();
ASSERT_GT(size, 0);
EXPECT_EQ(0, prefs.GetInteger(prefs::kStabilityChildProcessCrashCount));
@@ -228,7 +85,7 @@ TEST(MetricsLogTest, ChromeOSStabilityData) {
std::string encoded;
// Leave room for the NUL terminator.
- bool encoding_result = log.GetEncodedLog(
+ bool encoding_result = log.GetEncodedLogXml(
WriteInto(&encoded, size + 1), size);
ASSERT_TRUE(encoding_result);
@@ -244,31 +101,4 @@ TEST(MetricsLogTest, ChromeOSStabilityData) {
EXPECT_EQ(std::string::npos,
encoded.find(" systemuncleanshutdowns="));
}
-
#endif // OS_CHROMEOS
-
-// Make sure our ID hashes are the same as what we see on the server side.
-TEST(MetricsLogTest, CreateHash) {
- static const struct {
- std::string input;
- std::string output;
- } cases[] = {
- {"Back", "0x0557fa923dcee4d0"},
- {"Forward", "0x67d2f6740a8eaebf"},
- {"NewTab", "0x290eb683f96572f1"},
- };
-
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
- std::string hash_string = MetricsLog::CreateHash(cases[i].input);
-
- // Convert to hex string
- // We're only checking the first 8 bytes, because that's what
- // the metrics server uses.
- std::string hash_hex = "0x";
- for (size_t j = 0; j < 8; j++) {
- base::StringAppendF(&hash_hex, "%02x",
- static_cast<uint8>(hash_string.data()[j]));
- }
- EXPECT_EQ(cases[i].output, hash_hex);
- }
-};
« no previous file with comments | « chrome/browser/metrics/metrics_log_serializer_unittest.cc ('k') | chrome/browser/metrics/metrics_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698