1 /* 2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.adservices.common; 18 19 import android.net.Uri; 20 21 import com.android.adservices.common.JsonFixture; 22 23 import com.google.common.collect.ImmutableList; 24 import com.google.common.collect.ImmutableSet; 25 26 import org.json.JSONException; 27 28 import java.util.List; 29 30 /** Utility class supporting ad services API unit tests */ 31 public class AdDataFixture { 32 // TODO(b/266837113) Set to true once app install is unhidden 33 public static final boolean APP_INSTALL_ENABLED = false; 34 // TODO(b/221876775) Set to true once fcap is unhidden 35 public static final boolean FCAP_ENABLED = false; 36 public static final String VALID_METADATA = "{\"example\": \"metadata\", \"valid\": true}"; 37 public static final String INVALID_METADATA = "not.{real!metadata} = 1"; 38 getAdCounterKeys()39 public static ImmutableSet<String> getAdCounterKeys() { 40 return ImmutableSet.<String>builder() 41 .add( 42 KeyedFrequencyCapFixture.KEY1, 43 KeyedFrequencyCapFixture.KEY2, 44 KeyedFrequencyCapFixture.KEY3, 45 KeyedFrequencyCapFixture.KEY4) 46 .build(); 47 } 48 getValidRenderUriByBuyer(AdTechIdentifier buyer, int sequence)49 public static Uri getValidRenderUriByBuyer(AdTechIdentifier buyer, int sequence) { 50 return CommonFixture.getUri(buyer, "/testing/hello" + sequence); 51 } 52 getValidAdsByBuyer(AdTechIdentifier buyer)53 public static List<AdData> getValidAdsByBuyer(AdTechIdentifier buyer) { 54 return ImmutableList.of( 55 getValidAdDataByBuyer(buyer, 1), 56 getValidAdDataByBuyer(buyer, 2), 57 getValidAdDataByBuyer(buyer, 3), 58 getValidAdDataByBuyer(buyer, 4)); 59 } 60 61 // TODO(b/266837113) Merge with getValidAdsByBuyer once filters are unhidden getValidFilterAdsByBuyer(AdTechIdentifier buyer)62 public static List<AdData> getValidFilterAdsByBuyer(AdTechIdentifier buyer) { 63 return ImmutableList.of( 64 getValidFilterAdDataByBuyer(buyer, 1), 65 getValidFilterAdDataByBuyer(buyer, 2), 66 getValidAdDataByBuyer(buyer, 3), 67 getValidAdDataByBuyer(buyer, 4)); 68 } 69 getInvalidAdsByBuyer(AdTechIdentifier buyer)70 public static List<AdData> getInvalidAdsByBuyer(AdTechIdentifier buyer) { 71 return ImmutableList.of( 72 new AdData.Builder() 73 .setRenderUri(getValidRenderUriByBuyer(buyer, 1)) 74 .setMetadata(INVALID_METADATA) 75 .build(), 76 new AdData.Builder() 77 .setRenderUri(getValidRenderUriByBuyer(buyer, 2)) 78 .setMetadata(INVALID_METADATA) 79 .build(), 80 new AdData.Builder() 81 .setRenderUri(getValidRenderUriByBuyer(buyer, 3)) 82 .setMetadata(INVALID_METADATA) 83 .build(), 84 new AdData.Builder() 85 .setRenderUri(getValidRenderUriByBuyer(buyer, 4)) 86 .setMetadata(INVALID_METADATA) 87 .build()); 88 } 89 getValidAdDataBuilderByBuyer( AdTechIdentifier buyer, int sequenceNumber)90 public static AdData.Builder getValidAdDataBuilderByBuyer( 91 AdTechIdentifier buyer, int sequenceNumber) { 92 String metadata; 93 try { 94 metadata = JsonFixture.formatAsOrgJsonJSONObjectString(VALID_METADATA); 95 } catch (JSONException exception) { 96 throw new IllegalStateException("Error parsing valid metadata!", exception); 97 } 98 99 return new AdData.Builder() 100 .setRenderUri(getValidRenderUriByBuyer(buyer, sequenceNumber)) 101 .setMetadata(metadata); 102 } 103 104 // TODO(b/266837113) Merge with getValidAdDataByBuyer once filters are unhidden getValidFilterAdDataBuilderByBuyer( AdTechIdentifier buyer, int sequenceNumber)105 public static AdData.Builder getValidFilterAdDataBuilderByBuyer( 106 AdTechIdentifier buyer, int sequenceNumber) { 107 return getValidAdDataBuilderByBuyer(buyer, sequenceNumber) 108 .setAdCounterKeys(getAdCounterKeys()) 109 .setAdFilters(AdFiltersFixture.getValidAdFilters()); 110 } 111 112 // TODO(b/266837113) Merge with getValidAdDataByBuyer once filters are unhidden getValidFilterAdDataByBuyer(AdTechIdentifier buyer, int sequenceNumber)113 public static AdData getValidFilterAdDataByBuyer(AdTechIdentifier buyer, int sequenceNumber) { 114 return getValidFilterAdDataBuilderByBuyer(buyer, sequenceNumber).build(); 115 } 116 getValidAdDataByBuyer(AdTechIdentifier buyer, int sequenceNumber)117 public static AdData getValidAdDataByBuyer(AdTechIdentifier buyer, int sequenceNumber) { 118 return getValidAdDataBuilderByBuyer(buyer, sequenceNumber).build(); 119 } 120 } 121