mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-02-11 05:54:20 +08:00
Removing conditional checks and guards for the API since we now support iOS 9 as the minimum iOS version and no longer support Xcode 9. Part of #8580
112 lines
5.1 KiB
Objective-C
112 lines
5.1 KiB
Objective-C
// Copyright 2017-present the Material Components for iOS authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#import <XCTest/XCTest.h>
|
|
#import "MaterialTypography.h"
|
|
|
|
@interface SystemFontLoaderTests : XCTestCase
|
|
|
|
@end
|
|
|
|
@implementation SystemFontLoaderTests
|
|
|
|
- (void)testWeights {
|
|
// Given
|
|
CGFloat size = 10.0;
|
|
MDCSystemFontLoader *fontLoader = [[MDCSystemFontLoader alloc] init];
|
|
|
|
// Then
|
|
XCTAssertEqual([fontLoader lightFontOfSize:size], [UIFont systemFontOfSize:size
|
|
weight:UIFontWeightLight]);
|
|
XCTAssertEqual([fontLoader regularFontOfSize:size],
|
|
[UIFont systemFontOfSize:size weight:UIFontWeightRegular]);
|
|
XCTAssertEqual([fontLoader mediumFontOfSize:size], [UIFont systemFontOfSize:size
|
|
weight:UIFontWeightMedium]);
|
|
XCTAssertEqual([fontLoader boldFontOfSize:size], [UIFont systemFontOfSize:size
|
|
weight:UIFontWeightSemibold]);
|
|
UIFontDescriptor *fontDescriptorWithBoldItalic = [[UIFont systemFontOfSize:size].fontDescriptor
|
|
fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic];
|
|
XCTAssertEqual([fontLoader boldItalicFontOfSize:size],
|
|
[UIFont fontWithDescriptor:fontDescriptorWithBoldItalic size:size]);
|
|
XCTAssertEqual([fontLoader italicFontOfSize:size], [UIFont italicSystemFontOfSize:size]);
|
|
}
|
|
|
|
- (void)testIsLargeForContrastRatio {
|
|
// Given
|
|
CGFloat smallSize = 10;
|
|
CGFloat largeIfBoldSize = 15;
|
|
CGFloat largeSize = 18;
|
|
MDCSystemFontLoader *fontLoader = [[MDCSystemFontLoader alloc] init];
|
|
|
|
// Then
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[UIFont systemFontOfSize:smallSize]]);
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[UIFont boldSystemFontOfSize:smallSize]]);
|
|
XCTAssertTrue(
|
|
[fontLoader isLargeForContrastRatios:[UIFont boldSystemFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[UIFont systemFontOfSize:largeSize]]);
|
|
|
|
// Light
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader lightFontOfSize:smallSize]]);
|
|
XCTAssertFalse(
|
|
[fontLoader isLargeForContrastRatios:[fontLoader lightFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader lightFontOfSize:largeSize]]);
|
|
|
|
// Regular
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader regularFontOfSize:smallSize]]);
|
|
XCTAssertFalse(
|
|
[fontLoader isLargeForContrastRatios:[fontLoader regularFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader regularFontOfSize:largeSize]]);
|
|
|
|
// Medium
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader mediumFontOfSize:smallSize]]);
|
|
// We treat medium as large for MDC accesibility.
|
|
XCTAssertTrue(
|
|
[fontLoader isLargeForContrastRatios:[fontLoader mediumFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader mediumFontOfSize:largeSize]]);
|
|
|
|
// Bold
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader boldFontOfSize:smallSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader boldFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader boldFontOfSize:largeSize]]);
|
|
|
|
// Italic
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader italicFontOfSize:smallSize]]);
|
|
XCTAssertFalse(
|
|
[fontLoader isLargeForContrastRatios:[fontLoader italicFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader italicFontOfSize:largeSize]]);
|
|
|
|
// Bold Italic
|
|
XCTAssertFalse([fontLoader isLargeForContrastRatios:[fontLoader boldItalicFontOfSize:smallSize]]);
|
|
XCTAssertTrue(
|
|
[fontLoader isLargeForContrastRatios:[fontLoader boldItalicFontOfSize:largeIfBoldSize]]);
|
|
XCTAssertTrue([fontLoader isLargeForContrastRatios:[fontLoader boldItalicFontOfSize:largeSize]]);
|
|
}
|
|
|
|
- (void)testUIFontWeightMediumValue {
|
|
// Given
|
|
CGFloat MDCFontWeightMedium = (CGFloat)0.23;
|
|
// Ensure that our placehold value for UIFontWeightMedium matches the real value.
|
|
// We are defining it for < iOS 8.2 in MDCTypography.m
|
|
// TODO(#2651): Remove the pragmas and pointer check below
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wpartial-availability"
|
|
#pragma clang diagnostic ignored "-Wtautological-compare"
|
|
if (&UIFontWeightMedium != NULL) {
|
|
XCTAssertEqualWithAccuracy(UIFontWeightMedium, MDCFontWeightMedium, FLT_EPSILON);
|
|
}
|
|
#pragma clang diagnostic pop
|
|
}
|
|
|
|
@end
|