chromium/chrome/installer/setup/taskbar_util_unittest.cc

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/installer/util/taskbar_util.h"

#include "base/test/test_reg_util_win.h"
#include "testing/gtest/include/gtest/gtest.h"

// Test SetInstallerPinnedChromeToTaskbar and GetInstallerPinnedChromeToTaskbar.
TEST(TaskbarUtilTest, InstallerPinnedChromeToTaskbar) {
  registry_util::RegistryOverrideManager registry_override_manager;
  // Override the registry so that tests can freely push state to it.
  ASSERT_NO_FATAL_FAILURE(
      registry_override_manager.OverrideRegistry(HKEY_CURRENT_USER));

  // By default, installer has not pinned chrome to taskbar.
  EXPECT_FALSE(GetInstallerPinnedChromeToTaskbar().has_value());

  // Verify that GetInstallerPinnedChromeToTaskbar returns the values
  // set by SetInstallerPinnedChromeToTaskbar.
  ASSERT_TRUE(SetInstallerPinnedChromeToTaskbar(true));
  EXPECT_TRUE(GetInstallerPinnedChromeToTaskbar().value());
  ASSERT_TRUE(SetInstallerPinnedChromeToTaskbar(false));
  EXPECT_FALSE(GetInstallerPinnedChromeToTaskbar().value());
}