Merge "Record all contextual card log to MetricsFeatureProvider" into qt-dev
am: dc4f7ce282
Change-Id: Ib4122ef0cb900ba5afff73e25e1f0ffe6bcb50c1
This commit is contained in:
@@ -22,12 +22,15 @@ import static com.android.settings.homepage.contextualcards.ContextualCardLoader
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyList;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
|
||||
@@ -182,8 +185,10 @@ public class ContextualCardLoaderTest {
|
||||
|
||||
mContextualCardLoader.getDisplayableCards(new ArrayList<>());
|
||||
|
||||
verify(mFakeFeatureFactory.mContextualCardFeatureProvider).logContextualCardDisplay(
|
||||
anyList(), anyList());
|
||||
verify(mFakeFeatureFactory.metricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW), any(String.class));
|
||||
verify(mFakeFeatureFactory.metricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW), any(String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.homepage.contextualcards.logging;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
import com.android.settings.homepage.contextualcards.ContextualCard;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class ContextualCardLogUtilsTest {
|
||||
|
||||
private static final String TEST_URI = "content://test/test2";
|
||||
private static final double TEST_SCORE = 0.12345f;
|
||||
|
||||
private static final ContextualCard TEST_CARD =
|
||||
new ContextualCard.Builder()
|
||||
.setSliceUri(Uri.parse(TEST_URI))
|
||||
.setRankingScore(TEST_SCORE)
|
||||
.build();
|
||||
|
||||
@Test
|
||||
public void parseCardDismissLog_notValid_returnNull() {
|
||||
assertThat(ContextualCardLogUtils.parseCardDismissLog(TEST_URI + "|" + TEST_URI)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseCardDismissLog_isValid_returnCorrectData() {
|
||||
final String log = ContextualCardLogUtils.buildCardDismissLog(TEST_CARD);
|
||||
|
||||
final ContextualCardLogUtils.CardLog cardLog = ContextualCardLogUtils.parseCardDismissLog(
|
||||
log);
|
||||
|
||||
assertThat(cardLog.getSliceUri()).isEqualTo(TEST_URI);
|
||||
assertThat(cardLog.getRankingScore()).isEqualTo(TEST_SCORE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseCardClickLog_isValid_returnCorrectData() {
|
||||
final int row = 1;
|
||||
final int target = 2;
|
||||
final int position = 3;
|
||||
final String log = ContextualCardLogUtils.buildCardClickLog(TEST_CARD, row, target,
|
||||
position);
|
||||
|
||||
final ContextualCardLogUtils.CardClickLog cardClickLog =
|
||||
ContextualCardLogUtils.parseCardClickLog(log);
|
||||
|
||||
assertThat(cardClickLog.getSliceUri()).isEqualTo(TEST_URI);
|
||||
assertThat(cardClickLog.getRankingScore()).isEqualTo(TEST_SCORE);
|
||||
assertThat(cardClickLog.getSliceRow()).isEqualTo(row);
|
||||
assertThat(cardClickLog.getSliceTapTarget()).isEqualTo(
|
||||
ContextualCardLogUtils.actionTypeToTapTarget(target));
|
||||
assertThat(cardClickLog.getUiPosition()).isEqualTo(position);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseCardClickList_isValid_returnCorrectData() {
|
||||
final ContextualCard testcard =
|
||||
new ContextualCard.Builder()
|
||||
.setSliceUri(Uri.parse("testtest"))
|
||||
.setRankingScore(-1d)
|
||||
.build();
|
||||
final List<ContextualCard> cardList = new ArrayList<>();
|
||||
cardList.add(TEST_CARD);
|
||||
cardList.add(testcard);
|
||||
final String log = ContextualCardLogUtils.buildCardListLog(cardList);
|
||||
|
||||
final List<ContextualCardLogUtils.CardLog> cardClickLogList =
|
||||
ContextualCardLogUtils.parseCardListLog(log);
|
||||
|
||||
assertThat(cardClickLogList.size()).isEqualTo(2);
|
||||
assertThat(cardClickLogList.get(0).getSliceUri()).isEqualTo(TEST_URI);
|
||||
assertThat(cardClickLogList.get(0).getRankingScore()).isEqualTo(TEST_SCORE);
|
||||
assertThat(cardClickLogList.get(1).getSliceUri()).isEqualTo("testtest");
|
||||
assertThat(cardClickLogList.get(1).getRankingScore()).isEqualTo(-1d);
|
||||
}
|
||||
}
|
@@ -18,13 +18,15 @@ package com.android.settings.homepage.contextualcards.slices;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
@@ -96,7 +98,8 @@ public class SliceContextualCardControllerTest {
|
||||
cr.close();
|
||||
|
||||
assertThat(qryDismissed).isEqualTo(1);
|
||||
verify(mFeatureFactory.mContextualCardFeatureProvider).logContextualCardDismiss(card);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS), any(String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user