Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b352e190 authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Clean up bundleClientTransactionFlag (1/n)" into main

parents f0237201 da6a809d
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@ import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType

import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;

import static com.android.window.flags.Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -104,8 +102,6 @@ public class ClientTransactionListenerControllerTest {

    @Before
    public void setup() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        MockitoAnnotations.initMocks(this);
        mDisplayManager = new DisplayManagerGlobal(mIDisplayManager);
        mHandler = getInstrumentation().getContext().getMainThreadHandler();
+0 −22
Original line number Diff line number Diff line
@@ -16,22 +16,16 @@

package android.app.servertransaction;

import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;

import static com.android.window.flags.Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG;

import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;

import android.app.ClientTransactionHandler;
import android.platform.test.annotations.Presubmit;
import android.platform.test.flag.junit.SetFlagsRule;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -49,24 +43,8 @@ import org.junit.runner.RunWith;
@Presubmit
public class ClientTransactionTests {

    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);

    @Test
    public void testPreExecute() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testPreExecuteInner();
    }

    @Test
    public void testPreExecute_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testPreExecuteInner();
    }

    private void testPreExecuteInner() {
        final ClientTransactionItem callback1 = mock(ClientTransactionItem.class);
        final ClientTransactionItem callback2 = mock(ClientTransactionItem.class);
        final ActivityLifecycleItem stateRequest = mock(ActivityLifecycleItem.class);
+0 −73
Original line number Diff line number Diff line
@@ -25,9 +25,6 @@ import static android.app.servertransaction.ActivityLifecycleItem.ON_START;
import static android.app.servertransaction.ActivityLifecycleItem.ON_STOP;
import static android.app.servertransaction.ActivityLifecycleItem.PRE_ON_CREATE;
import static android.app.servertransaction.ActivityLifecycleItem.UNDEFINED;
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;

import static com.android.window.flags.Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG;

import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -54,14 +51,12 @@ import android.os.IBinder;
import android.os.Parcel;
import android.os.Parcelable;
import android.platform.test.annotations.Presubmit;
import android.platform.test.flag.junit.SetFlagsRule;
import android.util.ArrayMap;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
@@ -88,9 +83,6 @@ import java.util.stream.Collectors;
@Presubmit
public class TransactionExecutorTests {

    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);

    @Mock
    private ClientTransactionHandler mTransactionHandler;
    @Mock
@@ -248,19 +240,6 @@ public class TransactionExecutorTests {

    @Test
    public void testTransactionResolution() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testTransactionResolutionInner();
    }

    @Test
    public void testTransactionResolution_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testTransactionResolutionInner();
    }

    private void testTransactionResolutionInner() {
        ClientTransactionItem callback1 = mock(ClientTransactionItem.class);
        when(callback1.getPostExecutionState()).thenReturn(UNDEFINED);
        ClientTransactionItem callback2 = mock(ClientTransactionItem.class);
@@ -284,19 +263,6 @@ public class TransactionExecutorTests {

    @Test
    public void testDoNotLaunchDestroyedActivity() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testDoNotLaunchDestroyedActivityInner();
    }

    @Test
    public void testDoNotLaunchDestroyedActivity_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testDoNotLaunchDestroyedActivityInner();
    }

    private void testDoNotLaunchDestroyedActivityInner() {
        final Map<IBinder, DestroyActivityItem> activitiesToBeDestroyed = new ArrayMap<>();
        when(mTransactionHandler.getActivitiesToBeDestroyed()).thenReturn(activitiesToBeDestroyed);
        // Assume launch transaction is still in queue, so there is no client record.
@@ -329,19 +295,6 @@ public class TransactionExecutorTests {

    @Test
    public void testActivityResultRequiredStateResolution() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityResultRequiredStateResolutionInner();
    }

    @Test
    public void testActivityResultRequiredStateResolution_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityResultRequiredStateResolutionInner();
    }

    private void testActivityResultRequiredStateResolutionInner() {
        when(mTransactionHandler.getActivity(any())).thenReturn(mock(Activity.class));

        PostExecItem postExecItem = new PostExecItem(ON_RESUME);
@@ -495,19 +448,6 @@ public class TransactionExecutorTests {

    @Test(expected = IllegalArgumentException.class)
    public void testActivityItemNullRecordThrowsException() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityItemNullRecordThrowsExceptionInner();
    }

    @Test(expected = IllegalArgumentException.class)
    public void testActivityItemNullRecordThrowsException_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityItemNullRecordThrowsExceptionInner();
    }

    private void testActivityItemNullRecordThrowsExceptionInner() {
        final ActivityTransactionItem activityItem = mock(ActivityTransactionItem.class);
        when(activityItem.getPostExecutionState()).thenReturn(UNDEFINED);
        final IBinder token = mock(IBinder.class);
@@ -520,19 +460,6 @@ public class TransactionExecutorTests {

    @Test
    public void testActivityItemExecute() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityItemExecuteInner();
    }

    @Test
    public void testActivityItemExecute_bundleClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        testActivityItemExecuteInner();
    }

    private void testActivityItemExecuteInner() {
        final ClientTransaction transaction = ClientTransaction.obtain(null /* client */);
        final ActivityTransactionItem activityItem = mock(ActivityTransactionItem.class);
        when(activityItem.getPostExecutionState()).thenReturn(UNDEFINED);
+0 −53
Original line number Diff line number Diff line
@@ -20,9 +20,6 @@ import static android.app.servertransaction.TestUtils.config;
import static android.app.servertransaction.TestUtils.mergedConfig;
import static android.app.servertransaction.TestUtils.referrerIntentList;
import static android.app.servertransaction.TestUtils.resultInfoList;
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;

import static com.android.window.flags.Flags.FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG;

import static org.junit.Assert.assertEquals;

@@ -40,14 +37,12 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
import android.platform.test.annotations.Presubmit;
import android.platform.test.flag.junit.SetFlagsRule;
import android.window.ActivityWindowInfo;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -67,9 +62,6 @@ import java.util.ArrayList;
@Presubmit
public class TransactionParcelTests {

    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);

    private Parcel mParcel;
    private IBinder mActivityToken;

@@ -296,8 +288,6 @@ public class TransactionParcelTests {

    @Test
    public void testClientTransaction() {
        mSetFlagsRule.enableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        // Write to parcel
        NewIntentItem callback1 = NewIntentItem.obtain(mActivityToken, new ArrayList<>(), true);
        ActivityConfigurationChangeItem callback2 = ActivityConfigurationChangeItem.obtain(
@@ -320,49 +310,6 @@ public class TransactionParcelTests {
        assertEquals(mActivityToken, result.getActivityToken());
    }

    @Test
    public void testClientTransactionCallbacksOnly() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        // Write to parcel
        NewIntentItem callback1 = NewIntentItem.obtain(mActivityToken, new ArrayList<>(), true);
        ActivityConfigurationChangeItem callback2 = ActivityConfigurationChangeItem.obtain(
                mActivityToken, config(), new ActivityWindowInfo());

        ClientTransaction transaction = ClientTransaction.obtain(null /* client */);
        transaction.addTransactionItem(callback1);
        transaction.addTransactionItem(callback2);

        writeAndPrepareForReading(transaction);

        // Read from parcel and assert
        ClientTransaction result = ClientTransaction.CREATOR.createFromParcel(mParcel);

        assertEquals(transaction.hashCode(), result.hashCode());
        assertEquals(transaction, result);
        assertEquals(mActivityToken, result.getActivityToken());
    }

    @Test
    public void testClientTransactionLifecycleOnly() {
        mSetFlagsRule.disableFlags(FLAG_BUNDLE_CLIENT_TRANSACTION_FLAG);

        // Write to parcel
        StopActivityItem lifecycleRequest = StopActivityItem.obtain(mActivityToken);

        ClientTransaction transaction = ClientTransaction.obtain(null /* client */);
        transaction.addTransactionItem(lifecycleRequest);

        writeAndPrepareForReading(transaction);

        // Read from parcel and assert
        ClientTransaction result = ClientTransaction.CREATOR.createFromParcel(mParcel);

        assertEquals(transaction.hashCode(), result.hashCode());
        assertEquals(transaction, result);
        assertEquals(mActivityToken, result.getActivityToken());
    }

    /** Write to {@link #mParcel} and reset its position to prepare for reading from the start. */
    private void writeAndPrepareForReading(Parcelable parcelable) {
        parcelable.writeToParcel(mParcel, 0 /* flags */);
+2 −8
Original line number Diff line number Diff line
@@ -3357,14 +3357,8 @@ public class ActivityRecordTests extends WindowTestsBase {
        // to client if the app didn't request IME visible.
        assertFalse(app2.mActivityRecord.mImeInsetsFrozenUntilStartInput);

        if (Flags.bundleClientTransactionFlag()) {
        verify(app2.getProcess(), atLeastOnce()).scheduleClientTransactionItem(
                isA(WindowStateResizeItem.class));
        } else {
            verify(app2.mClient, atLeastOnce()).resized(any(), anyBoolean(), any(),
                    insetsStateCaptor.capture(), anyBoolean(), anyBoolean(), anyInt(), anyInt(),
                    anyBoolean(), any());
        }
        assertFalse(app2.getInsetsState().isSourceOrDefaultVisible(ID_IME, ime()));
    }

Loading