Add connection tests
Bug: 20303674
Change-Id: Ie39cd7791cd18c662a50e642f4b93d07f6d79eb4
diff --git a/tests/tests/telecom/src/android/telecom/cts/ConnectionTest.java b/tests/tests/telecom/src/android/telecom/cts/ConnectionTest.java
index 9a1ebc9..6a5f7fb5 100644
--- a/tests/tests/telecom/src/android/telecom/cts/ConnectionTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/ConnectionTest.java
@@ -18,9 +18,13 @@
import static android.telecom.cts.TestUtils.shouldTestTelecom;
+import android.net.Uri;
import android.os.Build;
+import android.os.Bundle;
import android.telecom.Connection;
import android.telecom.DisconnectCause;
+import android.telecom.StatusHints;
+import android.telecom.TelecomManager;
import android.test.AndroidTestCase;
import java.util.concurrent.Semaphore;
@@ -111,6 +115,163 @@
fail("Connection should not move out of STATE_DISCONNECTED");
}
+ public void testSetAndGetCallerDisplayName() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ connection.setCallerDisplayName("Test User", TelecomManager.PRESENTATION_ALLOWED);
+ assertEquals("Test User", connection.getCallerDisplayName());
+ assertEquals(TelecomManager.PRESENTATION_ALLOWED,
+ connection.getCallerDisplayNamePresentation());
+ }
+
+ public void testSetAndGetAddress() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ final Uri address = Uri.fromParts("tel", "1234567", null);
+ connection.setAddress(address, TelecomManager.PRESENTATION_UNKNOWN);
+ assertEquals(address, connection.getAddress());
+ assertEquals(TelecomManager.PRESENTATION_UNKNOWN, connection.getAddressPresentation());
+ }
+
+ public void testSetAndGetConnectionCapabilities() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ final int capabilities = Connection.CAPABILITY_HOLD | Connection.CAPABILITY_CAN_PAUSE_VIDEO
+ | Connection.CAPABILITY_MANAGE_CONFERENCE | Connection.CAPABILITY_RESPOND_VIA_TEXT;
+
+ connection.setConnectionCapabilities(capabilities);
+
+ assertEquals(capabilities, connection.getConnectionCapabilities());
+ }
+
+ public void testSetAndGetDisconnectCause() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+ assertEquals(Connection.STATE_NEW, connection.getState());
+
+ final DisconnectCause disconnectCause = new DisconnectCause(DisconnectCause.REJECTED,
+ "No friends", "No friends to talk to", "No friends to talk to");
+
+ connection.setDisconnected(disconnectCause);
+
+ assertEquals(Connection.STATE_DISCONNECTED, connection.getState());
+ assertEquals(disconnectCause, connection.getDisconnectCause());
+ }
+
+ public void testSetAndGetAudioModeIsVoip() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ assertFalse(connection.getAudioModeIsVoip());
+ connection.setAudioModeIsVoip(true);
+ assertTrue(connection.getAudioModeIsVoip());
+ }
+
+ public void testSetAndGetExtras() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ assertEquals(null, connection.getExtras());
+
+ final Bundle extras = new Bundle();
+ extras.putBoolean("test-extra-key", true);
+ connection.setExtras(extras);
+
+ final Bundle retrieved = connection.getExtras();
+ assertNotNull(retrieved);
+ assertTrue(extras.getBoolean("test-extra-key"));
+ }
+
+ public void testSetAndGetStatusHints() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ assertEquals(null, connection.getStatusHints());
+
+ final StatusHints statusHints = new StatusHints("Test", null, null);
+ connection.setStatusHints(statusHints);
+ assertEquals(statusHints, connection.getStatusHints());
+ }
+
+ public void testSetAndGetRingbackRequested() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ assertFalse(connection.isRingbackRequested());
+
+ connection.setRingbackRequested(true);
+ assertTrue(connection.isRingbackRequested());
+ }
+
+ public void testSetAndGetVideoProvider() {
+ if (!shouldTestTelecom(getContext())) {
+ return;
+ }
+
+ final Semaphore lock = new Semaphore(0);
+ Connection connection = createConnection(lock);
+ waitForStateChange(lock);
+
+ assertNull(connection.getVideoProvider());
+
+ final Connection.VideoProvider videoProvider = new MockVideoProvider(null);
+ connection.setVideoProvider(videoProvider);
+ assertEquals(videoProvider, connection.getVideoProvider());
+ }
+
+ public void testStateToString() {
+ assertEquals("INITIALIZING", Connection.stateToString(Connection.STATE_INITIALIZING));
+ assertEquals("NEW", Connection.stateToString(Connection.STATE_INITIALIZING));
+ assertEquals("RINGING", Connection.stateToString(Connection.STATE_INITIALIZING));
+ assertEquals("DIALING", Connection.stateToString(Connection.STATE_DIALING));
+ assertEquals("ACTIVE", Connection.stateToString(Connection.STATE_ACTIVE));
+ assertEquals("HOLDING", Connection.stateToString(Connection.STATE_HOLDING));
+ assertEquals("DISCONNECTED", Connection.stateToString(Connection.STATE_DISCONNECTED));
+ }
+
private static Connection createConnection(final Semaphore lock) {
BasicConnection connection = new BasicConnection();
connection.setLock(lock);