diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-10-11 15:59:06 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-10-11 15:59:06 -0400 |
commit | ddddd7e468963f152fd0b289a58e16e053e3d63d (patch) | |
tree | 2c15dea3d2948b21bd26bd486a89bc8669316e05 | |
parent | b572ec80361f24f0c0683ed21e94afc6f177ab15 (diff) | |
download | sdl_android-ddddd7e468963f152fd0b289a58e16e053e3d63d.tar.gz |
Updated unit tests
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java | 23 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java | 85 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockInterfaceBroker.java | 61 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java | 33 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockStreamListener.java | 13 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java | 5 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/RTPH264PacketizerTest.java (renamed from sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/RTPH264PacketizerTest.java) | 3 | ||||
-rw-r--r-- | sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/SdlRemoteDisplayTest.java | 139 |
8 files changed, 274 insertions, 88 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java index 678a4e95b..fdc52f9b7 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SdlProxyBaseTests.java @@ -1,6 +1,7 @@ package com.smartdevicelink.test.proxy; import android.content.Context; +import android.os.Bundle; import android.telephony.TelephonyManager; import android.test.AndroidTestCase; import android.util.Log; @@ -79,9 +80,14 @@ import com.smartdevicelink.proxy.rpc.UnsubscribeVehicleDataResponse; import com.smartdevicelink.proxy.rpc.UnsubscribeWayPointsResponse; import com.smartdevicelink.proxy.rpc.UpdateTurnListResponse; import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason; +import com.smartdevicelink.streaming.video.SdlRemoteDisplay; +import com.smartdevicelink.streaming.video.VideoStreamingParameters; +import com.smartdevicelink.test.streaming.video.SdlRemoteDisplayTest; import junit.framework.Assert; +import java.lang.reflect.Method; + public class SdlProxyBaseTests extends AndroidTestCase{ public static final String TAG = "SdlProxyBaseTests"; @@ -139,6 +145,23 @@ public class SdlProxyBaseTests extends AndroidTestCase{ } } + public void testRemoteDisplayStreaming(){ + SdlProxyALM proxy = null; + SdlProxyBuilder.Builder builder = new SdlProxyBuilder.Builder(new ProxyListenerTest(), "appId", "appName", true, getContext()); + try{ + proxy = builder.build(); + // public void startRemoteDisplayStream(Context context, final Class<? extends SdlRemoteDisplay> remoteDisplay, final VideoStreamingParameters parameters, final boolean encrypted){ + Method m = SdlProxyALM.class.getDeclaredMethod("startRemoteDisplayStream", Context.class, SdlRemoteDisplay.class, VideoStreamingParameters.class, boolean.class); + assertNotNull(m); + m.setAccessible(true); + m.invoke(proxy,getContext(), SdlRemoteDisplayTest.MockRemoteDisplay.class, (VideoStreamingParameters)null, false); + assert true; + + }catch (Exception e){ + assert false; + } + } + public class ProxyListenerTest implements IProxyListenerALM { @Override diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java index 80126c67c..c74e8ab84 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java @@ -90,88 +90,3 @@ public class AbstractPacketizerTests extends TestCase { } } -/** - * This is a mock class for testing the following : - * {@link com.smartdevicelink.streaming.AbstractPacketizer} - */ -class MockStreamListener implements IStreamListener { - public MockStreamListener () { } - @Override public void sendStreamPacket(ProtocolMessage pm) { } -} - -/** - * This is a mock class for testing the following : - * {@link com.smartdevicelink.streaming.AbstractPacketizer} - */ -class MockInterfaceBroker implements ISdlConnectionListener { - public MockInterfaceBroker () { } - @Override - public void onTransportDisconnected(String info) { - - } - @Override - public void onTransportError(String info, Exception e) { - - } - @Override - public void onProtocolMessageReceived(ProtocolMessage msg) { - - } - @Override - public void onProtocolSessionStartedNACKed(SessionType sessionType, - byte sessionID, byte version, String correlationID, List<String> rejectedParams) { - - } - @Override - public void onProtocolSessionStarted(SessionType sessionType, - byte sessionID, byte version, String correlationID, int hashID, - boolean isEncrypted) { - - } - @Override - public void onProtocolSessionEnded(SessionType sessionType, byte sessionID, - String correlationID) { - - } - @Override - public void onProtocolSessionEndedNACKed(SessionType sessionType, - byte sessionID, String correlationID) { - - } - @Override - public void onProtocolError(String info, Exception e) { - - } - @Override - public void onHeartbeatTimedOut(byte sessionID) { - - } - @Override - public void onProtocolServiceDataACK(SessionType sessionType, int dataSize, - byte sessionID) { - - } -} - -/** - * This is a mock class for testing the following : - * {@link com.smartdevicelink.streaming.AbstractPacketizer} - */ -class MockPacketizer extends AbstractPacketizer { - public MockPacketizer (IStreamListener l, InputStream i, SessionType s, byte sid, SdlSession sdlsession) throws IOException { super (l, i, s, sid, sdlsession); } - public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, byte w, SdlSession sdlsession) throws IOException { super (l, i, r, s, sid, w, sdlsession); } - - @Override public void start() throws IOException { } - @Override public void stop() { } - - public IStreamListener getListener () { return _streamListener; } - public InputStream getInputStream () { return is; } - public SessionType getSessionType () { return _serviceType; } - public SdlSession getSdlSession () { return _session; } - public byte getSessionId () { return _rpcSessionID; } - public RPCRequest getRPCRequest () { return _request; } - public byte getWiproVersion () { return _wiproVersion; } - - @Override public void pause() { } - @Override public void resume() { } -} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockInterfaceBroker.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockInterfaceBroker.java new file mode 100644 index 000000000..86dbd7b81 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockInterfaceBroker.java @@ -0,0 +1,61 @@ +package com.smartdevicelink.test.streaming; + +import com.smartdevicelink.SdlConnection.ISdlConnectionListener; +import com.smartdevicelink.protocol.ProtocolMessage; +import com.smartdevicelink.protocol.enums.SessionType; + +import java.util.List; + +/** + * This is a mock class for testing the following : + * {@link com.smartdevicelink.streaming.AbstractPacketizer} + */ +public class MockInterfaceBroker implements ISdlConnectionListener { + public MockInterfaceBroker () { } + @Override + public void onTransportDisconnected(String info) { + + } + @Override + public void onTransportError(String info, Exception e) { + + } + @Override + public void onProtocolMessageReceived(ProtocolMessage msg) { + + } + @Override + public void onProtocolSessionStartedNACKed(SessionType sessionType, + byte sessionID, byte version, String correlationID, List<String> rejectedParams) { + + } + @Override + public void onProtocolSessionStarted(SessionType sessionType, + byte sessionID, byte version, String correlationID, int hashID, + boolean isEncrypted) { + + } + @Override + public void onProtocolSessionEnded(SessionType sessionType, byte sessionID, + String correlationID) { + + } + @Override + public void onProtocolSessionEndedNACKed(SessionType sessionType, + byte sessionID, String correlationID) { + + } + @Override + public void onProtocolError(String info, Exception e) { + + } + @Override + public void onHeartbeatTimedOut(byte sessionID) { + + } + @Override + public void onProtocolServiceDataACK(SessionType sessionType, int dataSize, + byte sessionID) { + + } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java new file mode 100644 index 000000000..d32a204a6 --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockPacketizer.java @@ -0,0 +1,33 @@ +package com.smartdevicelink.test.streaming; + +import com.smartdevicelink.SdlConnection.SdlSession; +import com.smartdevicelink.protocol.enums.SessionType; +import com.smartdevicelink.proxy.RPCRequest; +import com.smartdevicelink.streaming.AbstractPacketizer; +import com.smartdevicelink.streaming.IStreamListener; + +import java.io.IOException; +import java.io.InputStream; + +/** + * This is a mock class for testing the following : + * {@link com.smartdevicelink.streaming.AbstractPacketizer} + */ +public class MockPacketizer extends AbstractPacketizer { + public MockPacketizer (IStreamListener l, InputStream i, SessionType s, byte sid, SdlSession sdlsession) throws IOException { super (l, i, s, sid, sdlsession); } + public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, byte w, SdlSession sdlsession) throws IOException { super (l, i, r, s, sid, w, sdlsession); } + + @Override public void start() throws IOException { } + @Override public void stop() { } + + public IStreamListener getListener () { return _streamListener; } + public InputStream getInputStream () { return is; } + public SessionType getSessionType () { return _serviceType; } + public SdlSession getSdlSession () { return _session; } + public byte getSessionId () { return _rpcSessionID; } + public RPCRequest getRPCRequest () { return _request; } + public byte getWiproVersion () { return _wiproVersion; } + + @Override public void pause() { } + @Override public void resume() { } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockStreamListener.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockStreamListener.java new file mode 100644 index 000000000..0081c65ea --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/MockStreamListener.java @@ -0,0 +1,13 @@ +package com.smartdevicelink.test.streaming; + +import com.smartdevicelink.protocol.ProtocolMessage; +import com.smartdevicelink.streaming.IStreamListener; + +/** + * This is a mock class for testing the following : + * {@link com.smartdevicelink.streaming.AbstractPacketizer} + */ +public class MockStreamListener implements IStreamListener { + public MockStreamListener () { } + @Override public void sendStreamPacket(ProtocolMessage pm) { } +} diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java index cac3b1616..0f72eec95 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java @@ -10,6 +10,7 @@ import java.net.URLConnection; import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.proxy.RPCRequest; +import com.smartdevicelink.proxy.SdlProxyBase; import com.smartdevicelink.streaming.IStreamListener; import com.smartdevicelink.streaming.StreamRPCPacketizer; import com.smartdevicelink.test.Test; @@ -20,13 +21,13 @@ import junit.framework.TestCase; /** * This is a unit test class for the SmartDeviceLink library project class : - * {@link com.smartdevicelink.streaming.StreamRpcPacketizer} + * {@link com.smartdevicelink.streaming.StreamRPCPacketizer} */ public class StreamRPCPacketizerTests extends TestCase { /** * This is a unit test for the following methods : - * {@link com.smartdevicelink.streaming.StreamRPCPacketizer#StreamRPCPacketizer(IStreamListener, InputStream, RPCRequest, SessionType, byte, byte)} + * {@link com.smartdevicelink.streaming.StreamRPCPacketizer#StreamRPCPacketizer(SdlProxyBase, IStreamListener, InputStream, RPCRequest, SessionType, byte, byte, long, SdlSession)} */ public void testConstructor () { diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/RTPH264PacketizerTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/RTPH264PacketizerTest.java index 6d169809a..7090ba8e8 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/RTPH264PacketizerTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/RTPH264PacketizerTest.java @@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package com.smartdevicelink.test.streaming; +package com.smartdevicelink.test.streaming.video; import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.ProtocolMessage; @@ -36,6 +36,7 @@ import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.proxy.interfaces.IVideoStreamListener; import com.smartdevicelink.streaming.IStreamListener; import com.smartdevicelink.streaming.video.RTPH264Packetizer; +import com.smartdevicelink.test.streaming.MockInterfaceBroker; import com.smartdevicelink.transport.BTTransportConfig; import junit.framework.TestCase; diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/SdlRemoteDisplayTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/SdlRemoteDisplayTest.java new file mode 100644 index 000000000..96e6e29cb --- /dev/null +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/video/SdlRemoteDisplayTest.java @@ -0,0 +1,139 @@ +package com.smartdevicelink.test.streaming.video; + +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Bundle; +import android.os.Looper; +import android.test.AndroidTestCase; +import android.view.Display; +import android.view.MotionEvent; +import android.widget.RelativeLayout; + +import com.smartdevicelink.R; +import com.smartdevicelink.encoder.VirtualDisplayEncoder; +import com.smartdevicelink.proxy.interfaces.IVideoStreamListener; +import com.smartdevicelink.streaming.video.SdlRemoteDisplay; +import com.smartdevicelink.streaming.video.VideoStreamingParameters; + +import junit.framework.TestCase; + +import java.nio.ByteBuffer; +import java.util.concurrent.FutureTask; + + +public class SdlRemoteDisplayTest extends AndroidTestCase { + + MockRemoteDisplayCallback rdCallback = new MockRemoteDisplayCallback(); + + @Override + protected void setUp() throws Exception { + super.setUp(); + if(Looper.myLooper() == null){ + Looper.prepare(); + } + } + + public void testCreator(){ + VirtualDisplayEncoder encoder = createVDE(); + assertNotNull(encoder); + + + SdlRemoteDisplay.Creator creator = new SdlRemoteDisplay.Creator(this.getContext(), encoder.getVirtualDisplay(), null, MockRemoteDisplay.class, rdCallback); + assertNotNull(creator); + FutureTask<Boolean> fTask = new FutureTask<Boolean>(creator); + Thread showPresentation = new Thread(fTask); + showPresentation.start(); + assert true; + } + + public void testConstructor(){ + VirtualDisplayEncoder encoder = createVDE(); + assertNotNull(encoder); + MockRemoteDisplay remoteDisplay = new MockRemoteDisplay(getContext(), encoder.getVirtualDisplay()); + assertNotNull(remoteDisplay); + + encoder.shutDown(); + } + + + @TargetApi(19) + public void testTouchEvents(){ + VirtualDisplayEncoder encoder = createVDE(); + assertNotNull(encoder); + MockRemoteDisplay remoteDisplay = new MockRemoteDisplay(getContext(), encoder.getVirtualDisplay()); + assertNotNull(remoteDisplay); + remoteDisplay.show(); + + assertNotNull(remoteDisplay.getMainView()); + + try{ + remoteDisplay.handleMotionEvent(MotionEvent.obtain(10, System.currentTimeMillis(), MotionEvent.ACTION_DOWN, 100, 100, 0)); + }catch (Exception e){ + assert false; + } + + remoteDisplay.dismiss(); + encoder.shutDown(); + } + + + public VirtualDisplayEncoder createVDE(){ + try{ + VirtualDisplayEncoder displayEncoder = new VirtualDisplayEncoder(); + displayEncoder.init(getContext(), new MockVideoStreamListener(), new VideoStreamingParameters()); + displayEncoder.start(); + return displayEncoder; + }catch (Exception e ){ + e.printStackTrace(); + } + return null; + } + + + //Mock classes + + public static class MockRemoteDisplay extends SdlRemoteDisplay{ + + public MockRemoteDisplay(Context context, Display display) { + super(context, display); + + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView( new RelativeLayout(getContext())); + + } + + + } + + class MockVideoStreamListener implements IVideoStreamListener{ + + @Override + public void sendFrame(byte[] data, int offset, int length, long presentationTimeUs) throws ArrayIndexOutOfBoundsException { + + } + + @Override + public void sendFrame(ByteBuffer data, long presentationTimeUs) { + + } + } + + class MockRemoteDisplayCallback implements SdlRemoteDisplay.Callback{ + + @Override + public void onCreated(SdlRemoteDisplay remoteDisplay) { + + } + + @Override + public void onInvalidated(SdlRemoteDisplay remoteDisplay) { + + } + } + + +} |