Merge "Enable dismissal feature on legacy suggestions." am: ee39335edc am: 8d8c3e19b5 am: b26711944b

am: 3b8a14e86f

Change-Id: I97bcdc54f908db6f5895d99f284ee24fb4015433
This commit is contained in:
Yi-Ling Chuang
2019-09-22 20:23:28 -07:00
committed by android-build-merger
8 changed files with 159 additions and 10 deletions

View File

@@ -18,11 +18,17 @@ package com.android.settings.homepage.contextualcards.legacysuggestion;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.service.settings.suggestions.Suggestion;
import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.suggestions.SuggestionController;
@@ -91,4 +97,49 @@ public class LegacySuggestionContextualCardControllerTest {
verify(mSuggestionController).getSuggestions();
}
@Test
public void onDismiss_shouldCallSuggestionControllerDismiss() {
mController.mSuggestionController = mSuggestionController;
mController.setCardUpdateListener(mCardUpdateListener);
mController.onDismissed(buildContextualCard("test1"));
verify(mSuggestionController).dismissSuggestions(any(Suggestion.class));
}
@Test
public void onDismiss_shouldRemoveSuggestionFromList() {
mController.setCardUpdateListener(mCardUpdateListener);
mController.mSuggestions.add(buildContextualCard("test1"));
final ContextualCard card2 = buildContextualCard("test2");
mController.mSuggestions.add(card2);
assertThat(mController.mSuggestions).hasSize(2);
mController.onDismissed(card2);
assertThat(mController.mSuggestions).hasSize(1);
}
@Test
public void onDismiss_shouldCallUpdateAdapter() {
mController.setCardUpdateListener(mCardUpdateListener);
final ContextualCard card = buildContextualCard("test1");
mController.mSuggestions.add(card);
mController.onDismissed(card);
verify(mCardUpdateListener).onContextualCardUpdated(anyMap());
}
private ContextualCard buildContextualCard(String name) {
return new LegacySuggestionContextualCard.Builder()
.setSuggestion(mock(Suggestion.class))
.setName(name)
.setTitleText("test_title")
.setSummaryText("test_summary")
.setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
.setViewType(LegacySuggestionContextualCardRenderer.VIEW_TYPE)
.build();
}
}

View File

@@ -82,6 +82,25 @@ public class LegacySuggestionContextualCardRendererTest {
assertThat(cardView.hasOnClickListeners()).isTrue();
}
@Test
public void bindView_closeButton_shouldSetListener() {
final RecyclerView recyclerView = new RecyclerView(mActivity);
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
final ContextualCard card = buildContextualCard();
final View cardView = LayoutInflater.from(mActivity).inflate(card.getViewType(),
recyclerView, false);
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(cardView,
card.getViewType());
final View closeButton = viewHolder.itemView.findViewById(R.id.close_button);
when(mControllerRendererPool.getController(mActivity,
ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
mRenderer.bindView(viewHolder, buildContextualCard());
assertThat(closeButton).isNotNull();
assertThat(closeButton.hasOnClickListeners()).isTrue();
}
@Test
public void viewClick_shouldInvokeControllerPrimaryClick() {
final RecyclerView recyclerView = new RecyclerView(mActivity);
@@ -102,6 +121,27 @@ public class LegacySuggestionContextualCardRendererTest {
verify(mController).onPrimaryClick(any(ContextualCard.class));
}
@Test
public void viewClick_closeButton_shouldInvokeControllerDismissClick() {
final RecyclerView recyclerView = new RecyclerView(mActivity);
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
final ContextualCard card = buildContextualCard();
final View cardView = LayoutInflater.from(mActivity).inflate(card.getViewType(),
recyclerView, false);
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(cardView,
card.getViewType());
final View closeButton = viewHolder.itemView.findViewById(R.id.close_button);
when(mControllerRendererPool.getController(mActivity,
ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
mRenderer.bindView(viewHolder, buildContextualCard());
assertThat(closeButton).isNotNull();
closeButton.performClick();
verify(mController).onDismissed(any(ContextualCard.class));
}
private ContextualCard buildContextualCard() {
return new LegacySuggestionContextualCard.Builder()
.setName("test_name")

View File

@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import android.app.PendingIntent;
import android.service.settings.suggestions.Suggestion;
import com.android.settings.homepage.contextualcards.ContextualCard;
@@ -51,4 +52,12 @@ public class LegacySuggestionContextualCardTest {
.build()
.getPendingIntent()).isNotNull();
}
@Test
public void build_shouldSetSuggestion() {
assertThat(new LegacySuggestionContextualCard.Builder()
.setSuggestion(mock(Suggestion.class))
.build()
.getSuggestion()).isNotNull();
}
}