summaryrefslogtreecommitdiff
path: root/adservices/tests/test-util/side-less/com/android/adservices/common
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/tests/test-util/side-less/com/android/adservices/common')
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/AbstractAdServicesFlagsSetterRule.java12
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/AbstractFlagsSetterRule.java59
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlag.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlags.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagDisabled.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagEnabled.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsDisabled.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsEnabled.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlag.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlags.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlag.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlags.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlag.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlags.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlag.java2
-rw-r--r--adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlags.java2
16 files changed, 82 insertions, 17 deletions
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractAdServicesFlagsSetterRule.java b/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractAdServicesFlagsSetterRule.java
index 6557027910..c0c704da18 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractAdServicesFlagsSetterRule.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractAdServicesFlagsSetterRule.java
@@ -267,6 +267,18 @@ abstract class AbstractAdServicesFlagsSetterRule<T extends AbstractAdServicesFla
});
}
+ public T setDebugUxFlagsForRvcUx() {
+ return runOrCache(
+ "setDebugUxFlagsForRvcUx()",
+ () -> {
+ if (!isAtLeastS() && isAtLeastR()) {
+ setFlag(FlagsConstants.KEY_CONSENT_NOTIFICATION_ACTIVITY_DEBUG_MODE, true);
+ setFlag(FlagsConstants.KEY_DEBUG_UX, "RVC_UX");
+ return;
+ }
+ });
+ }
+
////////////////////////////////////////////////////////////////////////////////////////////////
// NOTE: DO NOT add new setXyz() methods, unless they need non-trivial logic. Instead, let //
// your test call setFlags(flagName) (statically import FlagsConstant.flagName), which will //
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractFlagsSetterRule.java b/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractFlagsSetterRule.java
index 9d9fa631cb..8400a12eee 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractFlagsSetterRule.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/AbstractFlagsSetterRule.java
@@ -369,8 +369,12 @@ abstract class AbstractFlagsSetterRule<T extends AbstractFlagsSetterRule<T>> imp
/** Gets the device's SDK level. */
protected abstract int getDeviceSdk();
+ protected boolean isAtLeastR() {
+ return getDeviceSdk() >= 30;
+ }
+
protected boolean isAtLeastS() {
- return getDeviceSdk() > 31;
+ return getDeviceSdk() >= 31;
}
protected boolean isAtLeastT() {
@@ -385,7 +389,13 @@ abstract class AbstractFlagsSetterRule<T extends AbstractFlagsSetterRule<T>> imp
// Set the annotated flags with the specified value for a particular test method.
protected void setAnnotatedFlags(Description description) {
- for (Annotation annotation : description.getAnnotations()) {
+ List<Annotation> annotations = getAllFlagAnnotations(description);
+
+ // Apply the annotations in the reverse order. First apply from the super classes, test
+ // class and then test method. If same annotated flag is present in class and test
+ // method, test method takes higher priority.
+ for (int i = annotations.size() - 1; i >= 0; i--) {
+ Annotation annotation = annotations.get(i);
if (annotation instanceof SetFlagEnabled) {
setAnnotatedFlag((SetFlagEnabled) annotation);
} else if (annotation instanceof SetFlagsEnabled) {
@@ -416,7 +426,6 @@ abstract class AbstractFlagsSetterRule<T extends AbstractFlagsSetterRule<T>> imp
setAnnotatedFlag((SetStringFlags) annotation);
}
}
- // TODO(b/300146214) Add code to scan class / superclasses flag annotations.
}
private T setOrCacheFlag(String name, String value) {
@@ -542,6 +551,50 @@ abstract class AbstractFlagsSetterRule<T extends AbstractFlagsSetterRule<T>> imp
}
}
+ private boolean isFlagAnnotationPresent(Annotation annotation) {
+ return (annotation instanceof SetFlagEnabled)
+ || (annotation instanceof SetFlagsEnabled)
+ || (annotation instanceof SetFlagDisabled)
+ || (annotation instanceof SetFlagsDisabled)
+ || (annotation instanceof SetIntegerFlag)
+ || (annotation instanceof SetIntegerFlags)
+ || (annotation instanceof SetLongFlag)
+ || (annotation instanceof SetLongFlags)
+ || (annotation instanceof SetFloatFlag)
+ || (annotation instanceof SetFloatFlags)
+ || (annotation instanceof SetDoubleFlag)
+ || (annotation instanceof SetDoubleFlags)
+ || (annotation instanceof SetStringFlag)
+ || (annotation instanceof SetStringFlags);
+ }
+
+ private List<Annotation> getAllFlagAnnotations(Description description) {
+ // TODO(b/318893752): Move this to a helper function to scan test method, class and
+ // superclasses for annotations.
+ List<Annotation> result = new ArrayList<>();
+ for (Annotation testMethodAnnotation : description.getAnnotations()) {
+ if (isFlagAnnotationPresent(testMethodAnnotation)) {
+ result.add(testMethodAnnotation);
+ }
+ }
+
+ // Get all the flag based annotations from test class and super classes
+ Class<?> clazz = description.getTestClass();
+ do {
+ Annotation[] classAnnotations = clazz.getAnnotations();
+ if (classAnnotations != null) {
+ for (Annotation annotation : classAnnotations) {
+ if (isFlagAnnotationPresent(annotation)) {
+ result.add(annotation);
+ }
+ }
+ }
+ clazz = clazz.getSuperclass();
+ } while (clazz != null);
+
+ return result;
+ }
+
// Single SetFlagEnabled annotations present
private void setAnnotatedFlag(SetFlagEnabled annotation) {
setFlag(annotation.value(), true);
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlag.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlag.java
index 4b24b84433..93988e09fb 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlag.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlag.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
* <p>This should be used with {@code AdServicesFlagsSetterRule}.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetDoubleFlags.class)
public @interface SetDoubleFlag {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlags.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlags.java
index f152396800..7415bb1055 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlags.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetDoubleFlags.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetDoubleFlags {
SetDoubleFlag[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagDisabled.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagDisabled.java
index a62d8b0762..a8d3bddce2 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagDisabled.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagDisabled.java
@@ -29,7 +29,7 @@ import java.lang.annotation.Target;
* in the test to false.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetFlagsDisabled.class)
public @interface SetFlagDisabled {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagEnabled.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagEnabled.java
index bdc0ae77db..ae041a7d00 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagEnabled.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagEnabled.java
@@ -29,7 +29,7 @@ import java.lang.annotation.Target;
* in the test to true.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetFlagsEnabled.class)
public @interface SetFlagEnabled {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsDisabled.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsDisabled.java
index 2f470e2a34..361950b094 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsDisabled.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsDisabled.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetFlagsDisabled {
SetFlagDisabled[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsEnabled.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsEnabled.java
index bb67d1182b..7e197c8de5 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsEnabled.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFlagsEnabled.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetFlagsEnabled {
SetFlagEnabled[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlag.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlag.java
index 4f404404d2..421f79cbb9 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlag.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlag.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
* <p>This should be used with {@code AdServicesFlagsSetterRule}.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetFloatFlags.class)
public @interface SetFloatFlag {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlags.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlags.java
index 0e839c2abb..a15f4a5787 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlags.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetFloatFlags.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetFloatFlags {
SetFloatFlag[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlag.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlag.java
index e02b72f794..c5895be1d5 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlag.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlag.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
* <p>This should be used with {@code AdServicesFlagsSetterRule}.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetIntegerFlags.class)
public @interface SetIntegerFlag {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlags.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlags.java
index b8386707fb..cc76a947e1 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlags.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetIntegerFlags.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetIntegerFlags {
SetIntegerFlag[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlag.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlag.java
index 473758cd28..bee66b1427 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlag.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlag.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
* <p>This should be used with {@code AdServicesFlagsSetterRule}.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetLongFlags.class)
public @interface SetLongFlag {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlags.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlags.java
index 46303a573b..38309e88dc 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlags.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetLongFlags.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetLongFlags {
SetLongFlag[] value();
}
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlag.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlag.java
index 1b46d431bd..bb3685892d 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlag.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlag.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
* <p>This should be used with {@code AdServicesFlagsSetterRule}.
*/
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
@Repeatable(SetStringFlags.class)
public @interface SetStringFlag {
/** Name of the flag. */
diff --git a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlags.java b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlags.java
index bf39a4d609..f4bac410b1 100644
--- a/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlags.java
+++ b/adservices/tests/test-util/side-less/com/android/adservices/common/annotations/SetStringFlags.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
+@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SetStringFlags {
SetStringFlag[] value();
}