Commit 1499db87 authored by Tommy Nyquist's avatar Tommy Nyquist Committed by Commit Bot

[Android] Fix issue with Omaha VersionConfig not being stored.

An earlier refactoring CL had a side effect that lead to the VersionConfig
data not being stored to disk anymore, which meant there was never any
data available.

This CL adds back storing the VersionConfig the same times as the code
before the refactor did.

Two regression tests are also added to ensure we continue to store the data
going forward.

Bug: 1095755
Change-Id: Id285758db0d37e0ef05cefe51c18bd4895b2744e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2317170Reviewed-by: default avatarJoshua Pawlicki <waffles@chromium.org>
Commit-Queue: Tommy Nyquist <nyquist@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791435}
parent 199fb5f4
......@@ -323,9 +323,9 @@ public class OmahaBase {
}
protected boolean generateAndPostRequest(long currentTimestamp, String sessionID) {
return generateAndPostRequest(
currentTimestamp, sessionID, mCurrentRequest, mTimestampOfInstall)
!= null;
mVersionConfig = generateAndPostRequest(
currentTimestamp, sessionID, mCurrentRequest, mTimestampOfInstall);
return mVersionConfig != null;
}
protected VersionConfig generateAndPostRequest(long currentTimestamp, String sessionID,
......
......@@ -336,6 +336,65 @@ public class OmahaBaseTest {
mDelegate.mTimestampsOnSaveState);
}
@Test
@SmallTest
@Feature({"Omaha"})
public void testPipelineFreshInstallUpdatedAvailable_crbug_1095755() {
final long now = 11684;
final String updateVersion = "10.0.0.0";
mDelegate = new MockOmahaDelegate(mContext, DeviceType.HANDSET, InstallSource.ORGANIC);
mDelegate.getScheduler().setCurrentTime(now);
// Trigger Omaha.
mOmahaBase = createOmahaBase();
mOmahaBase.setUpdateVersion(updateVersion);
mOmahaBase.run();
Assert.assertEquals(2, mDelegate.mGenerateAndPostRequestResults.size());
Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(1));
SharedPreferences sharedPreferences = OmahaBase.getSharedPreferences();
String storedLastVersion = sharedPreferences.getString(OmahaBase.PREF_LATEST_VERSION, null);
String storedMarketURL = sharedPreferences.getString(OmahaBase.PREF_MARKET_URL, null);
Assert.assertEquals(updateVersion, storedLastVersion);
Assert.assertEquals(MockConnection.STRIPPED_MARKET_URL, storedMarketURL);
}
@Test
@SmallTest
@Feature({"Omaha"})
public void testPipelineRegularPingUpdateAvailable_crbug_1095755() {
final long now = 11684;
String updateVersion = "10.0.0.0";
mDelegate = new MockOmahaDelegate(mContext, DeviceType.HANDSET, InstallSource.ORGANIC);
mDelegate.getScheduler().setCurrentTime(now);
// Record that an install event has already been sent and that we're due for a new request.
SharedPreferences.Editor editor = OmahaBase.getSharedPreferences().edit();
editor.putBoolean(OmahaBase.PREF_SEND_INSTALL_EVENT, false);
editor.putLong(OmahaBase.PREF_TIMESTAMP_FOR_NEW_REQUEST, now);
editor.putLong(OmahaBase.PREF_TIMESTAMP_FOR_NEXT_POST_ATTEMPT, now);
editor.apply();
// Trigger Omaha.
mOmahaBase = createOmahaBase();
mOmahaBase.setUpdateVersion(updateVersion);
mOmahaBase.run();
// Only the regular ping should have been sent.
Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
SharedPreferences sharedPreferences = OmahaBase.getSharedPreferences();
String storedLastVersion = sharedPreferences.getString(OmahaBase.PREF_LATEST_VERSION, null);
String storedMarketURL = sharedPreferences.getString(OmahaBase.PREF_MARKET_URL, null);
Assert.assertEquals(updateVersion, storedLastVersion);
Assert.assertEquals(MockConnection.STRIPPED_MARKET_URL, storedMarketURL);
}
@Test
@SmallTest
@Feature({"Omaha"})
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment