| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "base/win/registry.h" | 10 #include "base/win/registry.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 EXPECT_TRUE(HasBeenReactivated()); | 100 EXPECT_TRUE(HasBeenReactivated()); |
| 101 } | 101 } |
| 102 | 102 |
| 103 TEST_F(GCAPIReactivationTest, CanOfferReactivation_Basic) { | 103 TEST_F(GCAPIReactivationTest, CanOfferReactivation_Basic) { |
| 104 DWORD error; | 104 DWORD error; |
| 105 | 105 |
| 106 // We're not installed yet. Make sure CanOfferReactivation fails. | 106 // We're not installed yet. Make sure CanOfferReactivation fails. |
| 107 EXPECT_FALSE(CanOfferReactivation(L"GAGA", | 107 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 108 GCAPI_INVOKED_STANDARD_SHELL, | 108 GCAPI_INVOKED_STANDARD_SHELL, |
| 109 &error)); | 109 &error)); |
| 110 EXPECT_EQ(REACTIVATE_ERROR_NOTINSTALLED, error); | 110 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_NOTINSTALLED), error); |
| 111 | 111 |
| 112 // Now pretend to be installed. CanOfferReactivation should pass. | 112 // Now pretend to be installed. CanOfferReactivation should pass. |
| 113 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 113 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 114 EXPECT_TRUE(CanOfferReactivation(L"GAGA", | 114 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 115 GCAPI_INVOKED_STANDARD_SHELL, | 115 GCAPI_INVOKED_STANDARD_SHELL, |
| 116 &error)); | 116 &error)); |
| 117 | 117 |
| 118 // Now set a recent last_run value. CanOfferReactivation should fail again. | 118 // Now set a recent last_run value. CanOfferReactivation should fail again. |
| 119 Time hkcu_last_run = Time::NowFromSystemTime() - TimeDelta::FromDays(20); | 119 Time hkcu_last_run = Time::NowFromSystemTime() - TimeDelta::FromDays(20); |
| 120 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 120 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 121 hkcu_last_run.ToInternalValue())); | 121 hkcu_last_run.ToInternalValue())); |
| 122 EXPECT_FALSE(CanOfferReactivation(L"GAGA", | 122 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 123 GCAPI_INVOKED_STANDARD_SHELL, | 123 GCAPI_INVOKED_STANDARD_SHELL, |
| 124 &error)); | 124 &error)); |
| 125 EXPECT_EQ(REACTIVATE_ERROR_NOTDORMANT, error); | 125 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_NOTDORMANT), error); |
| 126 | 126 |
| 127 // Now set a last_run value that exceeds the threshold. | 127 // Now set a last_run value that exceeds the threshold. |
| 128 hkcu_last_run = Time::NowFromSystemTime() - | 128 hkcu_last_run = Time::NowFromSystemTime() - |
| 129 TimeDelta::FromDays(kReactivationMinDaysDormant); | 129 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 130 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 130 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 131 hkcu_last_run.ToInternalValue())); | 131 hkcu_last_run.ToInternalValue())); |
| 132 EXPECT_TRUE(CanOfferReactivation(L"GAGA", | 132 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 133 GCAPI_INVOKED_STANDARD_SHELL, | 133 GCAPI_INVOKED_STANDARD_SHELL, |
| 134 &error)); | 134 &error)); |
| 135 | 135 |
| 136 // Test some invalid inputs | 136 // Test some invalid inputs |
| 137 EXPECT_FALSE(CanOfferReactivation(NULL, | 137 EXPECT_FALSE(CanOfferReactivation(NULL, |
| 138 GCAPI_INVOKED_STANDARD_SHELL, | 138 GCAPI_INVOKED_STANDARD_SHELL, |
| 139 &error)); | 139 &error)); |
| 140 EXPECT_EQ(REACTIVATE_ERROR_INVALID_INPUT, error); | 140 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_INVALID_INPUT), error); |
| 141 | 141 |
| 142 // One more valid one | 142 // One more valid one |
| 143 EXPECT_TRUE(CanOfferReactivation(L"GAGA", | 143 EXPECT_TRUE(CanOfferReactivation(L"GAGA", |
| 144 GCAPI_INVOKED_STANDARD_SHELL, | 144 GCAPI_INVOKED_STANDARD_SHELL, |
| 145 &error)); | 145 &error)); |
| 146 | 146 |
| 147 // Check that the previous brands check works: | 147 // Check that the previous brands check works: |
| 148 EXPECT_TRUE(SetReactivationBrandCode(L"GOOGOO", | 148 EXPECT_TRUE(SetReactivationBrandCode(L"GOOGOO", |
| 149 GCAPI_INVOKED_STANDARD_SHELL)); | 149 GCAPI_INVOKED_STANDARD_SHELL)); |
| 150 EXPECT_FALSE(CanOfferReactivation(L"GAGA", | 150 EXPECT_FALSE(CanOfferReactivation(L"GAGA", |
| 151 GCAPI_INVOKED_STANDARD_SHELL, | 151 GCAPI_INVOKED_STANDARD_SHELL, |
| 152 &error)); | 152 &error)); |
| 153 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 153 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_ALREADY_REACTIVATED), error); |
| 154 } | 154 } |
| 155 | 155 |
| 156 TEST_F(GCAPIReactivationTest, Reactivation_Flow) { | 156 TEST_F(GCAPIReactivationTest, Reactivation_Flow) { |
| 157 DWORD error; | 157 DWORD error; |
| 158 | 158 |
| 159 // Set us up as a candidate for reactivation. | 159 // Set us up as a candidate for reactivation. |
| 160 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 160 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 161 | 161 |
| 162 Time hkcu_last_run = Time::NowFromSystemTime() - | 162 Time hkcu_last_run = Time::NowFromSystemTime() - |
| 163 TimeDelta::FromDays(kReactivationMinDaysDormant); | 163 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 164 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 164 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 165 hkcu_last_run.ToInternalValue())); | 165 hkcu_last_run.ToInternalValue())); |
| 166 | 166 |
| 167 EXPECT_TRUE(ReactivateChrome(L"GAGA", | 167 EXPECT_TRUE(ReactivateChrome(L"GAGA", |
| 168 GCAPI_INVOKED_STANDARD_SHELL, | 168 GCAPI_INVOKED_STANDARD_SHELL, |
| 169 &error)); | 169 &error)); |
| 170 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 170 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 171 | 171 |
| 172 // Make sure we can't reactivate again: | 172 // Make sure we can't reactivate again: |
| 173 EXPECT_FALSE(ReactivateChrome(L"GAGA", | 173 EXPECT_FALSE(ReactivateChrome(L"GAGA", |
| 174 GCAPI_INVOKED_STANDARD_SHELL, | 174 GCAPI_INVOKED_STANDARD_SHELL, |
| 175 &error)); | 175 &error)); |
| 176 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 176 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_ALREADY_REACTIVATED), error); |
| 177 | 177 |
| 178 // Should not be able to reactivate under other brands: | 178 // Should not be able to reactivate under other brands: |
| 179 EXPECT_FALSE(ReactivateChrome(L"MAMA", | 179 EXPECT_FALSE(ReactivateChrome(L"MAMA", |
| 180 GCAPI_INVOKED_STANDARD_SHELL, | 180 GCAPI_INVOKED_STANDARD_SHELL, |
| 181 &error)); | 181 &error)); |
| 182 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 182 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 183 | 183 |
| 184 // Validate that previous_brands are rejected: | 184 // Validate that previous_brands are rejected: |
| 185 EXPECT_FALSE(ReactivateChrome(L"PFFT", | 185 EXPECT_FALSE(ReactivateChrome(L"PFFT", |
| 186 GCAPI_INVOKED_STANDARD_SHELL, | 186 GCAPI_INVOKED_STANDARD_SHELL, |
| 187 &error)); | 187 &error)); |
| 188 EXPECT_EQ(REACTIVATE_ERROR_ALREADY_REACTIVATED, error); | 188 EXPECT_EQ(static_cast<DWORD>(REACTIVATE_ERROR_ALREADY_REACTIVATED), error); |
| 189 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 189 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 190 } | 190 } |
| 191 | 191 |
| 192 TEST_F(GCAPIReactivationTest, ExperimentLabelCheck) { | 192 TEST_F(GCAPIReactivationTest, ExperimentLabelCheck) { |
| 193 DWORD error; | 193 DWORD error; |
| 194 | 194 |
| 195 // Set us up as a candidate for reactivation. | 195 // Set us up as a candidate for reactivation. |
| 196 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); | 196 EXPECT_TRUE(SetChromeInstallMarker(HKEY_CURRENT_USER)); |
| 197 | 197 |
| 198 Time hkcu_last_run = Time::NowFromSystemTime() - | 198 Time hkcu_last_run = Time::NowFromSystemTime() - |
| 199 TimeDelta::FromDays(kReactivationMinDaysDormant); | 199 TimeDelta::FromDays(kReactivationMinDaysDormant); |
| 200 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, | 200 EXPECT_TRUE(SetLastRunTime(HKEY_CURRENT_USER, |
| 201 hkcu_last_run.ToInternalValue())); | 201 hkcu_last_run.ToInternalValue())); |
| 202 | 202 |
| 203 EXPECT_TRUE(ReactivateChrome(L"GAGA", | 203 EXPECT_TRUE(ReactivateChrome(L"GAGA", |
| 204 GCAPI_INVOKED_STANDARD_SHELL, | 204 GCAPI_INVOKED_STANDARD_SHELL, |
| 205 &error)); | 205 &error)); |
| 206 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); | 206 EXPECT_EQ(L"GAGA", GetReactivationString(HKEY_CURRENT_USER)); |
| 207 | 207 |
| 208 EXPECT_TRUE(HasExperimentLabels(HKEY_CURRENT_USER)); | 208 EXPECT_TRUE(HasExperimentLabels(HKEY_CURRENT_USER)); |
| 209 } | 209 } |
| OLD | NEW |