| Index: chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
|
| index 647140753261d35ab6ea42e1d0a242f9feb25930..6a5a5daec43b97a137cca62f70d18a0d1c385186 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java
|
| @@ -6,11 +6,18 @@ package org.chromium.chrome.browser.omaha;
|
|
|
| import android.content.Context;
|
| import android.content.SharedPreferences;
|
| +import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.SmallTest;
|
| -import android.test.InstrumentationTestCase;
|
| +
|
| +import org.junit.After;
|
| +import org.junit.Assert;
|
| +import org.junit.Before;
|
| +import org.junit.Test;
|
| +import org.junit.runner.RunWith;
|
|
|
| import org.chromium.base.test.util.AdvancedMockContext;
|
| import org.chromium.base.test.util.Feature;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| import org.chromium.chrome.test.omaha.MockRequestGenerator;
|
| import org.chromium.chrome.test.omaha.MockRequestGenerator.DeviceType;
|
|
|
| @@ -33,7 +40,8 @@ import java.util.List;
|
| * provides a way to hook into functions to return values that would normally be provided by the
|
| * system, such as whether Chrome was installed through the system image.
|
| */
|
| -public class OmahaBaseTest extends InstrumentationTestCase {
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +public class OmahaBaseTest {
|
| private static class TimestampPair {
|
| public long timestampNextRequest;
|
| public long timestampNextPost;
|
| @@ -154,18 +162,16 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| return omahaClient;
|
| }
|
|
|
| - @Override
|
| - protected void setUp() throws Exception {
|
| - super.setUp();
|
| - Context targetContext = getInstrumentation().getTargetContext();
|
| + @Before
|
| + public void setUp() throws Exception {
|
| + Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
| OmahaBase.setIsDisabledForTesting(false);
|
| mContext = new AdvancedMockContext(targetContext);
|
| }
|
|
|
| - @Override
|
| + @After
|
| public void tearDown() throws Exception {
|
| OmahaBase.setIsDisabledForTesting(true);
|
| - super.tearDown();
|
| }
|
|
|
| private class MockOmahaBase extends OmahaBase {
|
| @@ -221,12 +227,13 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mSendInstallEvent, mConnectionTimesOut);
|
| mMockConnections.addLast(connection);
|
| } catch (MalformedURLException e) {
|
| - fail("Caught a malformed URL exception: " + e);
|
| + Assert.fail("Caught a malformed URL exception: " + e);
|
| }
|
| return connection;
|
| }
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testPipelineFreshInstall() {
|
| @@ -241,20 +248,21 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
|
|
| // A fresh install results in two requests to the Omaha server: one for the install request
|
| // and one for the ping request.
|
| - assertTrue(mDelegate.mInstallEventWasSent);
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(2, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(1));
|
| + Assert.assertTrue(mDelegate.mInstallEventWasSent);
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(2, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(1));
|
|
|
| // Successful requests mean that the next scheduled event should be checking for when the
|
| // user is active.
|
| - assertEquals(now + OmahaBase.MS_BETWEEN_REQUESTS, mDelegate.mNextScheduledTimestamp);
|
| + Assert.assertEquals(now + OmahaBase.MS_BETWEEN_REQUESTS, mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(now + OmahaBase.MS_BETWEEN_REQUESTS, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testPipelineRegularPing() {
|
| @@ -275,19 +283,20 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Only the regular ping should have been sent.
|
| - assertFalse(mDelegate.mInstallEventWasSent);
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertFalse(mDelegate.mInstallEventWasSent);
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
|
|
| // Successful requests mean that the next scheduled event should be checking for when the
|
| // user is active.
|
| - assertEquals(now + OmahaBase.MS_BETWEEN_REQUESTS, mDelegate.mNextScheduledTimestamp);
|
| + Assert.assertEquals(now + OmahaBase.MS_BETWEEN_REQUESTS, mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(now + OmahaBase.MS_BETWEEN_REQUESTS, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testTooEarlyToPing() {
|
| @@ -306,16 +315,17 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Nothing should have been POSTed.
|
| - assertEquals(0, mDelegate.mPostResults.size());
|
| - assertEquals(0, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertEquals(0, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(0, mDelegate.mGenerateAndPostRequestResults.size());
|
|
|
| // The next scheduled event is the request generation. Because there was nothing to POST,
|
| // its timestamp should have remained unchanged and shouldn't have been considered when the
|
| // new alarm was scheduled.
|
| - assertEquals(later, mDelegate.mNextScheduledTimestamp);
|
| + Assert.assertEquals(later, mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(later, now, mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testTooEarlyToPostExistingRequest() {
|
| @@ -344,19 +354,21 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Request generation code should be skipped.
|
| - assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
| + Assert.assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
|
|
| // Should be too early to post, causing it to be rescheduled.
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SCHEDULED, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(0, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(
|
| + OmahaBase.POST_RESULT_SCHEDULED, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(0, mDelegate.mGenerateAndPostRequestResults.size());
|
|
|
| // The next scheduled event is the POST. Because request generation code wasn't run, the
|
| // timestamp for it shouldn't have changed.
|
| - assertEquals(timeSendNewPost, mDelegate.mNextScheduledTimestamp);
|
| + Assert.assertEquals(timeSendNewPost, mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(timeSendNewRequest, timeSendNewPost, mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testPostExistingRequestSuccessfully() {
|
| @@ -386,21 +398,22 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Registering code shouldn't have fired.
|
| - assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
| + Assert.assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
|
|
| // Because we didn't send an install event, only one POST should have occurred.
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
|
|
| // The next scheduled event is the request generation because there is nothing to POST.
|
| // A successful POST adjusts all timestamps for the current time.
|
| - assertEquals(timeRegisterNewRequest, mDelegate.mNextScheduledTimestamp);
|
| + Assert.assertEquals(timeRegisterNewRequest, mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(now + OmahaBase.MS_BETWEEN_REQUESTS, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testPostExistingButFails() {
|
| @@ -431,22 +444,23 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Registering code shouldn't have fired.
|
| - assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
| + Assert.assertNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
|
|
| // Because we didn't send an install event, only one POST should have occurred.
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_FAILED, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertFalse(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_FAILED, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertFalse(mDelegate.mGenerateAndPostRequestResults.get(0));
|
|
|
| // The next scheduled event should be the POST event, which is delayed by the base delay
|
| // because no failures have happened yet.
|
| - assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextPost,
|
| + Assert.assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextPost,
|
| mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(timeRegisterNewRequest, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testTimestampWithinBounds() {
|
| @@ -469,21 +483,22 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mOmahaBase.run();
|
|
|
| // Request generation code should fire.
|
| - assertNotNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
| + Assert.assertNotNull(mDelegate.mTimestampsOnRegisterNewRequest);
|
|
|
| // Because we didn't send an install event, only one POST should have occurred.
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
|
|
| // The next scheduled event should be the timestamp for a new request generation.
|
| - assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextRequest,
|
| + Assert.assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextRequest,
|
| mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(now + OmahaBase.MS_BETWEEN_REQUESTS, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| @Feature({"Omaha"})
|
| public void testOverdueRequestCausesNewRegistration() {
|
| @@ -516,13 +531,13 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| mDelegate.mTimestampsOnRegisterNewRequest);
|
|
|
| // Because we didn't send an install event, only one POST should have occurred.
|
| - assertEquals(1, mDelegate.mPostResults.size());
|
| - assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| - assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| - assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
| + Assert.assertEquals(1, mDelegate.mPostResults.size());
|
| + Assert.assertEquals(OmahaBase.POST_RESULT_SENT, mDelegate.mPostResults.get(0).intValue());
|
| + Assert.assertEquals(1, mDelegate.mGenerateAndPostRequestResults.size());
|
| + Assert.assertTrue(mDelegate.mGenerateAndPostRequestResults.get(0));
|
|
|
| // The next scheduled event should be the registration event.
|
| - assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextRequest,
|
| + Assert.assertEquals(mDelegate.mTimestampsOnSaveState.timestampNextRequest,
|
| mDelegate.mNextScheduledTimestamp);
|
| checkTimestamps(now + OmahaBase.MS_BETWEEN_REQUESTS, now + OmahaBase.MS_POST_BASE_DELAY,
|
| mDelegate.mTimestampsOnSaveState);
|
| @@ -530,8 +545,8 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
|
|
| private void checkTimestamps(
|
| long expectedRequestTimestamp, long expectedPostTimestamp, TimestampPair timestamps) {
|
| - assertEquals(expectedRequestTimestamp, timestamps.timestampNextRequest);
|
| - assertEquals(expectedPostTimestamp, timestamps.timestampNextPost);
|
| + Assert.assertEquals(expectedRequestTimestamp, timestamps.timestampNextRequest);
|
| + Assert.assertEquals(expectedPostTimestamp, timestamps.timestampNextPost);
|
| }
|
|
|
| /**
|
| @@ -562,7 +577,7 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| MockConnection(URL url, boolean usingTablet, boolean sendValidResponse,
|
| boolean sendInstallEvent, boolean connectionTimesOut) {
|
| super(url);
|
| - assertEquals(MockRequestGenerator.SERVER_URL, url.toString());
|
| + Assert.assertEquals(MockRequestGenerator.SERVER_URL, url.toString());
|
|
|
| String mockResponse = buildServerResponseString(usingTablet, sendInstallEvent);
|
| mOutputStream = new ByteArrayOutputStream();
|
| @@ -628,7 +643,7 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
|
|
| @Override
|
| public void setDoOutput(boolean value) throws IllegalAccessError {
|
| - assertTrue("Told the HTTPUrlConnection to send no request.", value);
|
| + Assert.assertTrue("Told the HTTPUrlConnection to send no request.", value);
|
| }
|
|
|
| @Override
|
| @@ -641,10 +656,10 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
| if (mNumTimesResponseCodeRetrieved == 0) {
|
| // The output stream should now have the generated XML for the request.
|
| // Check if its length is correct.
|
| - assertEquals("Expected OmahaBase to write out certain number of bytes",
|
| + Assert.assertEquals("Expected OmahaBase to write out certain number of bytes",
|
| mContentLength, mOutputStream.toByteArray().length);
|
| }
|
| - assertTrue("Tried to retrieve response code more than twice",
|
| + Assert.assertTrue("Tried to retrieve response code more than twice",
|
| mNumTimesResponseCodeRetrieved < 2);
|
| mNumTimesResponseCodeRetrieved++;
|
| return mHTTPResponseCode;
|
| @@ -663,7 +678,8 @@ public class OmahaBaseTest extends InstrumentationTestCase {
|
|
|
| @Override
|
| public InputStream getInputStream() {
|
| - assertTrue("Tried to read server response without sending request.", mSentRequest);
|
| + Assert.assertTrue(
|
| + "Tried to read server response without sending request.", mSentRequest);
|
| mGotInputStream = true;
|
| return mServerResponse;
|
| }
|
|
|