@@ -38,14 +38,15 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
38
38
{
39
39
name : "Success Case - no optional params - use defaults" ,
40
40
mockConfig : & MockListMissingOneImplCountsConfig {
41
- expectedTargetBrowser : "chrome" ,
42
- expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
43
- expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
44
- expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
45
- expectedPageSize : 100 ,
46
- expectedPageToken : nil ,
47
- pageToken : nil ,
48
- err : nil ,
41
+ expectedTargetBrowser : "chrome" ,
42
+ expectedTargetMobileBrowser : nil ,
43
+ expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
44
+ expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
45
+ expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
46
+ expectedPageSize : 100 ,
47
+ expectedPageToken : nil ,
48
+ pageToken : nil ,
49
+ err : nil ,
49
50
page : & backend.BrowserReleaseFeatureMetricsPage {
50
51
Metadata : & backend.PageMetadata {
51
52
NextPageToken : nil ,
@@ -143,13 +144,14 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
143
144
{
144
145
name : "Success Case - include optional params" ,
145
146
mockConfig : & MockListMissingOneImplCountsConfig {
146
- expectedTargetBrowser : "chrome" ,
147
- expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
148
- expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
149
- expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
150
- expectedPageSize : 50 ,
151
- expectedPageToken : inputPageToken ,
152
- err : nil ,
147
+ expectedTargetBrowser : "chrome" ,
148
+ expectedTargetMobileBrowser : valuePtr ("chrome_android" ),
149
+ expectedOtherBrowsers : []string {"firefox" , "firefox_android" , "safari" , "safari_ios" },
150
+ expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
151
+ expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
152
+ expectedPageSize : 50 ,
153
+ expectedPageToken : inputPageToken ,
154
+ err : nil ,
153
155
page : & backend.BrowserReleaseFeatureMetricsPage {
154
156
Metadata : & backend.PageMetadata {
155
157
NextPageToken : nextPageToken ,
@@ -171,7 +173,7 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
171
173
{
172
174
Key : `ListMissingOneImplementationCounts-{"browser":"chrome","Params":{"startAt":"2000-01-01",` +
173
175
`"endAt":"2000-01-10","page_token":"input-token",` +
174
- `"page_size":50,"browser":["edge", "firefox","safari"]}}` ,
176
+ `"page_size":50,"include_baseline_mobile_browsers":true,"browser":[ "firefox","safari"]}}` ,
175
177
Value : nil ,
176
178
Err : cachetypes .ErrCachedDataNotFound ,
177
179
},
@@ -180,7 +182,7 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
180
182
{
181
183
Key : `ListMissingOneImplementationCounts-{"browser":"chrome","Params":{"startAt":"2000-01-01",` +
182
184
`"endAt":"2000-01-10","page_token":"input-token",` +
183
- `"page_size":50,"browser":["edge", "firefox","safari"]}}` ,
185
+ `"page_size":50,"include_baseline_mobile_browsers":true,"browser":[ "firefox","safari"]}}` ,
184
186
Value : []byte (
185
187
`{"data":[{"count":10,"timestamp":"2000-01-10T00:00:00Z"},` +
186
188
`{"count":9,"timestamp":"2000-01-09T00:00:00Z"}],` +
@@ -208,7 +210,7 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
208
210
}` ),
209
211
request : httptest .NewRequest (http .MethodGet ,
210
212
"/v1/stats/features/browsers/chrome/missing_one_implementation_counts?" +
211
- "browser=edge&browser= firefox&browser=safari&" +
213
+ "browser=firefox&browser=safari&include_baseline_mobile_browsers=true &" +
212
214
"startAt=2000-01-01&endAt=2000-01-10&page_size=50&page_token=" + * inputPageToken , nil ),
213
215
},
214
216
{
@@ -253,15 +255,16 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
253
255
{
254
256
name : "500 case" ,
255
257
mockConfig : & MockListMissingOneImplCountsConfig {
256
- expectedTargetBrowser : "chrome" ,
257
- expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
258
- expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
259
- expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
260
- expectedPageSize : 100 ,
261
- expectedPageToken : nil ,
262
- page : nil ,
263
- pageToken : nil ,
264
- err : errTest ,
258
+ expectedTargetBrowser : "chrome" ,
259
+ expectedTargetMobileBrowser : nil ,
260
+ expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
261
+ expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
262
+ expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
263
+ expectedPageSize : 100 ,
264
+ expectedPageToken : nil ,
265
+ page : nil ,
266
+ pageToken : nil ,
267
+ err : errTest ,
265
268
},
266
269
expectedGetCalls : []* ExpectedGetCall {
267
270
{
@@ -283,15 +286,16 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
283
286
{
284
287
name : "400 case - invalid page token" ,
285
288
mockConfig : & MockListMissingOneImplCountsConfig {
286
- expectedTargetBrowser : "chrome" ,
287
- expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
288
- expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
289
- expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
290
- expectedPageSize : 100 ,
291
- expectedPageToken : badPageToken ,
292
- page : nil ,
293
- pageToken : nil ,
294
- err : backendtypes .ErrInvalidPageToken ,
289
+ expectedTargetBrowser : "chrome" ,
290
+ expectedTargetMobileBrowser : nil ,
291
+ expectedOtherBrowsers : []string {"edge" , "firefox" , "safari" },
292
+ expectedStartAt : time .Date (2000 , time .January , 1 , 0 , 0 , 0 , 0 , time .UTC ),
293
+ expectedEndAt : time .Date (2000 , time .January , 10 , 0 , 0 , 0 , 0 , time .UTC ),
294
+ expectedPageSize : 100 ,
295
+ expectedPageToken : badPageToken ,
296
+ page : nil ,
297
+ pageToken : nil ,
298
+ err : backendtypes .ErrInvalidPageToken ,
295
299
},
296
300
expectedGetCalls : []* ExpectedGetCall {
297
301
{
@@ -309,6 +313,27 @@ func TestListMissingOneImplementationCounts(t *testing.T) {
309
313
"browser=edge&browser=firefox&browser=safari&" +
310
314
"startAt=2000-01-01&endAt=2000-01-10&page_token" + * badPageToken , nil ),
311
315
},
316
+ {
317
+ name : "400 case - no matching mobile browser" ,
318
+ mockConfig : nil ,
319
+ expectedGetCalls : []* ExpectedGetCall {
320
+ {
321
+ Key : `ListMissingOneImplementationCounts-{"browser":"edge","Params":{"startAt":"2000-01-01",` +
322
+ `"endAt":"2000-01-10","include_baseline_mobile_browsers":true,` +
323
+ `"browser":["chrome","firefox","safari"]}}` ,
324
+ Value : nil ,
325
+ Err : cachetypes .ErrCachedDataNotFound ,
326
+ },
327
+ },
328
+ expectedCacheCalls : nil ,
329
+ expectedCallCount : 0 ,
330
+ expectedResponse : testJSONResponse (400 ,
331
+ `{"code":400,"message":"browser does not have a matching mobile browser"}` ),
332
+ request : httptest .NewRequest (http .MethodGet ,
333
+ "/v1/stats/features/browsers/edge/missing_one_implementation_counts?" +
334
+ "browser=chrome&browser=firefox&browser=safari&" +
335
+ "startAt=2000-01-01&endAt=2000-01-10&include_baseline_mobile_browsers=true" , nil ),
336
+ },
312
337
}
313
338
314
339
for _ , tc := range testCases {
0 commit comments