Add a tile scrolling test to complex_layout app (#9537)

* Add a tile scrolling test to complex_layout app

* - Review comments and fix analyzer failures.

* Use ListView.builder pattern.
This commit is contained in:
Mehmet Fidanboylu
2017-04-26 14:22:11 -07:00
committed by GitHub
parent f645245ffd
commit 4e7a38b118
2 changed files with 65 additions and 10 deletions

View File

@@ -19,28 +19,38 @@ void main() {
driver.close();
});
test('measure', () async {
Future<Null> testScrollPerf(String listKey, String summaryName) async {
final Timeline timeline = await driver.traceAction(() async {
// Find the scrollable stock list
final SerializableFinder stockList = find.byValueKey('main-scroll');
expect(stockList, isNotNull);
final SerializableFinder list = find.byValueKey(listKey);
expect(list, isNotNull);
// Scroll down
for (int i = 0; i < 5; i++) {
await driver.scroll(stockList, 0.0, -300.0, const Duration(milliseconds: 300));
await driver.scroll(list, 0.0, -300.0, const Duration(milliseconds: 300));
await new Future<Null>.delayed(const Duration(milliseconds: 500));
}
// Scroll up
for (int i = 0; i < 5; i++) {
await driver.scroll(stockList, 0.0, 300.0, const Duration(milliseconds: 300));
await driver.scroll(list, 0.0, 300.0, const Duration(milliseconds: 300));
await new Future<Null>.delayed(const Duration(milliseconds: 500));
}
});
final TimelineSummary summary = new TimelineSummary.summarize(timeline);
summary.writeSummaryToFile('complex_layout_scroll_perf', pretty: true);
summary.writeTimelineToFile('complex_layout_scroll_perf', pretty: true);
summary.writeSummaryToFile(summaryName, pretty: true);
summary.writeTimelineToFile(summaryName, pretty: true);
}
test('complex_layout_scroll_perf', () async {
await testScrollPerf('complex-scroll', 'complex_layout_scroll_perf');
});
test('tiles_scroll_perf', () async {
await driver.tap(find.byTooltip('Open navigation menu'));
await driver.tap(find.byValueKey('scroll-switcher'));
await testScrollPerf('tiles-scroll', 'tiles_scroll_perf');
});
});
}