Merge "metricsd: Don't upload if product id is empty."

This commit is contained in:
Bertrand Simonnet 2015-11-17 21:51:21 +00:00 committed by Gerrit Code Review
commit 0ba2606444
3 changed files with 14 additions and 1 deletions

View File

@ -87,7 +87,8 @@ bool SystemProfileCache::Initialize() {
}
}
if (!reader.GetString(metrics::kProductId, &profile_.product_id)) {
if (!reader.GetString(metrics::kProductId, &profile_.product_id)
|| profile_.product_id.empty()) {
LOG(ERROR) << "product_id is not set.";
return false;
}

View File

@ -69,6 +69,7 @@ class SystemProfileCache : public SystemProfileSetter {
FRIEND_TEST(UploadServiceTest, ReadKeyValueFromFile);
FRIEND_TEST(UploadServiceTest, SessionIdIncrementedAtInitialization);
FRIEND_TEST(UploadServiceTest, ValuesInConfigFileAreSent);
FRIEND_TEST(UploadServiceTest, ProductIdMandatory);
// Fetches all informations and populates |profile_|
bool Initialize();

View File

@ -291,3 +291,14 @@ TEST_F(UploadServiceTest, LogFromTheMetricsLibrary) {
EXPECT_EQ(1, sender->send_call_count());
}
// The product id must be set for metrics to be uploaded.
// If it is not set, the system profile cache should fail to initialize.
TEST_F(UploadServiceTest, ProductIdMandatory) {
SystemProfileCache cache(true, dir_.path());
ASSERT_FALSE(cache.Initialize());
SetTestingProperty(metrics::kProductId, "");
ASSERT_FALSE(cache.Initialize());
SetTestingProperty(metrics::kProductId, "hello");
ASSERT_TRUE(cache.Initialize());
}