298
298
EXPECT_TRUE(payload_state.Initialize(&mock_system_state));
300
// The first response doesn't send an abandoned event.
301
EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendToUMA(
302
"Installer.UpdatesAbandonedEventCount", 0, _, _, _)).Times(0);
300
304
// Set the first response.
301
305
SetupPayloadStateWith2Urls("Hash5823", true, &payload_state, &response);
302
306
EXPECT_EQ(1, payload_state.GetNumResponsesSeen());
307
311
EXPECT_EQ("https://test", payload_state.GetCurrentUrl());
308
312
EXPECT_EQ(1, payload_state.GetUrlSwitchCount());
314
EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendToUMA(
315
"Installer.UpdatesAbandonedEventCount", 1, _, _, _));
310
317
// Now, slightly change the response and set it again.
311
318
SetupPayloadStateWith2Urls("Hash8225", true, &payload_state, &response);
312
319
EXPECT_EQ(2, payload_state.GetNumResponsesSeen());
321
// Fake an error again.
322
payload_state.UpdateFailed(error);
323
EXPECT_EQ("https://test", payload_state.GetCurrentUrl());
324
EXPECT_EQ(1, payload_state.GetUrlSwitchCount());
326
EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendToUMA(
327
"Installer.UpdatesAbandonedEventCount", 2, _, _, _));
329
// Return a third different response.
330
SetupPayloadStateWith2Urls("Hash9999", true, &payload_state, &response);
331
EXPECT_EQ(3, payload_state.GetNumResponsesSeen());
314
333
// Make sure the url index was reset to 0 because of the new response.
315
334
EXPECT_EQ("http://test", payload_state.GetCurrentUrl());
316
335
EXPECT_EQ(0, payload_state.GetUrlFailureCount());