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

Commit 41a5cd6f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "iorap: Add tests for AppLaunchEvent."

parents 1ec87b3c 35a4e64d
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import com.android.server.wm.ActivityMetricsLaunchObserver.Temperature;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.Objects;

/**
@@ -162,8 +163,8 @@ public abstract class AppLaunchEvent implements Parcelable {
        @Override
        public boolean equals(Object other) {
            if (other instanceof BaseWithActivityRecordData) {
                return activityRecordSnapshot.equals(
                        ((BaseWithActivityRecordData)other).activityRecordSnapshot) &&
                return (Arrays.equals(activityRecordSnapshot,
                      ((BaseWithActivityRecordData)other).activityRecordSnapshot)) &&
                        super.equals(other);
            }
            return false;
@@ -171,7 +172,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        protected String toStringBody() {
            return ", " + activityRecordSnapshot.toString();
            return ", " + new String(activityRecordSnapshot);
        }

        @Override
@@ -208,7 +209,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        protected String toStringBody() {
            return ", temperature=" + Integer.toString(temperature);
            return super.toStringBody() + ", temperature=" + Integer.toString(temperature);
        }

        @Override
@@ -235,7 +236,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        public boolean equals(Object other) {
            if (other instanceof ActivityLaunched) {
            if (other instanceof ActivityLaunchFinished) {
                return timestampNs == ((ActivityLaunchFinished)other).timestampNs &&
                       super.equals(other);
            }
@@ -244,7 +245,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        protected String toStringBody() {
            return ", timestampNs=" + Long.toString(timestampNs);
            return super.toStringBody() + ", timestampNs=" + Long.toString(timestampNs);
        }

        @Override
@@ -271,7 +272,7 @@ public abstract class AppLaunchEvent implements Parcelable {
        @Override
        public boolean equals(Object other) {
            if (other instanceof ActivityLaunchCancelled) {
                return Objects.equals(activityRecordSnapshot,
                return Arrays.equals(activityRecordSnapshot,
                    ((ActivityLaunchCancelled)other).activityRecordSnapshot) &&
                        super.equals(other);
            }
@@ -280,7 +281,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        protected String toStringBody() {
            return ", " + activityRecordSnapshot.toString();
            return super.toStringBody() + ", " + new String(activityRecordSnapshot);
        }

        @Override
@@ -325,7 +326,7 @@ public abstract class AppLaunchEvent implements Parcelable {

        @Override
        protected String toStringBody() {
            return ", timestampNs=" + Long.toString(timestampNs);
            return super.toStringBody() + ", timestampNs=" + Long.toString(timestampNs);
        }

        @Override
+181 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.google.android.startop.iorap

import android.content.Intent;
import android.net.Uri
import android.os.Parcel
import android.os.Parcelable
import androidx.test.filters.SmallTest
import com.google.android.startop.iorap.AppLaunchEvent;
import com.google.android.startop.iorap.AppLaunchEvent.ActivityLaunched
import com.google.android.startop.iorap.AppLaunchEvent.ActivityLaunchCancelled
import com.google.android.startop.iorap.AppLaunchEvent.ActivityLaunchFinished
import com.google.android.startop.iorap.AppLaunchEvent.IntentStarted;
import com.google.android.startop.iorap.AppLaunchEvent.IntentFailed;
import com.google.android.startop.iorap.AppLaunchEvent.ReportFullyDrawn
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized


/**
 * Basic unit tests to test all of the [AppLaunchEvent]s in [com.google.android.startop.iorap].
 */
