Skip to content

Commit

Permalink
Add tests for ObservableGridView.
Browse files Browse the repository at this point in the history
Tests for footer view.
  • Loading branch information
ksoichiro committed Nov 28, 2015
1 parent 1fc3c5c commit 118ed05
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
public class HeaderGridViewActivity extends Activity implements ObservableScrollViewCallbacks {

public View headerView;
public View footerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -30,6 +31,14 @@ protected void onCreate(Bundle savedInstanceState) {
headerView.setClickable(true);

scrollable.addHeaderView(headerView);

// Footer is also available.
footerView = new View(this);
FrameLayout.LayoutParams lpf = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
flexibleSpaceImageHeight);
footerView.setLayoutParams(lpf);
scrollable.addFooterView(footerView);

scrollable.setScrollViewCallbacks(this);
UiTestUtils.setDummyData(this, scrollable);
scrollable.setOnScrollListener(new AbsListView.OnScrollListener() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,16 +69,19 @@ public void testHeaderViewFeatures() throws Throwable {
@Override
public void run() {
assertEquals(1, scrollable.getHeaderViewCount());
assertEquals(1, scrollable.getFooterViewCount());
ListAdapter adapter = scrollable.getAdapter();
assertTrue(adapter instanceof ObservableGridView.HeaderViewGridAdapter);
ObservableGridView.HeaderViewGridAdapter hvgAdapter = (ObservableGridView.HeaderViewGridAdapter) adapter;
assertEquals(1, hvgAdapter.getHeadersCount());
assertEquals(1, hvgAdapter.getFootersCount());
assertNotNull(hvgAdapter.getWrappedAdapter());
assertTrue(hvgAdapter.areAllItemsEnabled());
assertFalse(hvgAdapter.isEmpty());
Object data = hvgAdapter.getItem(0);
assertNull(data);
assertNotNull(hvgAdapter.getView(0, null, scrollable));
assertNotNull(hvgAdapter.getView(1, null, scrollable));
assertNotNull(hvgAdapter.getFilter());
assertTrue(scrollable.removeHeaderView(activity.headerView));
assertEquals(0, scrollable.getHeaderViewCount());
Expand All @@ -97,6 +100,30 @@ public void run() {
scrollable.addHeaderView(activity.headerView);
}
});
// Scroll to bottom and try removing re-adding the footer view.
for (int i = 0; i < 10; i++) {
UiTestUtils.swipeVertically(this, scrollable, UiTestUtils.Direction.UP);
}
getInstrumentation().waitForIdleSync();
runTestOnUiThread(new Runnable() {
@Override
public void run() {
ListAdapter adapter = scrollable.getAdapter();
ObservableGridView.HeaderViewGridAdapter hvgAdapter = (ObservableGridView.HeaderViewGridAdapter) adapter;

assertTrue(scrollable.removeFooterView(activity.footerView));
assertEquals(0, scrollable.getFooterViewCount());
assertEquals(0, hvgAdapter.getFootersCount());
assertFalse(scrollable.removeFooterView(activity.footerView));

activity.footerView = new View(activity);
final int flexibleSpaceImageHeight = activity.getResources().getDimensionPixelSize(R.dimen.flexible_space_image_height);
FrameLayout.LayoutParams lpf = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
flexibleSpaceImageHeight);
activity.footerView.setLayoutParams(lpf);
scrollable.addFooterView(activity.footerView);
}
});
}

public void testHeaderViewGridExceptions() throws Throwable {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,10 @@ public void addFooterView(View v, Object data, boolean isSelectable) {
}
}

public int getFooterViewCount() {
return mFooterViewInfos.size();
}

public boolean removeFooterView(View v) {
if (mFooterViewInfos.size() > 0) {
boolean result = false;
Expand Down

0 comments on commit 118ed05

Please sign in to comment.