diff options
Diffstat (limited to 'adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java')
-rw-r--r-- | adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java | 118 |
1 files changed, 105 insertions, 13 deletions
diff --git a/adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java b/adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java index c563d9a421..d3250af480 100644 --- a/adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java +++ b/adservices/tests/unittest/service-core/src/com/android/adservices/service/measurement/TriggerTest.java @@ -19,14 +19,15 @@ package com.android.adservices.service.measurement; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import android.net.Uri; import com.android.adservices.service.measurement.aggregation.AggregatableAttributionTrigger; -import com.android.adservices.service.measurement.aggregation.AggregateFilterData; import com.android.adservices.service.measurement.aggregation.AggregateTriggerData; +import com.android.adservices.service.measurement.util.UnsignedLong; import org.json.JSONArray; import org.json.JSONException; @@ -65,7 +66,17 @@ public class TriggerTest { + "}" + "]\n"; - private static final Long DEBUG_KEY = 2367372L; + private static final UnsignedLong DEBUG_KEY = new UnsignedLong(2367372L); + private static final Uri APP_DESTINATION = Uri.parse("android-app://com.android.app"); + private static final Uri APP_DESTINATION_WITH_PATH = + Uri.parse("android-app://com.android.app/with/path"); + private static final Uri WEB_DESTINATION = Uri.parse("https://example.com"); + private static final Uri WEB_DESTINATION_WITH_PATH = Uri.parse("https://example.com/with/path"); + private static final Uri WEB_DESTINATION_WITH_SUBDOMAIN = + Uri.parse("https://subdomain.example.com"); + private static final Uri WEB_DESTINATION_WITH_SUBDOMAIN_PATH_QUERY_FRAGMENT = + Uri.parse("https://subdomain.example.com/with/path?query=0#fragment"); + private static final Uri WEB_DESTINATION_INVALID = Uri.parse("https://example.notatld"); @Test public void testEqualsPass() throws JSONException { @@ -96,6 +107,7 @@ public class TriggerTest { .setAggregateTriggerData(aggregateTriggerDatas.toString()) .setAggregateValues(values.toString()) .setFilters(TOP_LEVEL_FILTERS_JSON_STRING) + .setNotFilters(TOP_LEVEL_FILTERS_JSON_STRING) .setDebugKey(DEBUG_KEY) .setAggregatableAttributionTrigger( TriggerFixture.getValidTrigger() @@ -113,6 +125,7 @@ public class TriggerTest { .setAggregateTriggerData(aggregateTriggerDatas.toString()) .setAggregateValues(values.toString()) .setFilters(TOP_LEVEL_FILTERS_JSON_STRING) + .setNotFilters(TOP_LEVEL_FILTERS_JSON_STRING) .setDebugKey(DEBUG_KEY) .setAggregatableAttributionTrigger( TriggerFixture.getValidTrigger() @@ -187,6 +200,11 @@ public class TriggerTest { .setFilters(TOP_LEVEL_FILTERS_JSON_STRING).build(), TriggerFixture.getValidTriggerBuilder() .setFilters(TOP_LEVEL_FILTERS_JSON_STRING_X).build()); + assertNotEquals( + TriggerFixture.getValidTriggerBuilder() + .setNotFilters(TOP_LEVEL_FILTERS_JSON_STRING).build(), + TriggerFixture.getValidTriggerBuilder() + .setNotFilters(TOP_LEVEL_FILTERS_JSON_STRING_X).build()); } @Test @@ -222,6 +240,7 @@ public class TriggerTest { TriggerFixture.ValidTriggerParams.AGGREGATE_TRIGGER_DATA, TriggerFixture.ValidTriggerParams.AGGREGATE_VALUES, TriggerFixture.ValidTriggerParams.TOP_LEVEL_FILTERS_JSON_STRING, + TriggerFixture.ValidTriggerParams.TOP_LEVEL_NOT_FILTERS_JSON_STRING, TriggerFixture.ValidTriggerParams.DEBUG_KEY); assertInvalidTriggerArguments( Uri.parse("com.destination"), @@ -232,6 +251,7 @@ public class TriggerTest { TriggerFixture.ValidTriggerParams.AGGREGATE_TRIGGER_DATA, TriggerFixture.ValidTriggerParams.AGGREGATE_VALUES, TriggerFixture.ValidTriggerParams.TOP_LEVEL_FILTERS_JSON_STRING, + TriggerFixture.ValidTriggerParams.TOP_LEVEL_NOT_FILTERS_JSON_STRING, TriggerFixture.ValidTriggerParams.DEBUG_KEY); } @@ -246,6 +266,7 @@ public class TriggerTest { TriggerFixture.ValidTriggerParams.AGGREGATE_TRIGGER_DATA, TriggerFixture.ValidTriggerParams.AGGREGATE_VALUES, TriggerFixture.ValidTriggerParams.TOP_LEVEL_FILTERS_JSON_STRING, + TriggerFixture.ValidTriggerParams.TOP_LEVEL_NOT_FILTERS_JSON_STRING, TriggerFixture.ValidTriggerParams.DEBUG_KEY); } @@ -260,6 +281,7 @@ public class TriggerTest { TriggerFixture.ValidTriggerParams.AGGREGATE_TRIGGER_DATA, TriggerFixture.ValidTriggerParams.AGGREGATE_VALUES, TriggerFixture.ValidTriggerParams.TOP_LEVEL_FILTERS_JSON_STRING, + TriggerFixture.ValidTriggerParams.TOP_LEVEL_NOT_FILTERS_JSON_STRING, TriggerFixture.ValidTriggerParams.DEBUG_KEY); assertInvalidTriggerArguments( TriggerFixture.ValidTriggerParams.ATTRIBUTION_DESTINATION, @@ -270,6 +292,7 @@ public class TriggerTest { TriggerFixture.ValidTriggerParams.AGGREGATE_TRIGGER_DATA, TriggerFixture.ValidTriggerParams.AGGREGATE_VALUES, TriggerFixture.ValidTriggerParams.TOP_LEVEL_FILTERS_JSON_STRING, + TriggerFixture.ValidTriggerParams.TOP_LEVEL_NOT_FILTERS_JSON_STRING, TriggerFixture.ValidTriggerParams.DEBUG_KEY); } @@ -343,6 +366,73 @@ public class TriggerTest { } @Test + public void testGetAttributionDestinationBaseUri_appDestination() throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(APP_DESTINATION) + .setDestinationType(EventSurfaceType.APP) + .build(); + assertEquals(APP_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_trimsAppDestination() throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(APP_DESTINATION_WITH_PATH) + .setDestinationType(EventSurfaceType.APP) + .build(); + assertEquals(APP_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_webDestination() throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(WEB_DESTINATION) + .setDestinationType(EventSurfaceType.WEB) + .build(); + assertEquals(WEB_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_trimsWebDestinationWithSubdomain() + throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(WEB_DESTINATION_WITH_SUBDOMAIN) + .setDestinationType(EventSurfaceType.WEB) + .build(); + assertEquals(WEB_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_trimsWebDestinationWithPath() + throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(WEB_DESTINATION_WITH_PATH) + .setDestinationType(EventSurfaceType.WEB) + .build(); + assertEquals(WEB_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_trimsWebDestinationWithSubdomainPathQueryFrag() + throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(WEB_DESTINATION_WITH_SUBDOMAIN_PATH_QUERY_FRAGMENT) + .setDestinationType(EventSurfaceType.WEB) + .build(); + assertEquals(WEB_DESTINATION, trigger.getAttributionDestinationBaseUri()); + } + + @Test + public void testGetAttributionDestinationBaseUri_invalidWebDestination() + throws JSONException { + Trigger trigger = TriggerFixture.getValidTriggerBuilder() + .setAttributionDestination(WEB_DESTINATION_INVALID) + .setDestinationType(EventSurfaceType.WEB) + .build(); + assertNull(trigger.getAttributionDestinationBaseUri()); + } + + @Test public void parseEventTriggers() throws JSONException { // setup JSONObject filters1 = @@ -392,25 +482,25 @@ public class TriggerTest { EventTrigger eventTrigger1 = new EventTrigger.Builder() .setTriggerPriority(2L) - .setTriggerData(2L) - .setDedupKey(2L) + .setTriggerData(new UnsignedLong(2L)) + .setDedupKey(new UnsignedLong(2L)) .setFilter( - new AggregateFilterData.Builder() - .buildAggregateFilterData(filters1) + new FilterData.Builder() + .buildFilterData(filters1) .build()) .setNotFilter( - new AggregateFilterData.Builder() - .buildAggregateFilterData(notFilters1) + new FilterData.Builder() + .buildFilterData(notFilters1) .build()) .build(); EventTrigger eventTrigger2 = new EventTrigger.Builder() .setTriggerPriority(3L) - .setTriggerData(3L) - .setDedupKey(3L) + .setTriggerData(new UnsignedLong(3L)) + .setDedupKey(new UnsignedLong(3L)) .setNotFilter( - new AggregateFilterData.Builder() - .buildAggregateFilterData(notFilters2) + new FilterData.Builder() + .buildFilterData(notFilters2) .build()) .build(); @@ -430,7 +520,8 @@ public class TriggerTest { String aggregateTriggerData, String aggregateValues, String filters, - Long debugKey) { + String notFilters, + UnsignedLong debugKey) { assertThrows( IllegalArgumentException.class, () -> @@ -443,6 +534,7 @@ public class TriggerTest { .setAggregateTriggerData(aggregateTriggerData) .setAggregateValues(aggregateValues) .setFilters(filters) + .setNotFilters(notFilters) .setDebugKey(debugKey) .build()); } |