66 lines
2.3 KiB
Dart
66 lines
2.3 KiB
Dart
import 'package:photo_view/photo_view.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
late PhotoViewScaleStateController controller;
|
|
setUp(() {
|
|
controller = PhotoViewScaleStateController();
|
|
});
|
|
|
|
test('controller constructor', () {
|
|
expect(controller.prevScaleState, PhotoViewScaleState.initial);
|
|
expect(controller.scaleState, PhotoViewScaleState.initial);
|
|
});
|
|
|
|
test('controller change values', () {
|
|
controller.scaleState = PhotoViewScaleState.covering;
|
|
expect(controller.prevScaleState, PhotoViewScaleState.initial);
|
|
expect(controller.scaleState, PhotoViewScaleState.covering);
|
|
controller.scaleState = PhotoViewScaleState.originalSize;
|
|
expect(controller.prevScaleState, PhotoViewScaleState.covering);
|
|
expect(controller.scaleState, PhotoViewScaleState.originalSize);
|
|
controller.setInvisibly(PhotoViewScaleState.zoomedOut);
|
|
expect(controller.prevScaleState, PhotoViewScaleState.originalSize);
|
|
expect(controller.scaleState, PhotoViewScaleState.zoomedOut);
|
|
});
|
|
|
|
test('controller reset', () {
|
|
controller.scaleState = PhotoViewScaleState.covering;
|
|
controller.reset();
|
|
expect(controller.prevScaleState, PhotoViewScaleState.covering);
|
|
expect(controller.scaleState, PhotoViewScaleState.initial);
|
|
});
|
|
|
|
test('controller stream mutation', () {
|
|
const PhotoViewScaleState value1 = PhotoViewScaleState.covering;
|
|
const PhotoViewScaleState value2 = PhotoViewScaleState.originalSize;
|
|
const PhotoViewScaleState value3 = PhotoViewScaleState.initial;
|
|
const PhotoViewScaleState value4 = PhotoViewScaleState.zoomedOut;
|
|
|
|
expect(controller.outputScaleStateStream,
|
|
emitsInOrder([value1, value2, value3, value4]));
|
|
controller.scaleState = PhotoViewScaleState.covering;
|
|
controller.scaleState = PhotoViewScaleState.originalSize;
|
|
controller.reset();
|
|
controller.scaleState = PhotoViewScaleState.initial;
|
|
controller.setInvisibly(PhotoViewScaleState.zoomedOut);
|
|
});
|
|
|
|
test('controller invisible update', () {
|
|
int count = 0;
|
|
final void Function() callback = () {
|
|
count++;
|
|
};
|
|
|
|
controller.addIgnorableListener(callback);
|
|
|
|
expect(count, 0);
|
|
|
|
controller.scaleState = PhotoViewScaleState.zoomedOut;
|
|
expect(count, 1);
|
|
controller.setInvisibly(PhotoViewScaleState.zoomedOut);
|
|
expect(count, 1);
|
|
controller.reset();
|
|
expect(count, 2);
|
|
});
|
|
}
|