Added null check for Intents without action string Bug: 231254046 Test: atest ONSTests:ONSProfileResultReceiverTest Change-Id: I4f4fef3485cc22201ca64de04dff200b2974d60f
diff --git a/src/com/android/ons/ONSProfileResultReceiver.java b/src/com/android/ons/ONSProfileResultReceiver.java index c893751..2cc89b1 100644 --- a/src/com/android/ons/ONSProfileResultReceiver.java +++ b/src/com/android/ons/ONSProfileResultReceiver.java
@@ -39,6 +39,10 @@ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); + if (action == null) { + return; + } + if (action.equals(TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED)) { int simCount = intent.getIntExtra(TelephonyManager.EXTRA_ACTIVE_SIM_SUPPORTED_COUNT, 0); Log.d(TAG, "Mutli-SIM configed for " + simCount + "SIMs");
diff --git a/tests/src/com/android/ons/ONSProfileResultReceiverTest.java b/tests/src/com/android/ons/ONSProfileResultReceiverTest.java new file mode 100644 index 0000000..b9eb4a6 --- /dev/null +++ b/tests/src/com/android/ons/ONSProfileResultReceiverTest.java
@@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ons; + +import android.content.Context; +import android.content.Intent; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +public class ONSProfileResultReceiverTest extends ONSBaseTest { + + @Mock + Context mMockContext; + + @Before + public void setUp() throws Exception { + super.setUp("ONSTest"); + } + + @Test + public void testONSResultReceiverWithNoActionString() { + ONSProfileResultReceiver onsReceiver = new ONSProfileResultReceiver(); + + //Empty Intent with all null fields. + Intent intent = new Intent(); + + try { + onsReceiver.onReceive(mMockContext, intent); + } catch (Exception e) { + fail("Exception should not be thrown"); + } + + } + + @Test + public void testONSResultReceiverWithActionStringNullExtras() { + ONSProfileResultReceiver onsReceiver = new ONSProfileResultReceiver(); + + //Intent with action String but all null extras. + Intent intent = new Intent(); + intent.setAction("com.android.ons.TEST_ACTION"); + + try { + onsReceiver.onReceive(mContext, intent); + } catch (Exception e) { + fail("Exception should not be thrown"); + } + + } +}