fix(ios): listview scrollToIndex crash with async data (#6182)

This commit is contained in:
Manol Donev
2018-08-17 17:09:48 +03:00
committed by vakrilov
parent 040781c8cd
commit ca6cccb211
2 changed files with 50 additions and 7 deletions

View File

@@ -759,6 +759,33 @@ export class ListViewTest extends UITest<ListView> {
TKUnit.assertEqual(lastNativeElementVisible, false, "Last element is not visible");
}
public test_scrollToIndex_should_coerce_negative_index_to_zero_index() {
var listView = this.testView;
listView.items = MANY_ITEMS;
listView.scrollToIndex(-1);
TKUnit.wait(0.1);
var firstNativeElementVisible = this.checkItemVisibleAtIndex(listView, 0);
TKUnit.assertEqual(firstNativeElementVisible, true, "first element is visible");
}
public test_scrollToIndex_should_coerce_larger_index_to_last_item_index() {
var listView = this.testView;
listView.items = MANY_ITEMS;
listView.scrollToIndex(10000);
TKUnit.wait(0.1);
var lastNativeElementVisible = this.checkItemVisibleAtIndex(listView, MANY_ITEMS.length - 1);
TKUnit.assertEqual(lastNativeElementVisible, true, "last element is visible");
}
public test_scrollToIndex_should_not_throw_if_items_not_set() {
var listView = this.testView;
listView.scrollToIndex(10000);
}
private checkItemVisibleAtIndex(listView: ListView, index: number): boolean {
return listView.isItemAtIndexVisible(index);
}