package org.robobinding.widgetaddon.abslistview;
import static org.junit.Assert.assertTrue;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
/**
*
* @since 1.0
* @version $Revision: 1.0 $
* @author Cheng Wei
*/
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class AbsListViewAddOnTest {
/**
* TODO: Not supported by Robolectric 2.x yet.
*/
@Test
@Ignore
public void shouldSupportMultipleOnOnScrollListeners() {
AbsListView view = new ListView(RuntimeEnvironment.application);
AbsListViewAddOn viewAddOn = new AbsListViewAddOn(view, null);
MockOnScrollListener listener1 = new MockOnScrollListener();
MockOnScrollListener listener2 = new MockOnScrollListener();
viewAddOn.addOnScrollListener(listener1);
viewAddOn.addOnScrollListener(listener2);
view.smoothScrollToPositionFromTop(1, 0, 500);
assertTrue(listener1.scrollEventFired);
assertTrue(listener1.scrollStateChangedEventFired);
assertTrue(listener2.scrollEventFired);
assertTrue(listener2.scrollStateChangedEventFired);
}
private static class MockOnScrollListener implements OnScrollListener {
private boolean scrollEventFired;
private boolean scrollStateChangedEventFired;
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
scrollEventFired = true;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
scrollStateChangedEventFired = true;
}
}
}