Merge "Undo a fix and de-flake a test"
am: e5a02966d8
Change-Id: I1f7d14d2eebee431aafd6c1f38aae8705cc0a321
diff --git a/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java b/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
index fed3233..4aaa4e6 100644
--- a/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
@@ -55,6 +55,7 @@
import static org.mockito.Matchers.same;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.timeout;
@@ -1145,7 +1146,8 @@
private void resetMocks() {
reset(mockAudioManager, mockBluetoothRouteManager, mockCallsManager,
- mockConnectionServiceWrapper, fakeCall);
+ mockConnectionServiceWrapper);
+ fakeCall = mock(Call.class);
when(mockCallsManager.getForegroundCall()).thenReturn(fakeCall);
when(fakeCall.getConnectionService()).thenReturn(mockConnectionServiceWrapper);
when(fakeCall.isAlive()).thenReturn(true);
diff --git a/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java b/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
index 7635427..f851162 100644
--- a/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
@@ -25,7 +25,6 @@
import android.os.IBinder;
import android.os.IInterface;
import android.os.RemoteException;
-import android.telecom.AudioState;
import android.telecom.CallAudioState;
import android.telecom.ParcelableCall;
@@ -49,7 +48,8 @@
public boolean mShowDialpad;
public boolean mCanAddCall;
public boolean mSilenceRinger;
- public CountDownLatch mLock = new CountDownLatch(1);
+ public CountDownLatch mUpdateCallLock = new CountDownLatch(1);
+ public CountDownLatch mAddCallLock = new CountDownLatch(1);
public class FakeInCallService extends IInCallService.Stub {
@Override
@@ -68,8 +68,9 @@
if (mCallById.containsKey(call.getId())) {
throw new RuntimeException("Call " + call.getId() + " already added");
}
- mCallById.put(call.getId(), call);
mLatestCallId = call.getId();
+ mCallById.put(call.getId(), call);
+ mAddCallLock.countDown();
}
@Override
@@ -77,9 +78,9 @@
if (!mCallById.containsKey(call.getId())) {
throw new RuntimeException("Call " + call.getId() + " not added yet");
}
- mCallById.put(call.getId(), call);
mLatestCallId = call.getId();
- mLock.countDown();
+ mCallById.put(call.getId(), call);
+ mUpdateCallLock.countDown();
}
@Override
@@ -159,10 +160,23 @@
public void waitForUpdate() {
try {
- mLock.await(5000, TimeUnit.MILLISECONDS);
+ mUpdateCallLock.await(5000, TimeUnit.MILLISECONDS);
} catch (InterruptedException ie) {
return;
}
- mLock = new CountDownLatch(1);
+ mUpdateCallLock = new CountDownLatch(1);
+ }
+
+ public void waitUntilNumCalls(int numCalls) {
+ if (mCallById.size() == numCalls) {
+ return;
+ }
+ mAddCallLock = new CountDownLatch(1);
+
+ try {
+ mAddCallLock.await(5000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException ie) {
+ return;
+ }
}
}
diff --git a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
index 475b550..b84f9d5 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
@@ -578,13 +578,8 @@
int startingNumConnections = connectionServiceFixture.mConnectionById.size();
int startingNumCalls = mInCallServiceFixtureX.mCallById.size();
- String callId = startOutgoingPhoneCallPendingCreateConnection(number, phoneAccountHandle,
+ startOutgoingPhoneCallPendingCreateConnection(number, phoneAccountHandle,
connectionServiceFixture, initiatingUser, videoState);
- // Set the phone account if there is one specified
- if (phoneAccountHandle != null) {
- mInCallServiceFixtureX.getInCallAdapter().phoneAccountSelected(
- callId, phoneAccountHandle, false);
- }
return outgoingCallCreateConnectionComplete(startingNumConnections, startingNumCalls,
phoneAccountHandle, connectionServiceFixture);
@@ -847,34 +842,35 @@
// is added, future interactions as triggered by the ConnectionService, through the various
// test fixtures, will be synchronous.
- if (!hasInCallAdapter
- && phoneAccountHandle != mPhoneAccountSelfManaged.getAccountHandle()) {
- verify(mInCallServiceFixtureX.getTestDouble(), timeout(TEST_TIMEOUT))
- .setInCallAdapter(any(IInCallAdapter.class));
- verify(mInCallServiceFixtureY.getTestDouble(), timeout(TEST_TIMEOUT))
- .setInCallAdapter(any(IInCallAdapter.class));
+ if (phoneAccountHandle != mPhoneAccountSelfManaged.getAccountHandle()) {
+ if (!hasInCallAdapter) {
+ verify(mInCallServiceFixtureX.getTestDouble(), timeout(TEST_TIMEOUT))
+ .setInCallAdapter(any(IInCallAdapter.class));
+ verify(mInCallServiceFixtureY.getTestDouble(), timeout(TEST_TIMEOUT))
+ .setInCallAdapter(any(IInCallAdapter.class));
- // Give the InCallService time to respond
- assertTrueWithTimeout(new Predicate<Void>() {
- @Override
- public boolean apply(Void v) {
- return mInCallServiceFixtureX.mInCallAdapter != null;
- }
- });
+ // Give the InCallService time to respond
+ assertTrueWithTimeout(new Predicate<Void>() {
+ @Override
+ public boolean apply(Void v) {
+ return mInCallServiceFixtureX.mInCallAdapter != null;
+ }
+ });
- assertTrueWithTimeout(new Predicate<Void>() {
- @Override
- public boolean apply(Void v) {
- return mInCallServiceFixtureY.mInCallAdapter != null;
- }
- });
+ assertTrueWithTimeout(new Predicate<Void>() {
+ @Override
+ public boolean apply(Void v) {
+ return mInCallServiceFixtureY.mInCallAdapter != null;
+ }
+ });
- verify(mInCallServiceFixtureX.getTestDouble(), timeout(TEST_TIMEOUT))
- .addCall(any(ParcelableCall.class));
- verify(mInCallServiceFixtureY.getTestDouble(), timeout(TEST_TIMEOUT))
- .addCall(any(ParcelableCall.class));
+ verify(mInCallServiceFixtureX.getTestDouble(), timeout(TEST_TIMEOUT))
+ .addCall(any(ParcelableCall.class));
+ verify(mInCallServiceFixtureY.getTestDouble(), timeout(TEST_TIMEOUT))
+ .addCall(any(ParcelableCall.class));
- // Give the InCallService time to respond
+ // Give the InCallService time to respond
+ }
assertTrueWithTimeout(new Predicate<Void>() {
@Override
@@ -883,18 +879,11 @@
connectionServiceFixture.mConnectionById.size();
}
});
- assertTrueWithTimeout(new Predicate<Void>() {
- @Override
- public boolean apply(Void v) {
- return startingNumCalls + 1 == mInCallServiceFixtureX.mCallById.size();
- }
- });
- assertTrueWithTimeout(new Predicate<Void>() {
- @Override
- public boolean apply(Void v) {
- return startingNumCalls + 1 == mInCallServiceFixtureY.mCallById.size();
- }
- });
+
+ mInCallServiceFixtureX.waitUntilNumCalls(startingNumCalls + 1);
+ mInCallServiceFixtureY.waitUntilNumCalls(startingNumCalls + 1);
+ assertEquals(startingNumCalls + 1, mInCallServiceFixtureX.mCallById.size());
+ assertEquals(startingNumCalls + 1, mInCallServiceFixtureY.mCallById.size());
assertEquals(mInCallServiceFixtureX.mLatestCallId,
mInCallServiceFixtureY.mLatestCallId);