@SmallTest
class AppLaunchEventTest {
  /**
   * Test for IntentStarted.
   */
  @Test
  fun testIntentStarted() {
    var intent = Intent()
    val valid = IntentStarted(/* sequenceId= */2L, intent, /* timestampNs= */ 1L)
    val copy = IntentStarted(/* sequenceId= */2L, intent, /* timestampNs= */ 1L)
    val noneCopy1 = IntentStarted(/* sequenceId= */1L, intent, /* timestampNs= */ 1L)
    val noneCopy2 = IntentStarted(/* sequenceId= */2L, intent, /* timestampNs= */ 2L)
    val noneCopy3 = IntentStarted(/* sequenceId= */2L, Intent(), /* timestampNs= */ 1L)

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy1)
    assertThat(valid).isNotEqualTo(noneCopy2)
    assertThat(valid).isNotEqualTo(noneCopy3)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("IntentStarted{sequenceId=2, intent=Intent {  } , timestampNs=1}")
  }

  /**
   * Test for IntentFailed.
   */
  @Test
  fun testIntentFailed() {
    val valid = IntentFailed(/* sequenceId= */2L)
    val copy = IntentFailed(/* sequenceId= */2L)
    val noneCopy = IntentFailed(/* sequenceId= */1L)

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("IntentFailed{sequenceId=2}")
  }

  /**
   * Test for ActivityLaunched.
   */
  @Test
  fun testActivityLaunched() {
    //var activityRecord =
    val valid = ActivityLaunched(/* sequenceId= */2L, "test".toByteArray(),
      /* temperature= */ 0)
    val copy = ActivityLaunched(/* sequenceId= */2L, "test".toByteArray(),
      /* temperature= */ 0)
    val noneCopy1 = ActivityLaunched(/* sequenceId= */1L, "test".toByteArray(),
      /* temperature= */ 0)
    val noneCopy2 = ActivityLaunched(/* sequenceId= */1L, "test".toByteArray(),
      /* temperature= */ 1)
    val noneCopy3 = ActivityLaunched(/* sequenceId= */1L, "test1".toByteArray(),
      /* temperature= */ 0)

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy1)
    assertThat(valid).isNotEqualTo(noneCopy2)
    assertThat(valid).isNotEqualTo(noneCopy3)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("ActivityLaunched{sequenceId=2, test, temperature=0}")
  }


  /**
   * Test for ActivityLaunchFinished.
   */
  @Test
  fun testActivityLaunchFinished() {
    val valid = ActivityLaunchFinished(/* sequenceId= */2L, "test".toByteArray(),
      /* timestampNs= */ 1L)
    val copy = ActivityLaunchFinished(/* sequenceId= */2L, "test".toByteArray(),
      /* timestampNs= */ 1L)
    val noneCopy1 = ActivityLaunchFinished(/* sequenceId= */1L, "test".toByteArray(),
      /* timestampNs= */ 1L)
    val noneCopy2 = ActivityLaunchFinished(/* sequenceId= */1L, "test".toByteArray(),
      /* timestampNs= */ 2L)
    val noneCopy3 = ActivityLaunchFinished(/* sequenceId= */2L, "test1".toByteArray(),
      /* timestampNs= */ 1L)

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy1)
    assertThat(valid).isNotEqualTo(noneCopy2)
    assertThat(valid).isNotEqualTo(noneCopy3)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("ActivityLaunchFinished{sequenceId=2, test, timestampNs=1}")
  }

  /**
   * Test for ActivityLaunchCancelled.
   */
  @Test
  fun testActivityLaunchCancelled() {
    val valid = ActivityLaunchCancelled(/* sequenceId= */2L, "test".toByteArray())
    val copy = ActivityLaunchCancelled(/* sequenceId= */2L, "test".toByteArray())
    val noneCopy1 = ActivityLaunchCancelled(/* sequenceId= */1L, "test".toByteArray())
    val noneCopy2 = ActivityLaunchCancelled(/* sequenceId= */2L, "test1".toByteArray())

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy1)
    assertThat(valid).isNotEqualTo(noneCopy2)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("ActivityLaunchCancelled{sequenceId=2, test}")
  }

  /**
   * Test for ReportFullyDrawn.
   */
  @Test
  fun testReportFullyDrawn() {
    val valid = ReportFullyDrawn(/* sequenceId= */2L, "test".toByteArray(), /* timestampNs= */ 1L)
    val copy = ReportFullyDrawn(/* sequenceId= */2L, "test".toByteArray(), /* timestampNs= */ 1L)
    val noneCopy1 = ReportFullyDrawn(/* sequenceId= */1L, "test".toByteArray(),
      /* timestampNs= */ 1L)
    val noneCopy2 = ReportFullyDrawn(/* sequenceId= */1L, "test".toByteArray(),
      /* timestampNs= */ 1L)
    val noneCopy3 = ReportFullyDrawn(/* sequenceId= */2L, "test1".toByteArray(),
      /* timestampNs= */ 1L)

    // equals(Object other)
    assertThat(valid).isEqualTo(copy)
    assertThat(valid).isNotEqualTo(noneCopy1)
    assertThat(valid).isNotEqualTo(noneCopy2)
    assertThat(valid).isNotEqualTo(noneCopy3)

    // test toString()
    val result = valid.toString()
    assertThat(result).isEqualTo("ReportFullyDrawn{sequenceId=2, test, timestampNs=1}")
  }
}