summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTuan Nguyen <tnguy238@ford.com>2017-07-28 11:36:50 -0700
committerTuan Nguyen <tnguy238@ford.com>2017-07-28 11:36:50 -0700
commita2e72e9e995f54ae19d5925a5b75f287170c2354 (patch)
tree3436ab7f63e08a87fd7061a0e37ad10c29d350b3
parent86ee5fdb517905114598c02807103514bf3b2e54 (diff)
downloadsdl_android-bugfix/issue_463.tar.gz
Revert "#463 Remove unrelated test case"bugfix/issue_463
This reverts commit 86ee5fdb517905114598c02807103514bf3b2e54.
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java58
1 files changed, 57 insertions, 1 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java
index 32abecbb5..7b038882e 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/SdlRouterServiceTests.java
@@ -30,7 +30,63 @@ public class SdlRouterServiceTests extends AndroidTestCase {
super.tearDown();
//Nothing here for now
}
-
+
+ /**
+ * Test null bundle handling in AltTransportHandler when handling messages. Only test the case of
+ * msg.what == TransportConstants.ROUTER_RECEIVED_PACKET
+ */
+ public void testAlTransportHandlerHandleNullBundle() {
+ if (Looper.myLooper() == null) {
+ Looper.prepare();
+ }
+ class AltTransportHandler extends Handler {
+ ClassLoader loader;
+ final WeakReference<SdlRouterService> provider;
+
+ public AltTransportHandler(SdlRouterService provider) {
+ this.provider = new WeakReference<SdlRouterService>(provider);
+ loader = getClass().getClassLoader();
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ SdlRouterService service = this.provider.get();
+ Bundle receivedBundle = msg.getData();
+ switch (msg.what) {
+ case TransportConstants.ROUTER_RECEIVED_PACKET:
+ if (receivedBundle != null) {
+ receivedBundle.setClassLoader(loader);//We do this because loading a custom parceable object isn't possible without it
+ if (receivedBundle.containsKey(TransportConstants.FORMED_PACKET_EXTRA_NAME)) {
+ SdlPacket packet = receivedBundle.getParcelable(TransportConstants.FORMED_PACKET_EXTRA_NAME);
+ if (packet != null && service != null) {
+ service.onPacketRead(packet);
+ } else {
+ Log.w(TAG, "Received null packet from alt transport service");
+ }
+ } else {
+ Log.w(TAG, "Flase positive packet reception");
+ }
+ } else {
+ Log.e(TAG, "Bundle was null while sending packet to router service from alt transport");
+ }
+ break;
+ default:
+ super.handleMessage(msg);
+ }
+
+ }
+ }
+ AltTransportHandler testHandler = new AltTransportHandler(null);
+ Message msg = Message.obtain(null, TransportConstants.ROUTER_RECEIVED_PACKET);
+ //Send a null bundle
+ msg.setData(null);
+ try {
+ testHandler.handleMessage(msg);
+ } catch (Exception e) {
+ Assert.fail("Exception in testAlTransportHandlerHandleNullBundle, " + e);
+ }
+ }
+
/**
* Test writeBytesToTransport method for handling null byte array in bundle
*