blob: 59e6bd5564bd3d83b587662e658a08fb6748876e [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:dynamic_layouts/dynamic_layouts.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('DynamicSliverGridGeometry returns tight constraints for finite extents',
() {
const DynamicSliverGridGeometry geometry = DynamicSliverGridGeometry(
scrollOffset: 0,
crossAxisOffset: 0,
crossAxisExtent: 150.0,
mainAxisExtent: 50.0,
);
// Vertical
SliverConstraints sliverConstraints = const SliverConstraints(
axisDirection: AxisDirection.down,
growthDirection: GrowthDirection.forward,
userScrollDirection: ScrollDirection.forward,
scrollOffset: 0,
precedingScrollExtent: 0,
overlap: 0,
remainingPaintExtent: 600,
crossAxisExtent: 300,
crossAxisDirection: AxisDirection.left,
viewportMainAxisExtent: 1000,
remainingCacheExtent: 600,
cacheOrigin: 0.0,
);
BoxConstraints constraints = geometry.getBoxConstraints(sliverConstraints);
expect(constraints, BoxConstraints.tight(const Size(150.0, 50.0)));
// Horizontal
sliverConstraints = const SliverConstraints(
axisDirection: AxisDirection.left,
growthDirection: GrowthDirection.forward,
userScrollDirection: ScrollDirection.forward,
scrollOffset: 0,
precedingScrollExtent: 0,
overlap: 0,
remainingPaintExtent: 600,
crossAxisExtent: 300,
crossAxisDirection: AxisDirection.down,
viewportMainAxisExtent: 1000,
remainingCacheExtent: 600,
cacheOrigin: 0.0,
);
constraints = geometry.getBoxConstraints(sliverConstraints);
expect(constraints, BoxConstraints.tight(const Size(50.0, 150.0)));
});
test(
'DynamicSliverGridGeometry returns loose constraints for infinite extents',
() {
const DynamicSliverGridGeometry geometry = DynamicSliverGridGeometry(
scrollOffset: 0,
crossAxisOffset: 0,
mainAxisExtent: double.infinity,
crossAxisExtent: double.infinity,
);
// Vertical
SliverConstraints sliverConstraints = const SliverConstraints(
axisDirection: AxisDirection.down,
growthDirection: GrowthDirection.forward,
userScrollDirection: ScrollDirection.forward,
scrollOffset: 0,
precedingScrollExtent: 0,
overlap: 0,
remainingPaintExtent: 600,
crossAxisExtent: 300,
crossAxisDirection: AxisDirection.left,
viewportMainAxisExtent: 1000,
remainingCacheExtent: 600,
cacheOrigin: 0.0,
);
BoxConstraints constraints = geometry.getBoxConstraints(sliverConstraints);
expect(constraints, const BoxConstraints());
// Horizontal
sliverConstraints = const SliverConstraints(
axisDirection: AxisDirection.left,
growthDirection: GrowthDirection.forward,
userScrollDirection: ScrollDirection.forward,
scrollOffset: 0,
precedingScrollExtent: 0,
overlap: 0,
remainingPaintExtent: 600,
crossAxisExtent: 300,
crossAxisDirection: AxisDirection.down,
viewportMainAxisExtent: 1000,
remainingCacheExtent: 600,
cacheOrigin: 0.0,
);
constraints = geometry.getBoxConstraints(sliverConstraints);
expect(constraints, const BoxConstraints());
});
}