Commit 6f807ad1 authored by Tomasz Wiszkowski's avatar Tomasz Wiszkowski Committed by Commit Bot

Update Omnibox content with selected suggestion only.

This CL addresses a bug, where Omnibox content would occasionally get
updated with the inaccurate content when browsing the suggestions
using Keyboard.

Bug: 1054399
Change-Id: Ic00d8e2b6bbf6680de56ca78cfacf4a25d5f8b68
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2081890Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Commit-Queue: Ender <ender@google.com>
Cr-Commit-Position: refs/heads/master@{#746160}
parent 17bbb0fb
......@@ -109,7 +109,9 @@ public class BaseSuggestionView<T extends View> extends SimpleHorizontalLayoutVi
@Override
public void setSelected(boolean selected) {
mDecoratedView.setSelected(selected);
mDelegate.onSetUrlToSuggestion();
if (selected) {
mDelegate.onSetUrlToSuggestion();
}
}
/**
......
......@@ -5,6 +5,9 @@
package org.chromium.chrome.browser.omnibox.suggestions.base;
import static org.hamcrest.Matchers.lessThanOrEqualTo;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.app.Activity;
import android.view.View;
......@@ -14,11 +17,13 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.omnibox.suggestions.basic.SuggestionViewDelegate;
import org.chromium.testing.local.LocalRobolectricTestRunner;
/**
......@@ -36,6 +41,9 @@ public class BaseSuggestionViewTest {
private View mDecoratedView;
private View mContentView;
@Mock
SuggestionViewDelegate mMockDelegate;
// IMPORTANT: We need to extend the tested class here to support functionality currently
// omitted by Robolectric, that is relevant to the tests below (layout direction change).
//
......@@ -87,6 +95,7 @@ public class BaseSuggestionViewTest {
mActivity = Robolectric.buildActivity(Activity.class).setup().get();
mContentView = new View(mActivity);
mView = new BaseSuggestionViewForTest(mContentView);
mView.setDelegate(mMockDelegate);
mActionIconWidthPx = mActivity.getResources().getDimensionPixelSize(
R.dimen.omnibox_suggestion_refine_width);
......@@ -252,4 +261,16 @@ public class BaseSuggestionViewTest {
verifyViewLayout(
mDecoratedView, expectedContentLeft, 0, expectedContentRight, giveContentHeight);
}
@Test
public void setSelected_emitsOmniboxUpdateWhenSelected() {
mView.setSelected(true);
verify(mMockDelegate, times(1)).onSetUrlToSuggestion();
}
@Test
public void setSelected_noOmniboxUpdateWhenDeselected() {
mView.setSelected(false);
verify(mMockDelegate, never()).onSetUrlToSuggestion();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment