package com.jakewharton.rxbinding2.support.v17.leanback.widget;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.annotation.UiThreadTest;
import android.support.test.rule.UiThreadTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.support.v17.leanback.widget.SearchEditText;
import android.view.KeyEvent;
import com.jakewharton.rxbinding2.RecordingObserver;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertNotNull;
@RunWith(AndroidJUnit4.class)
public final class RxSearchEditTextTest {
@Rule public final UiThreadTestRule uiThread = new UiThreadTestRule();
private final Context context = InstrumentationRegistry.getContext();
private SearchEditText view;
@Before public void setUp() {
view = new SearchEditText(context);
}
@Test @UiThreadTest public void keyboardDismisses() {
RecordingObserver<Object> o = new RecordingObserver<>();
RxSearchEditText.keyboardDismisses(view).subscribe(o);
o.assertNoMoreEvents();
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
view.onKeyPreIme(KeyEvent.KEYCODE_BACK, event);
assertNotNull(o.takeNext());
o.dispose();
view.onKeyPreIme(KeyEvent.KEYCODE_BACK, event);
o.assertNoMoreEvents();
}
}