Skip to content

refactor to not use static Contexts from RuntimeEnvironment #2517

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions firebase-common/firebase-common.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ dependencies {
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'org.mockito:mockito-core:2.25.0'
testImplementation 'androidx.test:core:1.2.0'

annotationProcessor 'com.google.auto.value:auto-value:1.6.5'

Expand Down
1 change: 1 addition & 0 deletions firebase-common/ktx/ktx.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,5 @@ dependencies {
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'androidx.test:core:1.2.0'
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@

package com.google.firebase.ktx

import androidx.test.core.app.ApplicationProvider
import com.google.common.truth.Truth.assertThat
import com.google.firebase.FirebaseApp
import com.google.firebase.FirebaseOptions
import com.google.firebase.platforminfo.UserAgentPublisher
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment

fun withApp(name: String, block: FirebaseApp.() -> Unit) {
val app = Firebase.initialize(RuntimeEnvironment.application,
val app = Firebase.initialize(ApplicationProvider.getApplicationContext(),
FirebaseOptions.Builder()
.setApplicationId("appId")
.build(),
Expand Down Expand Up @@ -75,12 +75,12 @@ class KtxTests {
@Test
fun `Firebase#initialize(Context, FirebaseOptions) should initialize the app correctly`() {
val options = FirebaseOptions.Builder().setApplicationId("appId").build()
val app = Firebase.initialize(RuntimeEnvironment.application, options)
val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options)
try {
assertThat(app).isNotNull()
assertThat(app.name).isEqualTo(FirebaseApp.DEFAULT_APP_NAME)
assertThat(app.options).isSameInstanceAs(options)
assertThat(app.applicationContext).isSameInstanceAs(RuntimeEnvironment.application)
assertThat(app.applicationContext).isSameInstanceAs(ApplicationProvider.getApplicationContext())
} finally {
app.delete()
}
Expand All @@ -90,12 +90,12 @@ class KtxTests {
fun `Firebase#initialize(Context, FirebaseOptions, String) should initialize the app correctly`() {
val options = FirebaseOptions.Builder().setApplicationId("appId").build()
val name = "appName"
val app = Firebase.initialize(RuntimeEnvironment.application, options, name)
val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options, name)
try {
assertThat(app).isNotNull()
assertThat(app.name).isEqualTo(name)
assertThat(app.options).isSameInstanceAs(options)
assertThat(app.applicationContext).isSameInstanceAs(RuntimeEnvironment.application)
assertThat(app.applicationContext).isSameInstanceAs(ApplicationProvider.getApplicationContext())
} finally {
app.delete()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import android.content.Context;
import android.content.pm.ProviderInfo;
import androidx.test.core.app.ApplicationProvider;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.testing.FirebaseAppRule;
Expand All @@ -27,7 +28,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;

/** Unit tests for {@link FirebaseInitProvider} without IDs from resources. */
@RunWith(RobolectricTestRunner.class)
Expand All @@ -42,7 +42,7 @@ public class FirebaseInitProviderNoIdsInResourcesTest {
@Before
public void setUp() {
firebaseInitProvider = new FirebaseInitProvider();
targetContext = RuntimeEnvironment.application.getApplicationContext();
targetContext = ApplicationProvider.getApplicationContext();
}

@Rule public FirebaseAppRule firebaseAppRule = new FirebaseAppRule();
Expand Down
1 change: 1 addition & 0 deletions firebase-config/firebase-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ dependencies {
testImplementation 'junit:junit:4.12'
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "org.skyscreamer:jsonassert:1.5.0"
testImplementation 'androidx.test:core:1.2.0'

androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'org.mockito:mockito-core:2.25.0'
Expand Down
1 change: 1 addition & 0 deletions firebase-config/ktx/ktx.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,5 @@ dependencies {
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'org.mockito:mockito-core:2.25.0'
testImplementation 'androidx.test:core:1.2.0'
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package com.google.firebase.remoteconfig.ktx

import androidx.test.core.app.ApplicationProvider
import com.google.common.truth.Truth.assertThat
import com.google.common.util.concurrent.MoreExecutors
import com.google.firebase.FirebaseApp
Expand All @@ -37,7 +38,6 @@ import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment

const val APP_ID = "1:14368190084:android:09cb977358c6f241"
const val API_KEY = "AIzaSyabcdefghijklmnopqrstuvwxyz1234567"
Expand All @@ -61,7 +61,7 @@ abstract class BaseTestCase {
@Before
fun setUp() {
Firebase.initialize(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
FirebaseOptions.Builder()
.setApplicationId(APP_ID)
.setApiKey(API_KEY)
Expand All @@ -70,7 +70,7 @@ abstract class BaseTestCase {
)

Firebase.initialize(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
FirebaseOptions.Builder()
.setApplicationId(APP_ID)
.setApiKey(API_KEY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import androidx.test.core.app.ApplicationProvider;
import com.google.android.gms.shadows.common.internal.ShadowPreconditions;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
Expand Down Expand Up @@ -75,7 +76,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.skyscreamer.jsonassert.JSONAssert;

Expand Down Expand Up @@ -160,7 +160,7 @@ public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);

Executor directExecutor = MoreExecutors.directExecutor();
Context context = RuntimeEnvironment.application;
Context context = ApplicationProvider.getApplicationContext();
FirebaseApp firebaseApp = initializeFirebaseApp(context);

Personalization personalization = new Personalization(mockAnalyticsConnector);
Expand Down Expand Up @@ -1040,8 +1040,9 @@ private void loadInstanceIdAndToken() {
}

private static int getResourceId(String xmlResourceName) {
Resources r = RuntimeEnvironment.application.getResources();
return r.getIdentifier(xmlResourceName, "xml", RuntimeEnvironment.application.getPackageName());
Resources r = ApplicationProvider.getApplicationContext().getResources();
return r.getIdentifier(
xmlResourceName, "xml", ApplicationProvider.getApplicationContext().getPackageName());
}

private static ConfigContainer newDefaultsContainer(Map<String, String> configsMap)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import static org.mockito.Mockito.when;

import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import com.google.android.gms.tasks.Tasks;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.firebase.FirebaseApp;
Expand All @@ -46,7 +47,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

/**
Expand Down Expand Up @@ -81,7 +81,7 @@ public class RemoteConfigComponentTest {
public void setUp() {
MockitoAnnotations.initMocks(this);

context = RuntimeEnvironment.application;
context = ApplicationProvider.getApplicationContext();
directExecutor = MoreExecutors.newDirectExecutorService();

defaultApp = initializeFirebaseApp(context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@

import android.content.Context;
import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import com.google.android.gms.common.util.MockClock;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.Tasks;
Expand Down Expand Up @@ -86,7 +87,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.skyscreamer.jsonassert.JSONAssert;

Expand Down Expand Up @@ -135,7 +135,7 @@ public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);

directExecutor = MoreExecutors.directExecutor();
context = RuntimeEnvironment.application.getApplicationContext();
context = ApplicationProvider.getApplicationContext();
mockClock = new MockClock(0L);
metadataClient =
new ConfigMetadataClient(context.getSharedPreferences("test_file", Context.MODE_PRIVATE));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import android.content.Context;
import android.content.pm.PackageInfo;
import android.os.Build;
import androidx.test.core.app.ApplicationProvider;
import com.google.android.gms.common.util.MockClock;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableMap;
Expand All @@ -61,7 +62,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

/**
Expand Down Expand Up @@ -95,7 +95,7 @@ public class ConfigFetchHttpClientTest {
@Before
public void setUp() throws Exception {
initMocks(this);
context = RuntimeEnvironment.application;
context = ApplicationProvider.getApplicationContext();
configFetchHttpClient =
new ConfigFetchHttpClient(
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

import android.content.Context;
import android.content.SharedPreferences;
import androidx.test.core.app.ApplicationProvider;
import com.google.common.base.Preconditions;
import com.google.firebase.remoteconfig.FirebaseRemoteConfigInfo;
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
Expand All @@ -38,7 +39,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

/**
Expand All @@ -55,7 +55,8 @@ public class ConfigMetadataClientTest {
@Before
public void setUp() {
SharedPreferences metadata =
RuntimeEnvironment.application.getSharedPreferences("TEST_FILE_NAME", Context.MODE_PRIVATE);
ApplicationProvider.getApplicationContext()
.getSharedPreferences("TEST_FILE_NAME", Context.MODE_PRIVATE);

metadata.edit().clear().commit();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import static com.google.firebase.remoteconfig.testutil.Assert.assertThrows;

import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import com.google.android.gms.common.internal.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.io.BufferedReader;
Expand All @@ -32,7 +33,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

/**
Expand All @@ -52,7 +52,7 @@ public class ConfigStorageClientTest {

@Before
public void setUp() throws Exception {
context = RuntimeEnvironment.application.getApplicationContext();
context = ApplicationProvider.getApplicationContext();

ConfigStorageClient.clearInstancesForTest();
storageClient = ConfigStorageClient.getInstance(context, FILE_NAME);
Expand Down
1 change: 1 addition & 0 deletions firebase-database/ktx/ktx.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,5 @@ dependencies {
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'androidx.test:core:1.2.0'
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package com.google.firebase.database.ktx

import androidx.test.core.app.ApplicationProvider
import com.google.common.truth.Truth.assertThat
import com.google.firebase.FirebaseApp
import com.google.firebase.FirebaseOptions
Expand All @@ -31,7 +32,6 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment

const val APP_ID = "APP_ID"
const val API_KEY = "API_KEY"
Expand Down Expand Up @@ -60,7 +60,7 @@ abstract class BaseTestCase {
@Before
fun setUp() {
Firebase.initialize(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
FirebaseOptions.Builder()
.setApplicationId(APP_ID)
.setApiKey(API_KEY)
Expand All @@ -70,7 +70,7 @@ abstract class BaseTestCase {
)

Firebase.initialize(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
FirebaseOptions.Builder()
.setApplicationId(APP_ID)
.setApiKey(API_KEY)
Expand Down
1 change: 1 addition & 0 deletions firebase-datatransport/firebase-datatransport.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,5 @@ dependencies {
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'androidx.test:core:1.2.0'
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@

import static com.google.common.truth.Truth.assertThat;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.runner.AndroidJUnit4;
import com.google.android.datatransport.TransportFactory;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import java.util.function.Consumer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;

@RunWith(AndroidJUnit4.class)
public class TransportRegistrationTest {
private static void withApp(Consumer<FirebaseApp> consumer) {
FirebaseApp app =
FirebaseApp.initializeApp(
RuntimeEnvironment.application,
ApplicationProvider.getApplicationContext(),
new FirebaseOptions.Builder()
.setApplicationId("appId")
.setProjectId("123")
Expand Down
1 change: 1 addition & 0 deletions firebase-dynamic-links/ktx/ktx.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,5 @@ dependencies {
testImplementation 'junit:junit:4.12'
testImplementation "com.google.truth:truth:$googleTruthVersion"
testImplementation 'org.mockito:mockito-core:2.25.0'
testImplementation 'androidx.test:core:1.2.0'
}
Loading