blob: 42dbd520cd13c17907a03fd04125b80132b40000 [file] [log] [blame]
// 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/cupertino.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('CupertinoTextTheme matches Apple Design resources', () {
// Check the default cupertino text theme against the style values
// Values derived from https://developer.apple.com/design/resources/.
const CupertinoTextThemeData theme = CupertinoTextThemeData();
const FontWeight normal = FontWeight.normal;
const FontWeight regular = FontWeight.w400;
const FontWeight medium = FontWeight.w500;
const FontWeight semiBold = FontWeight.w600;
const FontWeight bold = FontWeight.w700;
// TextStyle 17 -0.41
expect(theme.textStyle.fontSize, 17);
expect(theme.textStyle.fontFamily, '.SF Pro Text');
expect(theme.textStyle.letterSpacing, -0.41);
expect(theme.textStyle.fontWeight, null);
// ActionTextStyle 17 -0.41
expect(theme.actionTextStyle.fontSize, 17);
expect(theme.actionTextStyle.fontFamily, '.SF Pro Text');
expect(theme.actionTextStyle.letterSpacing, -0.41);
expect(theme.actionTextStyle.fontWeight, null);
// TextStyle 17 -0.41
expect(theme.tabLabelTextStyle.fontSize, 10);
expect(theme.tabLabelTextStyle.fontFamily, '.SF Pro Text');
expect(theme.tabLabelTextStyle.letterSpacing, -0.24);
expect(theme.tabLabelTextStyle.fontWeight, medium);
// NavTitle SemiBold 17 -0.41
expect(theme.navTitleTextStyle.fontSize, 17);
expect(theme.navTitleTextStyle.fontFamily, '.SF Pro Text');
expect(theme.navTitleTextStyle.letterSpacing, -0.41);
expect(theme.navTitleTextStyle.fontWeight, semiBold);
// NavLargeTitle Bold 34 0.41
expect(theme.navLargeTitleTextStyle.fontSize, 34);
expect(theme.navLargeTitleTextStyle.fontFamily, '.SF Pro Display');
expect(theme.navLargeTitleTextStyle.letterSpacing, 0.41);
expect(theme.navLargeTitleTextStyle.fontWeight, bold);
// Picker Regular 21 -0.6
expect(theme.pickerTextStyle.fontSize, 21);
expect(theme.pickerTextStyle.fontFamily, '.SF Pro Display');
expect(theme.pickerTextStyle.letterSpacing, -0.6);
expect(theme.pickerTextStyle.fontWeight, regular);
// DateTimePicker Normal 21
expect(theme.dateTimePickerTextStyle.fontSize, 21);
expect(theme.dateTimePickerTextStyle.fontFamily, '.SF Pro Display');
expect(theme.dateTimePickerTextStyle.letterSpacing, null);
expect(theme.dateTimePickerTextStyle.fontWeight, normal);
});
}