// Copyright 2014 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:flutter/material.dart'; import 'package:flutter_api_samples/material/stepper/step_style.0.dart' as example; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('StepStyle Smoke Test', (WidgetTester tester) async { await tester.pumpWidget( const example.StepStyleExampleApp(), ); expect(find.widgetWithText(AppBar, 'Step Style Example'), findsOneWidget); final Stepper stepper = tester.widget<Stepper>(find.byType(Stepper)); // Check that the stepper has the correct properties. expect(stepper.type, StepperType.horizontal); expect(stepper.stepIconHeight, 48); expect(stepper.stepIconWidth, 48); expect(stepper.stepIconMargin, EdgeInsets.zero); // Check that the first step has the correct properties. final Step firstStep = stepper.steps[0]; expect(firstStep.title, isA<SizedBox>()); expect(firstStep.content, isA<SizedBox>()); expect(firstStep.isActive, true); expect(firstStep.stepStyle?.connectorThickness, 10); expect(firstStep.stepStyle?.color, Colors.white); expect(firstStep.stepStyle?.connectorColor, Colors.red); expect(firstStep.stepStyle?.indexStyle?.color, Colors.black); expect(firstStep.stepStyle?.indexStyle?.fontSize, 20); expect(firstStep.stepStyle?.border, Border.all(width: 2)); // Check that the second step has the correct properties. final Step secondStep = stepper.steps[1]; expect(secondStep.title, isA<SizedBox>()); expect(secondStep.content, isA<SizedBox>()); expect(secondStep.isActive, true); expect(secondStep.stepStyle?.connectorThickness, 10); expect(secondStep.stepStyle?.connectorColor, Colors.orange); expect(secondStep.stepStyle?.gradient, const LinearGradient( colors: <Color>[ Colors.white, Colors.black, ], )); // Check that the third step has the correct properties. final Step thirdStep = stepper.steps[2]; expect(thirdStep.title, isA<SizedBox>()); expect(thirdStep.content, isA<SizedBox>()); expect(thirdStep.isActive, true); expect(thirdStep.stepStyle?.connectorThickness, 10); expect(thirdStep.stepStyle?.color, Colors.white); expect(thirdStep.stepStyle?.connectorColor, Colors.blue); expect(thirdStep.stepStyle?.indexStyle?.color, Colors.black); expect(thirdStep.stepStyle?.indexStyle?.fontSize, 20); expect(thirdStep.stepStyle?.border, Border.all(width: 2)); // Check that the fourth step has the correct properties. final Step fourthStep = stepper.steps[3]; expect(fourthStep.title, isA<SizedBox>()); expect(fourthStep.content, isA<SizedBox>()); expect(fourthStep.isActive, true); expect(fourthStep.stepStyle?.color, Colors.white); expect(fourthStep.stepStyle?.indexStyle?.color, Colors.black); expect(fourthStep.stepStyle?.indexStyle?.fontSize, 20); expect(fourthStep.stepStyle?.border, Border.all(width: 2)); }); }