mirror of
https://github.com/flutter/flutter.git
synced 2026-02-14 06:45:56 +08:00
These define a TextTheme and IconTheme that contrast with the accent colour brightness. Also adjust default accentColorBrightness to match Material spec examples (dark text/icons on teal in Dark theme). Update material components to use accentTextTheme, accentIconTheme: * DatePicker selection * Floating action button icon * TimePicker selection * Slider label text
71 lines
3.4 KiB
Dart
71 lines
3.4 KiB
Dart
// Copyright 2016 The Chromium 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_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
test('Defaults to the default typography for the platform', () {
|
|
for (TargetPlatform platform in TargetPlatform.values) {
|
|
ThemeData theme = new ThemeData(platform: platform);
|
|
Typography typography = new Typography(platform: platform);
|
|
expect(theme.textTheme, typography.black, reason: 'Not using default typography for $platform');
|
|
}
|
|
});
|
|
|
|
test('Default text theme contrasts with brightness', () {
|
|
ThemeData lightTheme = new ThemeData(brightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(brightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.textTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.textTheme.title.color, typography.white.title.color);
|
|
});
|
|
|
|
test('Default primary text theme contrasts with primary brightness', () {
|
|
ThemeData lightTheme = new ThemeData(primaryColorBrightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(primaryColorBrightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.primaryTextTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.primaryTextTheme.title.color, typography.white.title.color);
|
|
});
|
|
|
|
test('Default accent text theme contrasts with accent brightness', () {
|
|
ThemeData lightTheme = new ThemeData(accentColorBrightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(accentColorBrightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.accentTextTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.accentTextTheme.title.color, typography.white.title.color);
|
|
});
|
|
|
|
test('Default icon theme contrasts with brightness', () {
|
|
ThemeData lightTheme = new ThemeData(brightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(brightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.textTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.textTheme.title.color, typography.white.title.color);
|
|
});
|
|
|
|
test('Default primary icon theme contrasts with primary brightness', () {
|
|
ThemeData lightTheme = new ThemeData(primaryColorBrightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(primaryColorBrightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.primaryTextTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.primaryTextTheme.title.color, typography.white.title.color);
|
|
});
|
|
|
|
test('Default accent icon theme contrasts with accent brightness', () {
|
|
ThemeData lightTheme = new ThemeData(accentColorBrightness: Brightness.light);
|
|
ThemeData darkTheme = new ThemeData(accentColorBrightness: Brightness.dark);
|
|
Typography typography = new Typography(platform: lightTheme.platform);
|
|
|
|
expect(lightTheme.accentTextTheme.title.color, typography.black.title.color);
|
|
expect(darkTheme.accentTextTheme.title.color, typography.white.title.color);
|
|
});
|
|
}
|