Rely only on SecurityException for testGpsStatusListener and add a test
case for GpsStatus.NmeaListener in a similar manner.

Bug: 17759639
Change-Id: I13e39f81c2aa50dda3c9755afbd932a9af188bfd
diff --git a/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java b/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
index 3765809..b298b97 100644
--- a/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
+++ b/tests/tests/location2/src/android/location2/cts/LocationManagerTest.java
@@ -26,6 +26,7 @@
 import android.location.Criteria;
 import android.location.GpsStatus;
 import android.location.GpsStatus.Listener;
+import android.location.GpsStatus.NmeaListener;
 import android.location.Location;
 import android.location.LocationListener;
 import android.location.LocationManager;
@@ -227,18 +228,32 @@
     @UiThreadTest
     public void testGpsStatusListener() {
         try {
-            // .addGpsStatusListener returns true if the listener added successfully
-            if (mManager.addGpsStatusListener(new MockGpsStatusListener())) {
-                fail("Should have failed to add a gps status listener");
-            }
+            mManager.addGpsStatusListener(new MockGpsStatusListener());
+            fail("Should have failed to add a gps status listener");
         } catch (SecurityException e) {
             // expected
         }
 
         try {
-            if (mManager.addGpsStatusListener(null)) {
-                fail("Should have failed to add null as a gps status listener");
-            }
+            mManager.addGpsStatusListener(null);
+            fail("Should have failed to add null as a gps status listener");
+        } catch (SecurityException e) {
+            // expected
+        }
+    }
+
+    @UiThreadTest
+    public void testGpsStatusNmeaListener() {
+        try {
+            mManager.addNmeaListener(new MockGpsStatusNmeaListener());
+            fail("Should have failed to add a gps status nmea listener");
+        } catch (SecurityException e) {
+            // expected
+        }
+
+        try {
+            mManager.addNmeaListener(null);
+            fail("Should have failed to add null as a gps status nmea listener");
         } catch (SecurityException e) {
             // expected
         }
@@ -478,4 +493,20 @@
             mHasCallOnGpsStatusChanged = true;
         }
     }
+
+    private static class MockGpsStatusNmeaListener implements NmeaListener {
+        private boolean mHasCallOnNmeaReceived;
+
+        public boolean hasCallOnNmeaReceived() {
+            return mHasCallOnNmeaReceived;
+        }
+
+        public void reset(){
+            mHasCallOnNmeaReceived = false;
+        }
+
+        public void onNmeaReceived(long timestamp, String nmea) {
+            mHasCallOnNmeaReceived = true;
+        }
+    }
 }