Index: chrome/install_static/install_details_unittest.cc |
diff --git a/chrome/install_static/install_details_unittest.cc b/chrome/install_static/install_details_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ddd91caab129d01cd65169673413749bdd7d995d |
--- /dev/null |
+++ b/chrome/install_static/install_details_unittest.cc |
@@ -0,0 +1,111 @@ |
+// Copyright 2016 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/install_static/install_details.h" |
+ |
+#include <string> |
+ |
+#include "base/macros.h" |
+#include "chrome/install_static/install_modes.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+using ::testing::StrEq; |
+ |
+namespace install_static { |
+ |
+class FakeInstallDetails : public InstallDetails { |
+ public: |
+ FakeInstallDetails() : InstallDetails(&payload) { |
+ constants.install_suffix = L""; |
+ constants.default_channel_name = L""; |
+ constants.supports_multi_install = true; |
+ if (kUseGoogleUpdateIntegration) { |
+ constants.app_guid = L"testguid"; |
+ constants.channel_strategy = ChannelStrategy::FIXED; |
+ } else { |
+ constants.app_guid = L""; |
+ constants.channel_strategy = ChannelStrategy::UNSUPPORTED; |
+ } |
+ payload.mode = &constants; |
+ payload.channel = channel.c_str(); |
+ payload.channel_length = channel.length(); |
+ } |
+ |
+ InstallConstants constants = InstallConstants(); |
+ std::wstring channel = std::wstring(L"testchannel"); |
+ Payload payload = Payload(); |
+ |
+ DISALLOW_COPY_AND_ASSIGN(FakeInstallDetails); |
+}; |
+ |
+TEST(InstallDetailsTest, GetClientStateKeyPath) { |
+ FakeInstallDetails details; |
+ if (kUseGoogleUpdateIntegration) { |
+ // Single-install. |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(L"Software\\Google\\Update\\ClientState\\testguid")); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(L"Software\\Google\\Update\\ClientState\\testguid")); |
+ |
+ // Multi-install. |
+ details.payload.multi_install = true; |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(L"Software\\Google\\Update\\ClientState\\testguid")); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(std::wstring(L"Software\\Google\\Update\\ClientState\\") |
+ .append(kBinariesAppGuid))); |
+ } else { |
+ // Single-install. |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ |
+ // Multi-install. |
+ details.payload.multi_install = true; |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(std::wstring(L"Software\\").append(kBinariesPathName))); |
+ } |
+} |
+ |
+TEST(InstallDetailsTest, GetClientStateMediumKeyPath) { |
+ FakeInstallDetails details; |
+ if (kUseGoogleUpdateIntegration) { |
+ // Single-install. |
+ EXPECT_THAT( |
+ details.GetClientStateMediumKeyPath(false), |
+ StrEq(L"Software\\Google\\Update\\ClientStateMedium\\testguid")); |
+ EXPECT_THAT( |
+ details.GetClientStateMediumKeyPath(true), |
+ StrEq(L"Software\\Google\\Update\\ClientStateMedium\\testguid")); |
+ |
+ // Multi-install. |
+ details.payload.multi_install = true; |
+ EXPECT_THAT( |
+ details.GetClientStateMediumKeyPath(false), |
+ StrEq(L"Software\\Google\\Update\\ClientStateMedium\\testguid")); |
+ EXPECT_THAT( |
+ details.GetClientStateMediumKeyPath(true), |
+ StrEq(std::wstring(L"Software\\Google\\Update\\ClientStateMedium\\") |
+ .append(kBinariesAppGuid))); |
+ } else { |
+ // Single-install. |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ |
+ // Multi-install. |
+ details.payload.multi_install = true; |
+ EXPECT_THAT(details.GetClientStateKeyPath(false), |
+ StrEq(std::wstring(L"Software\\").append(kProductPathName))); |
+ EXPECT_THAT(details.GetClientStateKeyPath(true), |
+ StrEq(std::wstring(L"Software\\").append(kBinariesPathName))); |
+ } |
+} |
+ |
+} // namespace install_static |