// 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/switch/switch.4.dart' as example; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('Show adaptive switch theme', (WidgetTester tester) async { await tester.pumpWidget( const example.SwitchApp(), ); // Default is material style switches expect(find.text('Show cupertino style'), findsOneWidget); expect(find.text('Show material style'), findsNothing); Finder adaptiveSwitch = find.byType(Switch).first; expect( adaptiveSwitch, paints ..rrect(color: const Color(0xff6750a4)) // M3 primary color. ..rrect() ..rrect(color: Colors.white), // Thumb color ); await tester.tap(find.widgetWithText(OutlinedButton, 'Add customization')); await tester.pumpAndSettle(); // Theme adaptation does not affect material-style switch. adaptiveSwitch = find.byType(Switch).first; expect( adaptiveSwitch, paints ..rrect(color: const Color(0xff6750a4)) // M3 primary color. ..rrect() ..rrect(color: Colors.white), // Thumb color ); await tester.tap(find.widgetWithText(OutlinedButton, 'Show cupertino style')); await tester.pumpAndSettle(); expect( adaptiveSwitch, paints ..rrect(color: const Color(0xff795548)) // Customized track color only for cupertino. ..rrect()..rrect()..rrect()..rrect() ..rrect(color: const Color(0xffffeb3b)), // Customized thumb color only for cupertino. ); await tester.tap(find.widgetWithText(OutlinedButton, 'Remove customization')); await tester.pumpAndSettle(); expect( adaptiveSwitch, paints ..rrect(color: const Color(0xff34c759)) // Cupertino system green. ..rrect()..rrect()..rrect()..rrect() ..rrect(color: Colors.white), // Thumb color ); }); }