103 lines
2.7 KiB
Dart
103 lines
2.7 KiB
Dart
import 'dart:ui';
|
|
|
|
import 'package:photo_view/src/controller/photo_view_controller.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
late PhotoViewController controller;
|
|
setUp(() {
|
|
controller = PhotoViewController();
|
|
});
|
|
|
|
test('controller constructor', () {
|
|
const double initialRotation = 0.0;
|
|
const Offset initialPosition = Offset(40.0, 40.0);
|
|
controller = PhotoViewController(
|
|
initialRotation: initialRotation,
|
|
initialPosition: initialPosition,
|
|
);
|
|
|
|
const PhotoViewControllerValue testValue = const PhotoViewControllerValue(
|
|
position: initialPosition,
|
|
scale: null,
|
|
rotation: initialRotation,
|
|
rotationFocusPoint: null,
|
|
);
|
|
|
|
expect(controller.value, testValue);
|
|
});
|
|
test('controller change values', () {
|
|
controller.scale = 0.1;
|
|
expect(controller.scale, 0.1);
|
|
|
|
controller.position = Offset.zero;
|
|
expect(controller.position, Offset.zero);
|
|
|
|
controller.rotation = 0.1;
|
|
expect(controller.rotation, 0.1);
|
|
|
|
controller.rotationFocusPoint = Offset.zero;
|
|
expect(controller.rotationFocusPoint, Offset.zero);
|
|
|
|
controller.updateMultiple(position: const Offset(1, 1));
|
|
expect(controller.scale, 0.1);
|
|
expect(controller.position, const Offset(1, 1));
|
|
expect(controller.rotation, 0.1);
|
|
expect(controller.rotationFocusPoint, Offset.zero);
|
|
|
|
controller.setScaleInvisibly(2.0);
|
|
expect(controller.scale, 2.0);
|
|
});
|
|
test('controller reset', () {
|
|
controller.updateMultiple(position: const Offset(1, 1), rotation: 40);
|
|
controller.reset();
|
|
expect(controller.position, Offset.zero);
|
|
expect(controller.rotation, 0.0);
|
|
});
|
|
test('controller stream mutation', () {
|
|
const PhotoViewControllerValue value1 = const PhotoViewControllerValue(
|
|
position: Offset.zero,
|
|
scale: null,
|
|
rotation: 1.0,
|
|
rotationFocusPoint: null,
|
|
);
|
|
|
|
const PhotoViewControllerValue value2 = const PhotoViewControllerValue(
|
|
position: Offset.zero,
|
|
scale: 3.0,
|
|
rotation: 1.0,
|
|
rotationFocusPoint: null,
|
|
);
|
|
|
|
const PhotoViewControllerValue value3 = const PhotoViewControllerValue(
|
|
position: const Offset(1, 1),
|
|
scale: 3.0,
|
|
rotation: 45.0,
|
|
rotationFocusPoint: null,
|
|
);
|
|
|
|
const PhotoViewControllerValue value4 = const PhotoViewControllerValue(
|
|
position: const Offset(1, 1),
|
|
scale: 5.0,
|
|
rotation: 45.0,
|
|
rotationFocusPoint: null,
|
|
);
|
|
|
|
expect(
|
|
controller.outputStateStream,
|
|
emitsInOrder([
|
|
value1,
|
|
value2,
|
|
value3,
|
|
value4,
|
|
]),
|
|
);
|
|
|
|
controller.rotation = 1.0;
|
|
controller.scale = 3.0;
|
|
|
|
controller.updateMultiple(position: const Offset(1, 1), rotation: 45.0);
|
|
|
|
controller.setScaleInvisibly(5.0);
|
|
});
|
|
}
|