Merge "Remove phone number in eSIM preference Screen"
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 76c5964..53fda9d 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -50,7 +50,6 @@
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyCapabilities;
@@ -544,8 +543,7 @@
      * appears when you lose data connectivity because you're roaming and
      * you have the "data roaming" feature turned off.
      */
-    @VisibleForTesting
-    public void showDataDisconnectedRoaming() {
+    void showDataDisconnectedRoaming() {
         if (DBG) log("showDataDisconnectedRoaming()...");
 
         // "Mobile network settings" screen / dialog
diff --git a/tests/src/com/android/phone/PhoneGlobalsTest.java b/tests/src/com/android/phone/PhoneGlobalsTest.java
index b6d216e..b862ee3 100644
--- a/tests/src/com/android/phone/PhoneGlobalsTest.java
+++ b/tests/src/com/android/phone/PhoneGlobalsTest.java
@@ -16,6 +16,8 @@
 package com.android.phone;
 
 import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
 import android.support.test.runner.AndroidJUnit4;
 
 import com.android.TelephonyTestBase;
@@ -27,11 +29,15 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 
 import java.lang.reflect.Field;
 
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 @RunWith(AndroidJUnit4.class)
@@ -41,14 +47,16 @@
 
     private PhoneGlobals mPhoneGlobals = PhoneGlobals.getInstance();
 
-    private NotificationMgr mNotificationMgr = mock(NotificationMgr.class);
+    private Handler mHandler = mock(Handler.class);
+
+    private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
 
     @Before
     public void setUp() throws Exception {
         super.setUp();
-        Field notificationMgr = PhoneGlobals.class.getDeclaredField("notificationMgr");
-        notificationMgr.setAccessible(true);
-        notificationMgr.set(mPhoneGlobals, mNotificationMgr);
+        Field handler = PhoneGlobals.class.getDeclaredField("mHandler");
+        handler.setAccessible(true);
+        handler.set(mPhoneGlobals, mHandler);
     }
 
     @Test
@@ -64,17 +72,34 @@
         intent.putExtra(PhoneConstants.STATE_CHANGE_REASON_KEY, Phone.REASON_ROAMING_ON);
         mContext.sendBroadcast(intent);
 
-        waitForMs(200);
+        waitForMs(300);
 
-        verify(mNotificationMgr, times(0)).showDataDisconnectedRoaming();
+        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
+        verify(mHandler, atLeast(0)).sendMessageAtTime(any(Message.class), anyLong());
+        boolean flag = true;
+        for (Message msg : messageArgumentCaptor.getAllValues()) {
+            if (msg.what == EVENT_DATA_ROAMING_DISCONNECTED) {
+                flag = false;
+            }
+        }
+        assertTrue(flag);
+
 
         // Test notification sent out when data is enabled, data raoming enabled and data
         // disconnected because of roaming.
         mPhone.setDataEnabled(true);
         mContext.sendBroadcast(intent);
 
-        waitForMs(200);
+        waitForMs(300);
 
-        verify(mNotificationMgr, times(1)).showDataDisconnectedRoaming();
+
+        verify(mHandler, atLeast(1)).sendMessageAtTime(messageArgumentCaptor.capture(), anyLong());
+        flag = false;
+        for (Message msg : messageArgumentCaptor.getAllValues()) {
+            if (msg.what == EVENT_DATA_ROAMING_DISCONNECTED) {
+                flag = true;
+            }
+        }
+        assertTrue(flag);
     }
 }