summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--omaha_request_action.h8
-rw-r--r--omaha_request_action_unittest.cc943
2 files changed, 366 insertions, 585 deletions
diff --git a/omaha_request_action.h b/omaha_request_action.h
index 4501a849..6e4384ae 100644
--- a/omaha_request_action.h
+++ b/omaha_request_action.h
@@ -146,7 +146,13 @@ class OmahaRequestAction : public Action<OmahaRequestAction>,
bool IsEvent() const { return event_.get() != nullptr; }
private:
- FRIEND_TEST(OmahaRequestActionTest, GetInstallDate);
+ FRIEND_TEST(OmahaRequestActionTest, GetInstallDateWhenNoPrefsNorOOBE);
+ FRIEND_TEST(OmahaRequestActionTest,
+ GetInstallDateWhenOOBECompletedWithInvalidDate);
+ FRIEND_TEST(OmahaRequestActionTest,
+ GetInstallDateWhenOOBECompletedWithValidDate);
+ FRIEND_TEST(OmahaRequestActionTest,
+ GetInstallDateWhenOOBECompletedDateChanges);
// Enumeration used in PersistInstallDate().
enum InstallDateProvisioningSource {
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index 0248c22a..a4d964dc 100644
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -12,10 +12,11 @@
#include <base/strings/stringprintf.h>
#include <base/time/time.h>
#include <chromeos/dbus/service_constants.h>
-#include "gtest/gtest.h"
+#include <gtest/gtest.h>
#include "update_engine/action_pipe.h"
#include "update_engine/constants.h"
+#include "update_engine/fake_prefs.h"
#include "update_engine/mock_connection_manager.h"
#include "update_engine/mock_http_fetcher.h"
#include "update_engine/omaha_hash_calculator.h"
@@ -41,30 +42,88 @@ using testing::AnyNumber;
namespace chromeos_update_engine {
-class OmahaRequestActionTest : public ::testing::Test {};
+class OmahaRequestActionTest : public ::testing::Test {
+ protected:
+ void SetUp() {
+ fake_system_state_.set_request_params(&request_params_);
+ fake_system_state_.set_prefs(&fake_prefs_);
+ }
-namespace {
+ // Returns true iff an output response was obtained from the
+ // OmahaRequestAction. |prefs| may be null, in which case a local PrefsMock
+ // is used. |payload_state| may be null, in which case a local mock is used.
+ // |p2p_manager| may be null, in which case a local mock is used.
+ // |connection_manager| may be null, in which case a local mock is used.
+ // out_response may be null. If |fail_http_response_code| is non-negative,
+ // the transfer will fail with that code. |ping_only| is passed through to the
+ // OmahaRequestAction constructor. out_post_data may be null; if non-null, the
+ // post-data received by the mock HttpFetcher is returned.
+ //
+ // The |expected_check_result|, |expected_check_reaction| and
+ // |expected_error_code| parameters are for checking expectations
+ // about reporting UpdateEngine.Check.{Result,Reaction,DownloadError}
+ // UMA statistics. Use the appropriate ::kUnset value to specify that
+ // the given metric should not be reported.
+ bool TestUpdateCheck(OmahaRequestParams* request_params,
+ const string& http_response,
+ int fail_http_response_code,
+ bool ping_only,
+ ErrorCode expected_code,
+ metrics::CheckResult expected_check_result,
+ metrics::CheckReaction expected_check_reaction,
+ metrics::DownloadErrorCode expected_download_error_code,
+ OmahaResponse* out_response,
+ vector<char>* out_post_data);
+
+ // Runs and checks a ping test. |ping_only| indicates wheter it should send
+ // only a ping or also an updatecheck.
+ void PingTest(bool ping_only);
+
+ // InstallDate test helper function.
+ bool InstallDateParseHelper(const std::string &elapsed_days,
+ OmahaResponse *response);
+
+ // P2P test helper function.
+ void P2PTest(
+ bool initial_allow_p2p_for_downloading,
+ bool initial_allow_p2p_for_sharing,
+ bool omaha_disable_p2p_for_downloading,
+ bool omaha_disable_p2p_for_sharing,
+ bool payload_state_allow_p2p_attempt,
+ bool expect_p2p_client_lookup,
+ const string& p2p_client_result_url,
+ bool expected_allow_p2p_for_downloading,
+ bool expected_allow_p2p_for_sharing,
+ const string& expected_p2p_url);
+
+ FakeSystemState fake_system_state_;
+
+ // By default, all tests use these objects unless they replace them in the
+ // fake_system_state_.
+ OmahaRequestParams request_params_ = OmahaRequestParams{
+ &fake_system_state_,
+ OmahaRequestParams::kOsPlatform,
+ OmahaRequestParams::kOsVersion,
+ "service_pack",
+ "x86-generic",
+ OmahaRequestParams::kAppId,
+ "0.1.0.0",
+ "en-US",
+ "unittest",
+ "OEM MODEL 09235 7471",
+ "ChromeOSFirmware.1.0",
+ "0X0A1",
+ false, // delta okay
+ false, // interactive
+ "http://url",
+ "", // target_version_prefix
+ false, // use_p2p_for_downloading
+ false}; // use_p2p_for_sharing
+
+ FakePrefs fake_prefs_;
+};
-FakeSystemState fake_system_state;
-OmahaRequestParams kDefaultTestParams(
- &fake_system_state,
- OmahaRequestParams::kOsPlatform,
- OmahaRequestParams::kOsVersion,
- "service_pack",
- "x86-generic",
- OmahaRequestParams::kAppId,
- "0.1.0.0",
- "en-US",
- "unittest",
- "OEM MODEL 09235 7471",
- "ChromeOSFirmware.1.0",
- "0X0A1",
- false, // delta okay
- false, // interactive
- "http://url",
- "", // target_version_prefix
- false, // use_p2p_for_downloading
- false); // use_p2p_for_sharing
+namespace {
string GetNoUpdateResponse(const string& app_id) {
return string(
@@ -222,35 +281,17 @@ class OutputObjectCollectorAction : public Action<OutputObjectCollectorAction> {
OmahaResponse omaha_response_;
};
-// Returns true iff an output response was obtained from the
-// OmahaRequestAction. |prefs| may be null, in which case a local PrefsMock
-// is used. |payload_state| may be null, in which case a local mock is used.
-// |p2p_manager| may be null, in which case a local mock is used.
-// |connection_manager| may be null, in which case a local mock is used.
-// out_response may be null. If |fail_http_response_code| is non-negative,
-// the transfer will fail with that code. |ping_only| is passed through to the
-// OmahaRequestAction constructor. out_post_data may be null; if non-null, the
-// post-data received by the mock HttpFetcher is returned.
-//
-// The |expected_check_result|, |expected_check_reaction| and
-// |expected_error_code| parameters are for checking expectations
-// about reporting UpdateEngine.Check.{Result,Reaction,DownloadError}
-// UMA statistics. Use the appropriate ::kUnset value to specify that
-// the given metric should not be reported.
-bool TestUpdateCheck(PrefsInterface* prefs,
- PayloadStateInterface *payload_state,
- P2PManager *p2p_manager,
- ConnectionManager *connection_manager,
- OmahaRequestParams* params,
- const string& http_response,
- int fail_http_response_code,
- bool ping_only,
- ErrorCode expected_code,
- metrics::CheckResult expected_check_result,
- metrics::CheckReaction expected_check_reaction,
- metrics::DownloadErrorCode expected_download_error_code,
- OmahaResponse* out_response,
- vector<char>* out_post_data) {
+bool OmahaRequestActionTest::TestUpdateCheck(
+ OmahaRequestParams* request_params,
+ const string& http_response,
+ int fail_http_response_code,
+ bool ping_only,
+ ErrorCode expected_code,
+ metrics::CheckResult expected_check_result,
+ metrics::CheckReaction expected_check_reaction,
+ metrics::DownloadErrorCode expected_download_error_code,
+ OmahaResponse* out_response,
+ vector<char>* out_post_data) {
GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE);
MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(),
http_response.size(),
@@ -258,17 +299,9 @@ bool TestUpdateCheck(PrefsInterface* prefs,
if (fail_http_response_code >= 0) {
fetcher->FailTransfer(fail_http_response_code);
}
- FakeSystemState fake_system_state;
- if (prefs)
- fake_system_state.set_prefs(prefs);
- if (payload_state)
- fake_system_state.set_payload_state(payload_state);
- if (p2p_manager)
- fake_system_state.set_p2p_manager(p2p_manager);
- if (connection_manager)
- fake_system_state.set_connection_manager(connection_manager);
- fake_system_state.set_request_params(params);
- OmahaRequestAction action(&fake_system_state,
+ if (request_params)
+ fake_system_state_.set_request_params(request_params);
+ OmahaRequestAction action(&fake_system_state_,
nullptr,
fetcher,
ping_only);
@@ -284,19 +317,19 @@ bool TestUpdateCheck(PrefsInterface* prefs,
BondActions(&action, &collector_action);
processor.EnqueueAction(&collector_action);
- EXPECT_CALL(*fake_system_state.mock_metrics_lib(), SendEnumToUMA(_, _, _))
+ EXPECT_CALL(*fake_system_state_.mock_metrics_lib(), SendEnumToUMA(_, _, _))
.Times(AnyNumber());
- EXPECT_CALL(*fake_system_state.mock_metrics_lib(),
+ EXPECT_CALL(*fake_system_state_.mock_metrics_lib(),
SendEnumToUMA(metrics::kMetricCheckResult,
static_cast<int>(expected_check_result),
static_cast<int>(metrics::CheckResult::kNumConstants) - 1))
.Times(expected_check_result == metrics::CheckResult::kUnset ? 0 : 1);
- EXPECT_CALL(*fake_system_state.mock_metrics_lib(),
+ EXPECT_CALL(*fake_system_state_.mock_metrics_lib(),
SendEnumToUMA(metrics::kMetricCheckReaction,
static_cast<int>(expected_check_reaction),
static_cast<int>(metrics::CheckReaction::kNumConstants) - 1))
.Times(expected_check_reaction == metrics::CheckReaction::kUnset ? 0 : 1);
- EXPECT_CALL(*fake_system_state.mock_metrics_lib(),
+ EXPECT_CALL(*fake_system_state_.mock_metrics_lib(),
SendSparseToUMA(metrics::kMetricCheckDownloadErrorCode,
static_cast<int>(expected_download_error_code)))
.Times(expected_download_error_code == metrics::DownloadErrorCode::kUnset
@@ -339,14 +372,10 @@ void TestEvent(OmahaRequestParams params,
*out_post_data = fetcher->post_data();
}
-TEST(OmahaRequestActionTest, RejectEntities) {
+TEST_F(OmahaRequestActionTest, RejectEntities) {
OmahaResponse response;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponseWithEntity(OmahaRequestParams::kAppId),
-1,
false, // ping_only
@@ -359,14 +388,10 @@ TEST(OmahaRequestActionTest, RejectEntities) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, NoUpdateTest) {
+TEST_F(OmahaRequestActionTest, NoUpdateTest) {
OmahaResponse response;
ASSERT_TRUE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponse(OmahaRequestParams::kAppId),
-1,
false, // ping_only
@@ -379,14 +404,10 @@ TEST(OmahaRequestActionTest, NoUpdateTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, ValidUpdateTest) {
+TEST_F(OmahaRequestActionTest, ValidUpdateTest) {
OmahaResponse response;
ASSERT_TRUE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -416,11 +437,13 @@ TEST(OmahaRequestActionTest, ValidUpdateTest) {
EXPECT_EQ("20101020", response.deadline);
}
-TEST(OmahaRequestActionTest, ValidUpdateBlockedByConnection) {
+TEST_F(OmahaRequestActionTest, ValidUpdateBlockedByConnection) {
OmahaResponse response;
// Set up a connection manager that doesn't allow a valid update over
// the current ethernet connection.
MockConnectionManager mock_cm(nullptr);
+ fake_system_state_.set_connection_manager(&mock_cm);
+
EXPECT_CALL(mock_cm, GetConnectionProperties(_, _, _))
.WillRepeatedly(DoAll(SetArgumentPointee<1>(kNetEthernet),
SetArgumentPointee<2>(NetworkTethering::kUnknown),
@@ -431,11 +454,7 @@ TEST(OmahaRequestActionTest, ValidUpdateBlockedByConnection) {
.WillRepeatedly(Return(shill::kTypeEthernet));
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- &mock_cm, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -457,20 +476,18 @@ TEST(OmahaRequestActionTest, ValidUpdateBlockedByConnection) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, ValidUpdateBlockedByRollback) {
+TEST_F(OmahaRequestActionTest, ValidUpdateBlockedByRollback) {
string rollback_version = "1234.0.0";
OmahaResponse response;
MockPayloadState mock_payload_state;
+ fake_system_state_.set_payload_state(&mock_payload_state);
+
EXPECT_CALL(mock_payload_state, GetRollbackVersion())
.WillRepeatedly(Return(rollback_version));
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- &mock_payload_state, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse(OmahaRequestParams::kAppId,
rollback_version, // version
"http://more/info",
@@ -492,28 +509,15 @@ TEST(OmahaRequestActionTest, ValidUpdateBlockedByRollback) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, WallClockBasedWaitAloneCausesScattering) {
+TEST_F(OmahaRequestActionTest, WallClockBasedWaitAloneCausesScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_update_check_count_wait_enabled(false);
params.set_waiting_period(TimeDelta::FromDays(2));
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_FALSE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -541,11 +545,7 @@ TEST(OmahaRequestActionTest, WallClockBasedWaitAloneCausesScattering) {
// Verify if we are interactive check we don't defer.
params.set_interactive(true);
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -571,9 +571,9 @@ TEST(OmahaRequestActionTest, WallClockBasedWaitAloneCausesScattering) {
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, NoWallClockBasedWaitCausesNoScattering) {
+TEST_F(OmahaRequestActionTest, NoWallClockBasedWaitCausesNoScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(false);
params.set_waiting_period(TimeDelta::FromDays(2));
@@ -581,21 +581,8 @@ TEST(OmahaRequestActionTest, NoWallClockBasedWaitCausesNoScattering) {
params.set_min_update_checks_needed(1);
params.set_max_update_checks_allowed(8);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -621,9 +608,9 @@ TEST(OmahaRequestActionTest, NoWallClockBasedWaitCausesNoScattering) {
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, ZeroMaxDaysToScatterCausesNoScattering) {
+TEST_F(OmahaRequestActionTest, ZeroMaxDaysToScatterCausesNoScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta::FromDays(2));
@@ -631,21 +618,8 @@ TEST(OmahaRequestActionTest, ZeroMaxDaysToScatterCausesNoScattering) {
params.set_min_update_checks_needed(1);
params.set_max_update_checks_allowed(8);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -672,9 +646,9 @@ TEST(OmahaRequestActionTest, ZeroMaxDaysToScatterCausesNoScattering) {
}
-TEST(OmahaRequestActionTest, ZeroUpdateCheckCountCausesNoScattering) {
+TEST_F(OmahaRequestActionTest, ZeroUpdateCheckCountCausesNoScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta());
@@ -682,20 +656,7 @@ TEST(OmahaRequestActionTest, ZeroUpdateCheckCountCausesNoScattering) {
params.set_min_update_checks_needed(0);
params.set_max_update_checks_allowed(0);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_TRUE(TestUpdateCheck(
- &prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
@@ -721,14 +682,14 @@ TEST(OmahaRequestActionTest, ZeroUpdateCheckCountCausesNoScattering) {
nullptr));
int64_t count;
- ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateCheckCount, &count));
+ ASSERT_TRUE(fake_prefs_.GetInt64(kPrefsUpdateCheckCount, &count));
ASSERT_EQ(count, 0);
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, NonZeroUpdateCheckCountCausesScattering) {
+TEST_F(OmahaRequestActionTest, NonZeroUpdateCheckCountCausesScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta());
@@ -736,20 +697,7 @@ TEST(OmahaRequestActionTest, NonZeroUpdateCheckCountCausesScattering) {
params.set_min_update_checks_needed(1);
params.set_max_update_checks_allowed(8);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_FALSE(TestUpdateCheck(
- &prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
@@ -775,18 +723,14 @@ TEST(OmahaRequestActionTest, NonZeroUpdateCheckCountCausesScattering) {
nullptr));
int64_t count;
- ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateCheckCount, &count));
+ ASSERT_TRUE(fake_prefs_.GetInt64(kPrefsUpdateCheckCount, &count));
ASSERT_GT(count, 0);
EXPECT_FALSE(response.update_exists);
// Verify if we are interactive check we don't defer.
params.set_interactive(true);
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -812,9 +756,9 @@ TEST(OmahaRequestActionTest, NonZeroUpdateCheckCountCausesScattering) {
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
+TEST_F(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta());
@@ -822,22 +766,9 @@ TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
params.set_min_update_checks_needed(1);
params.set_max_update_checks_allowed(8);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
- ASSERT_TRUE(prefs.SetInt64(kPrefsUpdateCheckCount, 5));
+ ASSERT_TRUE(fake_prefs_.SetInt64(kPrefsUpdateCheckCount, 5));
ASSERT_FALSE(TestUpdateCheck(
- &prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
@@ -863,7 +794,7 @@ TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
nullptr));
int64_t count;
- ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateCheckCount, &count));
+ ASSERT_TRUE(fake_prefs_.GetInt64(kPrefsUpdateCheckCount, &count));
// count remains the same, as the decrementing happens in update_attempter
// which this test doesn't exercise.
ASSERT_EQ(count, 5);
@@ -872,11 +803,7 @@ TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
// Verify if we are interactive check we don't defer.
params.set_interactive(true);
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -902,15 +829,14 @@ TEST(OmahaRequestActionTest, ExistingUpdateCheckCountCausesScattering) {
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, NoOutputPipeTest) {
+TEST_F(OmahaRequestActionTest, NoOutputPipeTest) {
const string http_response(GetNoUpdateResponse(OmahaRequestParams::kAppId));
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
- FakeSystemState fake_system_state;
- OmahaRequestParams params = kDefaultTestParams;
- fake_system_state.set_request_params(&params);
- OmahaRequestAction action(&fake_system_state, nullptr,
+ OmahaRequestParams params = request_params_;
+ fake_system_state_.set_request_params(&params);
+ OmahaRequestAction action(&fake_system_state_, nullptr,
new MockHttpFetcher(http_response.data(),
http_response.size(),
nullptr),
@@ -927,14 +853,10 @@ TEST(OmahaRequestActionTest, NoOutputPipeTest) {
EXPECT_FALSE(processor.IsRunning());
}
-TEST(OmahaRequestActionTest, InvalidXmlTest) {
+TEST_F(OmahaRequestActionTest, InvalidXmlTest) {
OmahaResponse response;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"invalid xml>",
-1,
false, // ping_only
@@ -947,14 +869,10 @@ TEST(OmahaRequestActionTest, InvalidXmlTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, EmptyResponseTest) {
+TEST_F(OmahaRequestActionTest, EmptyResponseTest) {
OmahaResponse response;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"",
-1,
false, // ping_only
@@ -967,14 +885,10 @@ TEST(OmahaRequestActionTest, EmptyResponseTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, MissingStatusTest) {
+TEST_F(OmahaRequestActionTest, MissingStatusTest) {
OmahaResponse response;
ASSERT_FALSE(TestUpdateCheck(
- nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response protocol=\"3.0\">"
"<daystart elapsed_seconds=\"100\"/>"
"<app appid=\"foo\" status=\"ok\">"
@@ -991,14 +905,10 @@ TEST(OmahaRequestActionTest, MissingStatusTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, InvalidStatusTest) {
+TEST_F(OmahaRequestActionTest, InvalidStatusTest) {
OmahaResponse response;
ASSERT_FALSE(TestUpdateCheck(
- nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response protocol=\"3.0\">"
"<daystart elapsed_seconds=\"100\"/>"
"<app appid=\"foo\" status=\"ok\">"
@@ -1015,14 +925,10 @@ TEST(OmahaRequestActionTest, InvalidStatusTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, MissingNodesetTest) {
+TEST_F(OmahaRequestActionTest, MissingNodesetTest) {
OmahaResponse response;
ASSERT_FALSE(TestUpdateCheck(
- nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response protocol=\"3.0\">"
"<daystart elapsed_seconds=\"100\"/>"
"<app appid=\"foo\" status=\"ok\">"
@@ -1039,7 +945,7 @@ TEST(OmahaRequestActionTest, MissingNodesetTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, MissingFieldTest) {
+TEST_F(OmahaRequestActionTest, MissingFieldTest) {
string input_response =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response protocol=\"3.0\">"
"<daystart elapsed_seconds=\"100\"/>"
@@ -1060,11 +966,7 @@ TEST(OmahaRequestActionTest, MissingFieldTest) {
LOG(INFO) << "Input Response = " << input_response;
OmahaResponse response;
- ASSERT_TRUE(TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ ASSERT_TRUE(TestUpdateCheck(nullptr, // request_params
input_response,
-1,
false, // ping_only
@@ -1103,14 +1005,11 @@ gboolean TerminateTransferTestStarter(gpointer data) {
}
} // namespace
-TEST(OmahaRequestActionTest, TerminateTransferTest) {
+TEST_F(OmahaRequestActionTest, TerminateTransferTest) {
string http_response("doesn't matter");
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
- FakeSystemState fake_system_state;
- OmahaRequestParams params = kDefaultTestParams;
- fake_system_state.set_request_params(&params);
- OmahaRequestAction action(&fake_system_state, nullptr,
+ OmahaRequestAction action(&fake_system_state_, nullptr,
new MockHttpFetcher(http_response.data(),
http_response.size(),
nullptr),
@@ -1126,7 +1025,7 @@ TEST(OmahaRequestActionTest, TerminateTransferTest) {
g_main_loop_unref(loop);
}
-TEST(OmahaRequestActionTest, XmlEncodeTest) {
+TEST_F(OmahaRequestActionTest, XmlEncodeTest) {
EXPECT_EQ("ab", XmlEncode("ab"));
EXPECT_EQ("a&lt;b", XmlEncode("a<b"));
EXPECT_EQ("&lt;&amp;&gt;", XmlEncode("<&>"));
@@ -1135,8 +1034,7 @@ TEST(OmahaRequestActionTest, XmlEncodeTest) {
vector<char> post_data;
// Make sure XML Encode is being called on the params
- FakeSystemState fake_system_state;
- OmahaRequestParams params(&fake_system_state,
+ OmahaRequestParams params(&fake_system_state_,
OmahaRequestParams::kOsPlatform,
OmahaRequestParams::kOsVersion,
"testtheservice_pack>",
@@ -1156,11 +1054,7 @@ TEST(OmahaRequestActionTest, XmlEncodeTest) {
false); // use_p2p_for_sharing
OmahaResponse response;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
"invalid xml>",
-1,
false, // ping_only
@@ -1182,14 +1076,10 @@ TEST(OmahaRequestActionTest, XmlEncodeTest) {
EXPECT_EQ(post_str.find("<OEM MODEL>"), string::npos);
}
-TEST(OmahaRequestActionTest, XmlDecodeTest) {
+TEST_F(OmahaRequestActionTest, XmlDecodeTest) {
OmahaResponse response;
ASSERT_TRUE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"testthe&lt;url", // more info
@@ -1214,14 +1104,10 @@ TEST(OmahaRequestActionTest, XmlDecodeTest) {
EXPECT_EQ(response.deadline, "<20110101");
}
-TEST(OmahaRequestActionTest, ParseIntTest) {
+TEST_F(OmahaRequestActionTest, ParseIntTest) {
OmahaResponse response;
ASSERT_TRUE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"theurl", // more info
@@ -1245,17 +1131,15 @@ TEST(OmahaRequestActionTest, ParseIntTest) {
EXPECT_EQ(response.size, 123123123123123ll);
}
-TEST(OmahaRequestActionTest, FormatUpdateCheckOutputTest) {
+TEST_F(OmahaRequestActionTest, FormatUpdateCheckOutputTest) {
vector<char> post_data;
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
+
EXPECT_CALL(prefs, GetString(kPrefsPreviousVersion, _))
.WillOnce(DoAll(SetArgumentPointee<1>(string("")), Return(true)));
EXPECT_CALL(prefs, SetString(kPrefsPreviousVersion, _)).Times(1);
- ASSERT_FALSE(TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ ASSERT_FALSE(TestUpdateCheck(nullptr, // request_params
"invalid xml>",
-1,
false, // ping_only
@@ -1280,9 +1164,9 @@ TEST(OmahaRequestActionTest, FormatUpdateCheckOutputTest) {
}
-TEST(OmahaRequestActionTest, FormatSuccessEventOutputTest) {
+TEST_F(OmahaRequestActionTest, FormatSuccessEventOutputTest) {
vector<char> post_data;
- TestEvent(kDefaultTestParams,
+ TestEvent(request_params_,
new OmahaEvent(OmahaEvent::kTypeUpdateDownloadStarted),
"invalid xml>",
&post_data);
@@ -1297,9 +1181,9 @@ TEST(OmahaRequestActionTest, FormatSuccessEventOutputTest) {
EXPECT_EQ(post_str.find("updatecheck"), string::npos);
}
-TEST(OmahaRequestActionTest, FormatErrorEventOutputTest) {
+TEST_F(OmahaRequestActionTest, FormatErrorEventOutputTest) {
vector<char> post_data;
- TestEvent(kDefaultTestParams,
+ TestEvent(request_params_,
new OmahaEvent(OmahaEvent::kTypeDownloadComplete,
OmahaEvent::kResultError,
ErrorCode::kError),
@@ -1317,13 +1201,13 @@ TEST(OmahaRequestActionTest, FormatErrorEventOutputTest) {
EXPECT_EQ(post_str.find("updatecheck"), string::npos);
}
-TEST(OmahaRequestActionTest, IsEventTest) {
+TEST_F(OmahaRequestActionTest, IsEventTest) {
string http_response("doesn't matter");
- FakeSystemState fake_system_state;
- OmahaRequestParams params = kDefaultTestParams;
- fake_system_state.set_request_params(&params);
+ // Create a copy of the OmahaRequestParams to reuse it later.
+ OmahaRequestParams params = request_params_;
+ fake_system_state_.set_request_params(&params);
OmahaRequestAction update_check_action(
- &fake_system_state,
+ &fake_system_state_,
nullptr,
new MockHttpFetcher(http_response.data(),
http_response.size(),
@@ -1331,10 +1215,10 @@ TEST(OmahaRequestActionTest, IsEventTest) {
false);
EXPECT_FALSE(update_check_action.IsEvent());
- params = kDefaultTestParams;
- fake_system_state.set_request_params(&params);
+ params = request_params_;
+ fake_system_state_.set_request_params(&params);
OmahaRequestAction event_action(
- &fake_system_state,
+ &fake_system_state_,
new OmahaEvent(OmahaEvent::kTypeUpdateComplete),
new MockHttpFetcher(http_response.data(),
http_response.size(),
@@ -1343,13 +1227,12 @@ TEST(OmahaRequestActionTest, IsEventTest) {
EXPECT_TRUE(event_action.IsEvent());
}
-TEST(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
+TEST_F(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
for (int i = 0; i < 2; i++) {
bool delta_okay = i == 1;
const char* delta_okay_str = delta_okay ? "true" : "false";
vector<char> post_data;
- FakeSystemState fake_system_state;
- OmahaRequestParams params(&fake_system_state,
+ OmahaRequestParams params(&fake_system_state_,
OmahaRequestParams::kOsPlatform,
OmahaRequestParams::kOsVersion,
"service_pack",
@@ -1367,11 +1250,7 @@ TEST(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
"", // target_version_prefix
false, // use_p2p_for_downloading
false); // use_p2p_for_sharing
- ASSERT_FALSE(TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ ASSERT_FALSE(TestUpdateCheck(&params,
"invalid xml>",
-1,
false, // ping_only
@@ -1390,13 +1269,13 @@ TEST(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
}
}
-TEST(OmahaRequestActionTest, FormatInteractiveOutputTest) {
+TEST_F(OmahaRequestActionTest, FormatInteractiveOutputTest) {
for (int i = 0; i < 2; i++) {
bool interactive = i == 1;
const char* interactive_str = interactive ? "ondemandupdate" : "scheduler";
vector<char> post_data;
FakeSystemState fake_system_state;
- OmahaRequestParams params(&fake_system_state,
+ OmahaRequestParams params(&fake_system_state_,
OmahaRequestParams::kOsPlatform,
OmahaRequestParams::kOsVersion,
"service_pack",
@@ -1414,11 +1293,7 @@ TEST(OmahaRequestActionTest, FormatInteractiveOutputTest) {
"", // target_version_prefix
false, // use_p2p_for_downloading
false); // use_p2p_for_sharing
- ASSERT_FALSE(TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ ASSERT_FALSE(TestUpdateCheck(&params,
"invalid xml>",
-1,
false, // ping_only
@@ -1437,7 +1312,7 @@ TEST(OmahaRequestActionTest, FormatInteractiveOutputTest) {
}
}
-TEST(OmahaRequestActionTest, OmahaEventTest) {
+TEST_F(OmahaRequestActionTest, OmahaEventTest) {
OmahaEvent default_event;
EXPECT_EQ(OmahaEvent::kTypeUnknown, default_event.type);
EXPECT_EQ(OmahaEvent::kResultError, default_event.result);
@@ -1456,54 +1331,58 @@ TEST(OmahaRequestActionTest, OmahaEventTest) {
EXPECT_EQ(ErrorCode::kError, error_event.error_code);
}
-TEST(OmahaRequestActionTest, PingTest) {
- for (int ping_only = 0; ping_only < 2; ping_only++) {
- NiceMock<PrefsMock> prefs;
- EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
- .Times(AnyNumber());
- EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
- // Add a few hours to the day difference to test no rounding, etc.
- int64_t five_days_ago =
- (Time::Now() - TimeDelta::FromHours(5 * 24 + 13)).ToInternalValue();
- int64_t six_days_ago =
- (Time::Now() - TimeDelta::FromHours(6 * 24 + 11)).ToInternalValue();
- EXPECT_CALL(prefs, GetInt64(kPrefsInstallDateDays, _))
- .WillOnce(DoAll(SetArgumentPointee<1>(0), Return(true)));
- EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _))
- .WillOnce(DoAll(SetArgumentPointee<1>(six_days_ago), Return(true)));
- EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _))
- .WillOnce(DoAll(SetArgumentPointee<1>(five_days_ago), Return(true)));
- vector<char> post_data;
- ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
- GetNoUpdateResponse(OmahaRequestParams::kAppId),
- -1,
- ping_only,
- ErrorCode::kSuccess,
- metrics::CheckResult::kUnset,
- metrics::CheckReaction::kUnset,
- metrics::DownloadErrorCode::kUnset,
- nullptr,
- &post_data));
- string post_str(&post_data[0], post_data.size());
- EXPECT_NE(post_str.find("<ping active=\"1\" a=\"6\" r=\"5\"></ping>"),
- string::npos);
- if (ping_only) {
- EXPECT_EQ(post_str.find("updatecheck"), string::npos);
- EXPECT_EQ(post_str.find("previousversion"), string::npos);
- } else {
- EXPECT_NE(post_str.find("updatecheck"), string::npos);
- EXPECT_NE(post_str.find("previousversion"), string::npos);
- }
+void OmahaRequestActionTest::PingTest(bool ping_only) {
+ NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
+ EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
+ .Times(AnyNumber());
+ EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
+ // Add a few hours to the day difference to test no rounding, etc.
+ int64_t five_days_ago =
+ (Time::Now() - TimeDelta::FromHours(5 * 24 + 13)).ToInternalValue();
+ int64_t six_days_ago =
+ (Time::Now() - TimeDelta::FromHours(6 * 24 + 11)).ToInternalValue();
+ EXPECT_CALL(prefs, GetInt64(kPrefsInstallDateDays, _))
+ .WillOnce(DoAll(SetArgumentPointee<1>(0), Return(true)));
+ EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _))
+ .WillOnce(DoAll(SetArgumentPointee<1>(six_days_ago), Return(true)));
+ EXPECT_CALL(prefs, GetInt64(kPrefsLastRollCallPingDay, _))
+ .WillOnce(DoAll(SetArgumentPointee<1>(five_days_ago), Return(true)));
+ vector<char> post_data;
+ ASSERT_TRUE(
+ TestUpdateCheck(nullptr, // request_params
+ GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
+ ping_only,
+ ErrorCode::kSuccess,
+ metrics::CheckResult::kUnset,
+ metrics::CheckReaction::kUnset,
+ metrics::DownloadErrorCode::kUnset,
+ nullptr,
+ &post_data));
+ string post_str(&post_data[0], post_data.size());
+ EXPECT_NE(post_str.find("<ping active=\"1\" a=\"6\" r=\"5\"></ping>"),
+ string::npos);
+ if (ping_only) {
+ EXPECT_EQ(post_str.find("updatecheck"), string::npos);
+ EXPECT_EQ(post_str.find("previousversion"), string::npos);
+ } else {
+ EXPECT_NE(post_str.find("updatecheck"), string::npos);
+ EXPECT_NE(post_str.find("previousversion"), string::npos);
}
}
-TEST(OmahaRequestActionTest, ActivePingTest) {
+TEST_F(OmahaRequestActionTest, PingTestSendOnlyAPing) {
+ PingTest(true /* ping_only */);
+}
+
+TEST_F(OmahaRequestActionTest, PingTestSendAlsoAnUpdateCheck) {
+ PingTest(false /* ping_only */);
+}
+
+TEST_F(OmahaRequestActionTest, ActivePingTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
.Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
@@ -1518,11 +1397,7 @@ TEST(OmahaRequestActionTest, ActivePingTest) {
.WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true)));
vector<char> post_data;
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponse(OmahaRequestParams::kAppId),
-1,
false, // ping_only
@@ -1537,8 +1412,9 @@ TEST(OmahaRequestActionTest, ActivePingTest) {
string::npos);
}
-TEST(OmahaRequestActionTest, RollCallPingTest) {
+TEST_F(OmahaRequestActionTest, RollCallPingTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
.Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
@@ -1553,11 +1429,7 @@ TEST(OmahaRequestActionTest, RollCallPingTest) {
.WillOnce(DoAll(SetArgumentPointee<1>(four_days_ago), Return(true)));
vector<char> post_data;
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponse(OmahaRequestParams::kAppId),
-1,
false, // ping_only
@@ -1572,8 +1444,9 @@ TEST(OmahaRequestActionTest, RollCallPingTest) {
string::npos);
}
-TEST(OmahaRequestActionTest, NoPingTest) {
+TEST_F(OmahaRequestActionTest, NoPingTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
.Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
@@ -1589,11 +1462,7 @@ TEST(OmahaRequestActionTest, NoPingTest) {
EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0);
vector<char> post_data;
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponse(OmahaRequestParams::kAppId),
-1,
false, // ping_only
@@ -1607,9 +1476,10 @@ TEST(OmahaRequestActionTest, NoPingTest) {
EXPECT_EQ(post_str.find("ping"), string::npos);
}
-TEST(OmahaRequestActionTest, IgnoreEmptyPingTest) {
+TEST_F(OmahaRequestActionTest, IgnoreEmptyPingTest) {
// This test ensures that we ignore empty ping only requests.
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
int64_t now = Time::Now().ToInternalValue();
EXPECT_CALL(prefs, GetInt64(kPrefsLastActivePingDay, _))
.WillOnce(DoAll(SetArgumentPointee<1>(now), Return(true)));
@@ -1619,11 +1489,7 @@ TEST(OmahaRequestActionTest, IgnoreEmptyPingTest) {
EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0);
vector<char> post_data;
EXPECT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetNoUpdateResponse(OmahaRequestParams::kAppId),
-1,
true, // ping_only
@@ -1636,8 +1502,9 @@ TEST(OmahaRequestActionTest, IgnoreEmptyPingTest) {
EXPECT_EQ(post_data.size(), 0);
}
-TEST(OmahaRequestActionTest, BackInTimePingTest) {
+TEST_F(OmahaRequestActionTest, BackInTimePingTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(kPrefsMetricsCheckLastReportingTime, _))
.Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
@@ -1655,11 +1522,7 @@ TEST(OmahaRequestActionTest, BackInTimePingTest) {
.WillOnce(Return(true));
vector<char> post_data;
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response "
"protocol=\"3.0\"><daystart elapsed_seconds=\"100\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
@@ -1676,7 +1539,7 @@ TEST(OmahaRequestActionTest, BackInTimePingTest) {
EXPECT_EQ(post_str.find("ping"), string::npos);
}
-TEST(OmahaRequestActionTest, LastPingDayUpdateTest) {
+TEST_F(OmahaRequestActionTest, LastPingDayUpdateTest) {
// This test checks that the action updates the last ping day to now
// minus 200 seconds with a slack of 5 seconds. Therefore, the test
// may fail if it runs for longer than 5 seconds. It shouldn't run
@@ -1686,6 +1549,7 @@ TEST(OmahaRequestActionTest, LastPingDayUpdateTest) {
int64_t midnight_slack =
(Time::Now() - TimeDelta::FromSeconds(195)).ToInternalValue();
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay,
@@ -1695,11 +1559,7 @@ TEST(OmahaRequestActionTest, LastPingDayUpdateTest) {
AllOf(Ge(midnight), Le(midnight_slack))))
.WillOnce(Return(true));
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response "
"protocol=\"3.0\"><daystart elapsed_seconds=\"200\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
@@ -1714,18 +1574,15 @@ TEST(OmahaRequestActionTest, LastPingDayUpdateTest) {
nullptr));
}
-TEST(OmahaRequestActionTest, NoElapsedSecondsTest) {
+TEST_F(OmahaRequestActionTest, NoElapsedSecondsTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0);
EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0);
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response "
"protocol=\"3.0\"><daystart blah=\"200\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
@@ -1740,18 +1597,15 @@ TEST(OmahaRequestActionTest, NoElapsedSecondsTest) {
nullptr));
}
-TEST(OmahaRequestActionTest, BadElapsedSecondsTest) {
+TEST_F(OmahaRequestActionTest, BadElapsedSecondsTest) {
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
EXPECT_CALL(prefs, GetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(_, _)).Times(AnyNumber());
EXPECT_CALL(prefs, SetInt64(kPrefsLastActivePingDay, _)).Times(0);
EXPECT_CALL(prefs, SetInt64(kPrefsLastRollCallPingDay, _)).Times(0);
ASSERT_TRUE(
- TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response "
"protocol=\"3.0\"><daystart elapsed_seconds=\"x\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
@@ -1766,13 +1620,9 @@ TEST(OmahaRequestActionTest, BadElapsedSecondsTest) {
nullptr));
}
-TEST(OmahaRequestActionTest, NoUniqueIDTest) {
+TEST_F(OmahaRequestActionTest, NoUniqueIDTest) {
vector<char> post_data;
- ASSERT_FALSE(TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ ASSERT_FALSE(TestUpdateCheck(nullptr, // request_params
"invalid xml>",
-1,
false, // ping_only
@@ -1788,16 +1638,12 @@ TEST(OmahaRequestActionTest, NoUniqueIDTest) {
EXPECT_EQ(post_str.find("userid="), string::npos);
}
-TEST(OmahaRequestActionTest, NetworkFailureTest) {
+TEST_F(OmahaRequestActionTest, NetworkFailureTest) {
OmahaResponse response;
const int http_error_code =
static_cast<int>(ErrorCode::kOmahaRequestHTTPResponseBase) + 501;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"",
501,
false, // ping_only
@@ -1810,16 +1656,12 @@ TEST(OmahaRequestActionTest, NetworkFailureTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, NetworkFailureBadHTTPCodeTest) {
+TEST_F(OmahaRequestActionTest, NetworkFailureBadHTTPCodeTest) {
OmahaResponse response;
const int http_error_code =
static_cast<int>(ErrorCode::kOmahaRequestHTTPResponseBase) + 999;
ASSERT_FALSE(
- TestUpdateCheck(nullptr, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
"",
1500,
false, // ping_only
@@ -1832,27 +1674,14 @@ TEST(OmahaRequestActionTest, NetworkFailureBadHTTPCodeTest) {
EXPECT_FALSE(response.update_exists);
}
-TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsPersistedFirstTime) {
+TEST_F(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsPersistedFirstTime) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta().FromDays(1));
params.set_update_check_count_wait_enabled(false);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
ASSERT_FALSE(TestUpdateCheck(
- &prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
@@ -1878,18 +1707,14 @@ TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsPersistedFirstTime) {
nullptr));
int64_t timestamp = 0;
- ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateFirstSeenAt, &timestamp));
+ ASSERT_TRUE(fake_prefs_.GetInt64(kPrefsUpdateFirstSeenAt, &timestamp));
ASSERT_GT(timestamp, 0);
EXPECT_FALSE(response.update_exists);
// Verify if we are interactive check we don't defer.
params.set_interactive(true);
ASSERT_TRUE(
- TestUpdateCheck(&prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ TestUpdateCheck(&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -1915,32 +1740,20 @@ TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsPersistedFirstTime) {
EXPECT_TRUE(response.update_exists);
}
-TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsUsedIfAlreadyPresent) {
+TEST_F(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsUsedIfAlreadyPresent) {
OmahaResponse response;
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_wall_clock_based_wait_enabled(true);
params.set_waiting_period(TimeDelta().FromDays(1));
params.set_update_check_count_wait_enabled(false);
- string prefs_dir;
- EXPECT_TRUE(utils::MakeTempDirectory("ue_ut_prefs.XXXXXX",
- &prefs_dir));
- ScopedDirRemover temp_dir_remover(prefs_dir);
-
- Prefs prefs;
- LOG_IF(ERROR, !prefs.Init(base::FilePath(prefs_dir)))
- << "Failed to initialize preferences.";
-
// Set the timestamp to a very old value such that it exceeds the
// waiting period set above.
Time t1;
Time::FromString("1/1/2012", &t1);
- ASSERT_TRUE(prefs.SetInt64(kPrefsUpdateFirstSeenAt, t1.ToInternalValue()));
+ ASSERT_TRUE(fake_prefs_.SetInt64(
+ kPrefsUpdateFirstSeenAt, t1.ToInternalValue()));
ASSERT_TRUE(TestUpdateCheck(
- &prefs, // prefs
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
&params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
@@ -1969,11 +1782,11 @@ TEST(OmahaRequestActionTest, TestUpdateFirstSeenAtGetsUsedIfAlreadyPresent) {
// Make sure the timestamp t1 is unchanged showing that it was reused.
int64_t timestamp = 0;
- ASSERT_TRUE(prefs.GetInt64(kPrefsUpdateFirstSeenAt, &timestamp));
+ ASSERT_TRUE(fake_prefs_.GetInt64(kPrefsUpdateFirstSeenAt, &timestamp));
ASSERT_TRUE(timestamp == t1.ToInternalValue());
}
-TEST(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
+TEST_F(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
// Create a uniquely named test directory.
string test_dir;
ASSERT_TRUE(utils::MakeTempDirectory(
@@ -1984,6 +1797,7 @@ TEST(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
kStatefulPartition + "/etc"));
vector<char> post_data;
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
ASSERT_TRUE(WriteFileString(
test_dir + "/etc/lsb-release",
"CHROMEOS_RELEASE_APPID={11111111-1111-1111-1111-111111111111}\n"
@@ -1993,7 +1807,7 @@ TEST(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
test_dir + kStatefulPartition + "/etc/lsb-release",
"CHROMEOS_IS_POWERWASH_ALLOWED=true\n"
"CHROMEOS_RELEASE_TRACK=stable-channel\n"));
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_root(test_dir);
params.SetLockDown(false);
params.Init("1.2.3.4", "", 0);
@@ -2001,11 +1815,7 @@ TEST(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
EXPECT_EQ("stable-channel", params.target_channel());
EXPECT_TRUE(params.to_more_stable_channel());
EXPECT_TRUE(params.is_powerwash_allowed());
- ASSERT_FALSE(TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ ASSERT_FALSE(TestUpdateCheck(&params,
"invalid xml>",
-1,
false, // ping_only
@@ -2025,7 +1835,7 @@ TEST(OmahaRequestActionTest, TestChangingToMoreStableChannel) {
ASSERT_TRUE(utils::RecursiveUnlinkDir(test_dir));
}
-TEST(OmahaRequestActionTest, TestChangingToLessStableChannel) {
+TEST_F(OmahaRequestActionTest, TestChangingToLessStableChannel) {
// Create a uniquely named test directory.
string test_dir;
ASSERT_TRUE(utils::MakeTempDirectory(
@@ -2036,6 +1846,7 @@ TEST(OmahaRequestActionTest, TestChangingToLessStableChannel) {
kStatefulPartition + "/etc"));
vector<char> post_data;
NiceMock<PrefsMock> prefs;
+ fake_system_state_.set_prefs(&prefs);
ASSERT_TRUE(WriteFileString(
test_dir + "/etc/lsb-release",
"CHROMEOS_RELEASE_APPID={11111111-1111-1111-1111-111111111111}\n"
@@ -2044,7 +1855,7 @@ TEST(OmahaRequestActionTest, TestChangingToLessStableChannel) {
ASSERT_TRUE(WriteFileString(
test_dir + kStatefulPartition + "/etc/lsb-release",
"CHROMEOS_RELEASE_TRACK=canary-channel\n"));
- OmahaRequestParams params = kDefaultTestParams;
+ OmahaRequestParams params = request_params_;
params.set_root(test_dir);
params.SetLockDown(false);
params.Init("5.6.7.8", "", 0);
@@ -2052,11 +1863,7 @@ TEST(OmahaRequestActionTest, TestChangingToLessStableChannel) {
EXPECT_EQ("canary-channel", params.target_channel());
EXPECT_FALSE(params.to_more_stable_channel());
EXPECT_FALSE(params.is_powerwash_allowed());
- ASSERT_FALSE(TestUpdateCheck(&prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &params,
+ ASSERT_FALSE(TestUpdateCheck(&params,
"invalid xml>",
-1,
false, // ping_only
@@ -2073,29 +1880,30 @@ TEST(OmahaRequestActionTest, TestChangingToLessStableChannel) {
"version=\"5.6.7.8\" "
"track=\"canary-channel\" from_track=\"stable-channel\""));
EXPECT_EQ(string::npos, post_str.find("from_version"));
-
- ASSERT_TRUE(utils::RecursiveUnlinkDir(test_dir));
}
-void P2PTest(bool initial_allow_p2p_for_downloading,
- bool initial_allow_p2p_for_sharing,
- bool omaha_disable_p2p_for_downloading,
- bool omaha_disable_p2p_for_sharing,
- bool payload_state_allow_p2p_attempt,
- bool expect_p2p_client_lookup,
- const string& p2p_client_result_url,
- bool expected_allow_p2p_for_downloading,
- bool expected_allow_p2p_for_sharing,
- const string& expected_p2p_url) {
+void OmahaRequestActionTest::P2PTest(
+ bool initial_allow_p2p_for_downloading,
+ bool initial_allow_p2p_for_sharing,
+ bool omaha_disable_p2p_for_downloading,
+ bool omaha_disable_p2p_for_sharing,
+ bool payload_state_allow_p2p_attempt,
+ bool expect_p2p_client_lookup,
+ const string& p2p_client_result_url,
+ bool expected_allow_p2p_for_downloading,
+ bool expected_allow_p2p_for_sharing,
+ const string& expected_p2p_url) {
OmahaResponse response;
- OmahaRequestParams request_params = kDefaultTestParams;
+ OmahaRequestParams request_params = request_params_;
request_params.set_use_p2p_for_downloading(initial_allow_p2p_for_downloading);
request_params.set_use_p2p_for_sharing(initial_allow_p2p_for_sharing);
MockPayloadState mock_payload_state;
+ fake_system_state_.set_payload_state(&mock_payload_state);
EXPECT_CALL(mock_payload_state, P2PAttemptAllowed())
.WillRepeatedly(Return(payload_state_allow_p2p_attempt));
MockP2PManager mock_p2p_manager;
+ fake_system_state_.set_p2p_manager(&mock_p2p_manager);
mock_p2p_manager.fake().SetLookupUrlForFileResult(p2p_client_result_url);
TimeDelta timeout = TimeDelta::FromSeconds(kMaxP2PNetworkWaitTimeSeconds);
@@ -2103,11 +1911,7 @@ void P2PTest(bool initial_allow_p2p_for_downloading,
.Times(expect_p2p_client_lookup ? 1 : 0);
ASSERT_TRUE(
- TestUpdateCheck(nullptr, // prefs
- &mock_payload_state,
- &mock_p2p_manager,
- nullptr, // connection_manager
- &request_params,
+ TestUpdateCheck(&request_params,
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -2146,7 +1950,7 @@ void P2PTest(bool initial_allow_p2p_for_downloading,
EXPECT_EQ(request_params.p2p_url(), expected_p2p_url);
}
-TEST(OmahaRequestActionTest, P2PWithPeer) {
+TEST_F(OmahaRequestActionTest, P2PWithPeer) {
P2PTest(true, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
false, // omaha_disable_p2p_for_downloading
@@ -2159,7 +1963,7 @@ TEST(OmahaRequestActionTest, P2PWithPeer) {
"http://1.3.5.7/p2p"); // expected_p2p_url
}
-TEST(OmahaRequestActionTest, P2PWithoutPeer) {
+TEST_F(OmahaRequestActionTest, P2PWithoutPeer) {
P2PTest(true, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
false, // omaha_disable_p2p_for_downloading
@@ -2172,7 +1976,7 @@ TEST(OmahaRequestActionTest, P2PWithoutPeer) {
""); // expected_p2p_url
}
-TEST(OmahaRequestActionTest, P2PDownloadNotAllowed) {
+TEST_F(OmahaRequestActionTest, P2PDownloadNotAllowed) {
P2PTest(false, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
false, // omaha_disable_p2p_for_downloading
@@ -2185,7 +1989,7 @@ TEST(OmahaRequestActionTest, P2PDownloadNotAllowed) {
""); // expected_p2p_url
}
-TEST(OmahaRequestActionTest, P2PWithPeerDownloadDisabledByOmaha) {
+TEST_F(OmahaRequestActionTest, P2PWithPeerDownloadDisabledByOmaha) {
P2PTest(true, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
true, // omaha_disable_p2p_for_downloading
@@ -2198,7 +2002,7 @@ TEST(OmahaRequestActionTest, P2PWithPeerDownloadDisabledByOmaha) {
""); // expected_p2p_url
}
-TEST(OmahaRequestActionTest, P2PWithPeerSharingDisabledByOmaha) {
+TEST_F(OmahaRequestActionTest, P2PWithPeerSharingDisabledByOmaha) {
P2PTest(true, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
false, // omaha_disable_p2p_for_downloading
@@ -2211,7 +2015,7 @@ TEST(OmahaRequestActionTest, P2PWithPeerSharingDisabledByOmaha) {
"http://1.3.5.7/p2p"); // expected_p2p_url
}
-TEST(OmahaRequestActionTest, P2PWithPeerBothDisabledByOmaha) {
+TEST_F(OmahaRequestActionTest, P2PWithPeerBothDisabledByOmaha) {
P2PTest(true, // initial_allow_p2p_for_downloading
true, // initial_allow_p2p_for_sharing
true, // omaha_disable_p2p_for_downloading
@@ -2224,15 +2028,11 @@ TEST(OmahaRequestActionTest, P2PWithPeerBothDisabledByOmaha) {
""); // expected_p2p_url
}
-bool InstallDateParseHelper(const std::string &elapsed_days,
- PrefsInterface* prefs,
- OmahaResponse *response) {
+bool OmahaRequestActionTest::InstallDateParseHelper(
+ const std::string &elapsed_days,
+ OmahaResponse *response) {
return
- TestUpdateCheck(prefs,
- nullptr, // payload_state
- nullptr, // p2p_manager
- nullptr, // connection_manager
- &kDefaultTestParams,
+ TestUpdateCheck(nullptr, // request_params
GetUpdateResponse2(OmahaRequestParams::kAppId,
"1.2.3.4", // version
"http://more/info",
@@ -2257,120 +2057,95 @@ bool InstallDateParseHelper(const std::string &elapsed_days,
nullptr);
}
-TEST(OmahaRequestActionTest, ParseInstallDateFromResponse) {
+TEST_F(OmahaRequestActionTest, ParseInstallDateFromResponse) {
OmahaResponse response;
- string temp_dir;
- Prefs prefs;
- EXPECT_TRUE(utils::MakeTempDirectory("ParseInstallDateFromResponse.XXXXXX",
- &temp_dir));
- prefs.Init(base::FilePath(temp_dir));
// Check that we parse elapsed_days in the Omaha Response correctly.
// and that the kPrefsInstallDateDays value is written to.
- EXPECT_FALSE(prefs.Exists(kPrefsInstallDateDays));
- EXPECT_TRUE(InstallDateParseHelper("42", &prefs, &response));
+ EXPECT_FALSE(fake_prefs_.Exists(kPrefsInstallDateDays));
+ EXPECT_TRUE(InstallDateParseHelper("42", &response));
EXPECT_TRUE(response.update_exists);
EXPECT_EQ(42, response.install_date_days);
- EXPECT_TRUE(prefs.Exists(kPrefsInstallDateDays));
+ EXPECT_TRUE(fake_prefs_.Exists(kPrefsInstallDateDays));
int64_t prefs_days;
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
EXPECT_EQ(prefs_days, 42);
// If there already is a value set, we shouldn't do anything.
- EXPECT_TRUE(InstallDateParseHelper("7", &prefs, &response));
+ EXPECT_TRUE(InstallDateParseHelper("7", &response));
EXPECT_TRUE(response.update_exists);
EXPECT_EQ(7, response.install_date_days);
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
EXPECT_EQ(prefs_days, 42);
// Note that elapsed_days is not necessarily divisible by 7 so check
// that we round down correctly when populating kPrefsInstallDateDays.
- EXPECT_TRUE(prefs.Delete(kPrefsInstallDateDays));
- EXPECT_TRUE(InstallDateParseHelper("23", &prefs, &response));
+ EXPECT_TRUE(fake_prefs_.Delete(kPrefsInstallDateDays));
+ EXPECT_TRUE(InstallDateParseHelper("23", &response));
EXPECT_TRUE(response.update_exists);
EXPECT_EQ(23, response.install_date_days);
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
EXPECT_EQ(prefs_days, 21);
// Check that we correctly handle elapsed_days not being included in
// the Omaha Response.
- EXPECT_TRUE(InstallDateParseHelper("", &prefs, &response));
+ EXPECT_TRUE(InstallDateParseHelper("", &response));
EXPECT_TRUE(response.update_exists);
EXPECT_EQ(-1, response.install_date_days);
-
- EXPECT_TRUE(utils::RecursiveUnlinkDir(temp_dir));
}
-TEST(OmahaRequestActionTest, GetInstallDate) {
- string temp_dir;
- Prefs prefs;
- EXPECT_TRUE(utils::MakeTempDirectory("GetInstallDate.XXXXXX",
- &temp_dir));
- prefs.Init(base::FilePath(temp_dir));
-
- // If there is no prefs and OOBE is not complete, we should not
- // report anything to Omaha.
- {
- FakeSystemState system_state;
- system_state.set_prefs(&prefs);
- EXPECT_EQ(OmahaRequestAction::GetInstallDate(&system_state), -1);
- EXPECT_FALSE(prefs.Exists(kPrefsInstallDateDays));
- }
-
- // If OOBE is complete and happened on a valid date (e.g. after Jan
- // 1 2007 0:00 PST), that date should be used and written to
- // prefs. However, first try with an invalid date and check we do
- // nothing.
- {
- FakeSystemState fake_system_state;
- fake_system_state.set_prefs(&prefs);
-
- Time oobe_date = Time::FromTimeT(42); // Dec 31, 1969 16:00:42 PST.
- fake_system_state.fake_hardware()->SetIsOOBEComplete(oobe_date);
- EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state), -1);
- EXPECT_FALSE(prefs.Exists(kPrefsInstallDateDays));
- }
-
- // Then check with a valid date. The date Jan 20, 2007 0:00 PST
- // should yield an InstallDate of 14.
- {
- FakeSystemState fake_system_state;
- fake_system_state.set_prefs(&prefs);
+// If there is no prefs and OOBE is not complete, we should not
+// report anything to Omaha.
+TEST_F(OmahaRequestActionTest, GetInstallDateWhenNoPrefsNorOOBE) {
+ EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state_), -1);
+ EXPECT_FALSE(fake_prefs_.Exists(kPrefsInstallDateDays));
+}
- Time oobe_date = Time::FromTimeT(1169280000); // Jan 20, 2007 0:00 PST.
- fake_system_state.fake_hardware()->SetIsOOBEComplete(oobe_date);
- EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state), 14);
- EXPECT_TRUE(prefs.Exists(kPrefsInstallDateDays));
+// If OOBE is complete and happened on a valid date (e.g. after Jan
+// 1 2007 0:00 PST), that date should be used and written to
+// prefs. However, first try with an invalid date and check we do
+// nothing.
+TEST_F(OmahaRequestActionTest, GetInstallDateWhenOOBECompletedWithInvalidDate) {
+ Time oobe_date = Time::FromTimeT(42); // Dec 31, 1969 16:00:42 PST.
+ fake_system_state_.fake_hardware()->SetIsOOBEComplete(oobe_date);
+ EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state_), -1);
+ EXPECT_FALSE(fake_prefs_.Exists(kPrefsInstallDateDays));
+}
- int64_t prefs_days;
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
- EXPECT_EQ(prefs_days, 14);
- }
+// Then check with a valid date. The date Jan 20, 2007 0:00 PST
+// should yield an InstallDate of 14.
+TEST_F(OmahaRequestActionTest, GetInstallDateWhenOOBECompletedWithValidDate) {
+ Time oobe_date = Time::FromTimeT(1169280000); // Jan 20, 2007 0:00 PST.
+ fake_system_state_.fake_hardware()->SetIsOOBEComplete(oobe_date);
+ EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state_), 14);
+ EXPECT_TRUE(fake_prefs_.Exists(kPrefsInstallDateDays));
- // Now that we have a valid date in prefs, check that we keep using
- // that even if OOBE date reports something else. The date Jan 30,
- // 2007 0:00 PST should yield an InstallDate of 28... but since
- // there's a prefs file, we should still get 14.
- {
- FakeSystemState fake_system_state;
- fake_system_state.set_prefs(&prefs);
+ int64_t prefs_days;
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_EQ(prefs_days, 14);
+}
- Time oobe_date = Time::FromTimeT(1170144000); // Jan 30, 2007 0:00 PST.
- fake_system_state.fake_hardware()->SetIsOOBEComplete(oobe_date);
- EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state), 14);
+// Now that we have a valid date in prefs, check that we keep using
+// that even if OOBE date reports something else. The date Jan 30,
+// 2007 0:00 PST should yield an InstallDate of 28... but since
+// there's a prefs file, we should still get 14.
+TEST_F(OmahaRequestActionTest, GetInstallDateWhenOOBECompletedDateChanges) {
+ // Set a valid date in the prefs first.
+ EXPECT_TRUE(fake_prefs_.SetInt64(kPrefsInstallDateDays, 14));
- int64_t prefs_days;
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
- EXPECT_EQ(prefs_days, 14);
+ Time oobe_date = Time::FromTimeT(1170144000); // Jan 30, 2007 0:00 PST.
+ fake_system_state_.fake_hardware()->SetIsOOBEComplete(oobe_date);
+ EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state_), 14);
- // If we delete the prefs file, we should get 28 days.
- EXPECT_TRUE(prefs.Delete(kPrefsInstallDateDays));
- EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state), 28);
- EXPECT_TRUE(prefs.GetInt64(kPrefsInstallDateDays, &prefs_days));
- EXPECT_EQ(prefs_days, 28);
- }
-
- EXPECT_TRUE(utils::RecursiveUnlinkDir(temp_dir));
+ int64_t prefs_days;
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_EQ(prefs_days, 14);
+
+ // If we delete the prefs file, we should get 28 days.
+ EXPECT_TRUE(fake_prefs_.Delete(kPrefsInstallDateDays));
+ EXPECT_EQ(OmahaRequestAction::GetInstallDate(&fake_system_state_), 28);
+ EXPECT_TRUE(fake_prefs_.GetInt64(kPrefsInstallDateDays, &prefs_days));
+ EXPECT_EQ(prefs_days, 28);
}
} // namespace chromeos_update_engine