Merge "Enable dismissal feature on legacy suggestions." am: ee39335edc
am: 8d8c3e19b5
am: b26711944b
am: 3b8a14e86f
Change-Id: I97bcdc54f908db6f5895d99f284ee24fb4015433
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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")
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user