summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chrome_elf_init_unittest_win.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chrome_elf_init_unittest_win.cc')
-rw-r--r--chrome/browser/chrome_elf_init_unittest_win.cc42
1 files changed, 36 insertions, 6 deletions
diff --git a/chrome/browser/chrome_elf_init_unittest_win.cc b/chrome/browser/chrome_elf_init_unittest_win.cc
index b7cee8a..441f736 100644
--- a/chrome/browser/chrome_elf_init_unittest_win.cc
+++ b/chrome/browser/chrome_elf_init_unittest_win.cc
@@ -6,11 +6,14 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
+#include "base/metrics/field_trial.h"
#include "base/strings/string16.h"
+#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/test_reg_util_win.h"
#include "chrome/common/chrome_version_info.h"
#include "chrome_elf/chrome_elf_constants.h"
+#include "components/variations/entropy_provider.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "version.h" // NOLINT
@@ -54,20 +57,47 @@ class ChromeBlacklistTrialTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(ChromeBlacklistTrialTest);
};
-
-// Ensure that the default trial deletes any existing blacklist beacons.
+// Ensure that the default trial sets up the blacklist beacons.
TEST_F(ChromeBlacklistTrialTest, DefaultRun) {
// Set some dummy values as beacons.
blacklist_registry_key_->WriteValue(blacklist::kBeaconState,
+ blacklist::BLACKLIST_DISABLED);
+ blacklist_registry_key_->WriteValue(blacklist::kBeaconVersion, L"Data");
+
+ // This setup code should result in the default group, which should have
+ // the blacklist set up.
+ InitializeChromeElf();
+
+ // Ensure the beacon values are now correct, indicating the
+ // blacklist beacon was setup.
+ ASSERT_EQ(blacklist::BLACKLIST_ENABLED, GetBlacklistState());
+ chrome::VersionInfo version_info;
+ base::string16 version(base::UTF8ToUTF16(version_info.Version()));
+ ASSERT_EQ(version, GetBlacklistVersion());
+}
+
+
+// Ensure that the blacklist is disabled for any users in the
+// "BlacklistDisabled" finch group.
+TEST_F(ChromeBlacklistTrialTest, BlacklistDisabledRun) {
+ // Set the beacons to enabled values.
+ blacklist_registry_key_->WriteValue(blacklist::kBeaconState,
blacklist::BLACKLIST_ENABLED);
blacklist_registry_key_->WriteValue(blacklist::kBeaconVersion, L"Data");
- // This setup code should result in the default group, which should remove
- // all the beacon values.
+ // Create the field trial with the blacklist disabled group.
+ base::FieldTrialList field_trial_list(
+ new metrics::SHA1EntropyProvider("test"));
+
+ scoped_refptr<base::FieldTrial> trial(
+ base::FieldTrialList::CreateFieldTrial(
+ kBrowserBlacklistTrialName, kBrowserBlacklistTrialDisabledGroupName));
+
+ // This setup code should now delete any existing blacklist beacons.
InitializeChromeElf();
- // Ensure that invalid values are returned to indicate that the
- // beacon values are gone.
+ // Ensure invalid values are returned to indicate that the beacon
+ // values are indeed gone.
ASSERT_EQ(blacklist::BLACKLIST_STATE_MAX, GetBlacklistState());
ASSERT_EQ(base::string16(), GetBlacklistVersion());
}