| Index: chrome/installer/util/experiment_labels_unittest.cc
|
| diff --git a/chrome/installer/util/experiment_labels_unittest.cc b/chrome/installer/util/experiment_labels_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c7e1cca1462e7dfd435715d1cf221fe0d9bc20d3
|
| --- /dev/null
|
| +++ b/chrome/installer/util/experiment_labels_unittest.cc
|
| @@ -0,0 +1,83 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/installer/util/experiment_labels.h"
|
| +
|
| +#include "base/strings/string_piece.h"
|
| +#include "base/time/time.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +using ::testing::HasSubstr;
|
| +using ::testing::StartsWith;
|
| +using ::testing::StrEq;
|
| +
|
| +namespace installer {
|
| +
|
| +TEST(ExperimentLabels, Value) {
|
| + static constexpr wchar_t kDummyValue[] =
|
| + L"name=value|Fri, 14 Aug 2015 16:13:03 GMT";
|
| + ExperimentLabels labels(kDummyValue);
|
| +
|
| + EXPECT_THAT(labels.value(), StrEq(kDummyValue));
|
| +}
|
| +
|
| +TEST(ExperimentLabels, GetValueForLabel) {
|
| + static constexpr wchar_t kDummyValue[] =
|
| + L"name=value|Fri, 14 Aug 2015 16:13:03 GMT;"
|
| + L"name2=value2|Fri, 14 Aug 2015 16:13:03 GMT";
|
| + ExperimentLabels labels(kDummyValue);
|
| +
|
| + base::StringPiece16 value = labels.GetValueForLabel(L"name");
|
| + EXPECT_THAT(value.as_string().c_str(), StrEq(L"value"));
|
| +
|
| + value = labels.GetValueForLabel(L"name2");
|
| + EXPECT_THAT(value.as_string().c_str(), StrEq(L"value2"));
|
| +
|
| + value = labels.GetValueForLabel(L"name3");
|
| + EXPECT_TRUE(value.empty());
|
| +}
|
| +
|
| +TEST(ExperimentLabels, SetValueForLabel) {
|
| + ExperimentLabels label(L"");
|
| +
|
| + label.SetValueForLabel(L"name", L"value", base::TimeDelta::FromSeconds(1));
|
| + base::StringPiece16 value = label.GetValueForLabel(L"name");
|
| + EXPECT_THAT(value.as_string().c_str(), StrEq(L"value"));
|
| + EXPECT_THAT(label.value(), StartsWith(L"name=value|"));
|
| +
|
| + label.SetValueForLabel(L"name", L"othervalue",
|
| + base::TimeDelta::FromSeconds(1));
|
| + value = label.GetValueForLabel(L"name");
|
| + EXPECT_THAT(value.as_string().c_str(), StrEq(L"othervalue"));
|
| + EXPECT_THAT(label.value(), StartsWith(L"name=othervalue|"));
|
| +
|
| + label.SetValueForLabel(L"othername", L"somevalue",
|
| + base::TimeDelta::FromSeconds(1));
|
| + value = label.GetValueForLabel(L"othername");
|
| + EXPECT_THAT(value.as_string().c_str(), StrEq(L"somevalue"));
|
| + EXPECT_THAT(label.value(), HasSubstr(L"name=othervalue|"));
|
| + EXPECT_THAT(label.value(), HasSubstr(L"othername=somevalue|"));
|
| +}
|
| +
|
| +TEST(ExperimentLabels, TimeFormatting) {
|
| + base::Time::Exploded exploded = {};
|
| + exploded.year = 2015;
|
| + exploded.month = 8;
|
| + exploded.day_of_week = 5;
|
| + exploded.day_of_month = 14;
|
| + exploded.hour = 16;
|
| + exploded.minute = 13;
|
| + exploded.second = 3;
|
| +
|
| + base::Time time;
|
| + ASSERT_TRUE(base::Time::FromUTCExploded(exploded, &time));
|
| +
|
| + ExperimentLabels label(L"");
|
| + label.SetValueForLabel(L"name", L"value", time);
|
| + EXPECT_THAT(label.value(),
|
| + StrEq(L"name=value|Fri, 14 Aug 2015 16:13:03 GMT"));
|
| +}
|
| +
|
| +} // namespace installer
|
|
|