• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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