aboutsummaryrefslogtreecommitdiffstats
path: root/packages/flutter_calendar_carousel/test/src/header_test.dart
diff options
context:
space:
mode:
authorJoel Winarske <joel.winarske@gmail.com>2024-09-05 14:01:44 -0700
committerScott Murray <scott.murray@konsulko.com>2024-09-09 15:37:22 +0000
commit0c24d7f6ebdb688d3aee492b5f84aa21e141f7e7 (patch)
treeae7dd19be2f0b482d8c58236822d7992888b0e71 /packages/flutter_calendar_carousel/test/src/header_test.dart
parentcbc46db4690b89d2d5e983821d269931a358e508 (diff)
-add flutter_calendar_carousel as local package, and update intl version -address most of the analyze issues; not including flutter_calendar_carousel -update all packages Change-Id: I5db9234726e8e2f8d07e1431e8dac2787c521c08 Signed-off-by: Joel Winarske <joel.winarske@gmail.com> Signed-off-by: Joel Winarske <joel.winarske@toyotaconnected.com> Signed-off-by: Joel Winarske <joel.winarske@gmail.com> (cherry picked from commit d3ea8d7fa4518c258fca3c825ee895487fcaa8ec)
Diffstat (limited to 'packages/flutter_calendar_carousel/test/src/header_test.dart')
-rw-r--r--packages/flutter_calendar_carousel/test/src/header_test.dart104
1 files changed, 104 insertions, 0 deletions
diff --git a/packages/flutter_calendar_carousel/test/src/header_test.dart b/packages/flutter_calendar_carousel/test/src/header_test.dart
new file mode 100644
index 0000000..2f9b603
--- /dev/null
+++ b/packages/flutter_calendar_carousel/test/src/header_test.dart
@@ -0,0 +1,104 @@
+import 'package:flutter_test/flutter_test.dart';
+import 'package:flutter_calendar_carousel/src/calendar_header.dart';
+
+import 'package:flutter/material.dart';
+
+void main() {
+ final title = "Test title";
+ final margin = const EdgeInsets.symmetric(vertical: 16.0);
+ final iconColor = Colors.blueAccent;
+
+ testWidgets('Verify Header Defaults', (WidgetTester tester) async {
+ var headerTapped = false;
+ var leftPressed = false;
+ var rightPressed = false;
+
+ await tester.pumpWidget(wrapped(CalendarHeader(
+ headerTitle: title,
+ headerMargin: margin,
+ showHeader: true,
+ showHeaderButtons: true,
+ headerIconColor: iconColor,
+ onHeaderTitlePressed: () => headerTapped = true,
+ onRightButtonPressed: () => rightPressed = true,
+ onLeftButtonPressed: () => leftPressed = true,
+ )));
+
+ expect(find.text(title), findsOneWidget);
+
+ await tester.tap(find.byType(TextButton));
+
+ await tester.pump();
+
+ expect(headerTapped, equals(true));
+
+ await tester.tap(find.widgetWithIcon(IconButton, Icons.chevron_right));
+
+ await tester.pump();
+
+ expect(rightPressed, equals(true));
+
+ await tester.tap(find.widgetWithIcon(IconButton, Icons.chevron_left));
+
+ await tester.pump();
+
+ expect(leftPressed, equals(true));
+ });
+
+ testWidgets('Verify No header Renders', (WidgetTester tester) async {
+ final noHeaderEmpty = CalendarHeader(
+ showHeader: false,
+ headerTitle: '',
+ onLeftButtonPressed: () {},
+ onHeaderTitlePressed: () {},
+ onRightButtonPressed: () {},
+ );
+
+ await tester.pumpWidget(Container(child: noHeaderEmpty));
+
+ expect(find.byWidget(noHeaderEmpty), findsOneWidget);
+ });
+
+ testWidgets('Verify Header Is Not Touchable', (WidgetTester tester) async {
+ await tester.pumpWidget(wrapped(CalendarHeader(
+ headerTitle: title,
+ headerMargin: margin,
+ showHeader: true,
+ showHeaderButtons: true,
+ headerIconColor: iconColor,
+ onHeaderTitlePressed: null,
+ onRightButtonPressed: () {},
+ onLeftButtonPressed: () {},
+ )));
+
+ // the header TextButton Should not render
+ final touchableHeader = find.byType(TextButton);
+
+ expect(touchableHeader, findsNothing);
+ });
+
+ testWidgets('Verify No Header Buttons', (WidgetTester tester) async {
+ await tester.pumpWidget(wrapped(CalendarHeader(
+ headerTitle: title,
+ headerMargin: margin,
+ showHeader: true,
+ showHeaderButtons: false,
+ headerIconColor: iconColor,
+ onHeaderTitlePressed: () {},
+ onRightButtonPressed: () {},
+ onLeftButtonPressed: () {},
+ )));
+
+ // the header IconButtons Should not render
+ final headerButton = find.byType(IconButton);
+
+ expect(headerButton, findsNothing);
+ });
+}
+
+// header uses Row which requires MaterialApp as an ancestor
+Widget wrapped(Widget widget) => MaterialApp(
+ home: Container(
+ child: Material(child: widget),
+ ),
+ );