196 lines
6.9 KiB
Objective-C
196 lines
6.9 KiB
Objective-C
/**
|
|
* The examples provided by Facebook are for non-commercial testing and
|
|
* evaluation purposes only.
|
|
*
|
|
* Facebook reserves all rights not expressly granted.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
|
|
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
#import "RCTConvert.h"
|
|
|
|
@interface RCTConvert_UIFontTests : XCTestCase
|
|
|
|
@end
|
|
|
|
@implementation RCTConvert_UIFontTests
|
|
|
|
#define RCTAssertEqualFonts(font1, font2) { \
|
|
XCTAssertEqualObjects(font1, font2); \
|
|
}
|
|
|
|
- (void)testWeight
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontWeight": @"bold"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontWeight": @"500"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14 weight:UIFontWeightUltraLight];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontWeight": @"100"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontWeight": @"normal"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testSize
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:18.5];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontSize": @18.5}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testFamily
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"Cochin" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Cochin"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Helvetica Neue"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue-Italic" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"HelveticaNeue-Italic"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testStyle
|
|
{
|
|
{
|
|
UIFont *font = [UIFont systemFontOfSize:14];
|
|
UIFontDescriptor *fontDescriptor = [font fontDescriptor];
|
|
UIFontDescriptorSymbolicTraits symbolicTraits = fontDescriptor.symbolicTraits;
|
|
symbolicTraits |= UIFontDescriptorTraitItalic;
|
|
fontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:symbolicTraits];
|
|
UIFont *expected = [UIFont fontWithDescriptor:fontDescriptor size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontStyle": @"italic"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontStyle": @"normal"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testStyleAndWeight
|
|
{
|
|
{
|
|
UIFont *font = [UIFont systemFontOfSize:14 weight:UIFontWeightUltraLight];
|
|
UIFontDescriptor *fontDescriptor = [font fontDescriptor];
|
|
UIFontDescriptorSymbolicTraits symbolicTraits = fontDescriptor.symbolicTraits;
|
|
symbolicTraits |= UIFontDescriptorTraitItalic;
|
|
fontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:symbolicTraits];
|
|
UIFont *expected = [UIFont fontWithDescriptor:fontDescriptor size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontStyle": @"italic", @"fontWeight": @"100"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
|
|
UIFontDescriptor *fontDescriptor = [font fontDescriptor];
|
|
UIFontDescriptorSymbolicTraits symbolicTraits = fontDescriptor.symbolicTraits;
|
|
symbolicTraits |= UIFontDescriptorTraitItalic;
|
|
fontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:symbolicTraits];
|
|
UIFont *expected = [UIFont fontWithDescriptor:fontDescriptor size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontStyle": @"italic", @"fontWeight": @"bold"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testFamilyAndWeight
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Helvetica Neue", @"fontWeight": @"bold"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"HelveticaNeue-Bold", @"fontWeight": @"normal"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"Cochin-Bold" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Cochin", @"fontWeight": @"700"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"Cochin" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Cochin", @"fontWeight": @"100"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testFamilyAndStyle
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue-Italic" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Helvetica Neue", @"fontStyle": @"italic"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"HelveticaNeue-Italic", @"fontStyle": @"normal"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testFamilyStyleAndWeight
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue-LightItalic" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"Helvetica Neue", @"fontStyle": @"italic", @"fontWeight": @"300"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"HelveticaNeue-Italic", @"fontStyle": @"normal", @"fontWeight": @"bold"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont fontWithName:@"HelveticaNeue" size:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"HelveticaNeue-Italic", @"fontStyle": @"normal", @"fontWeight": @"normal"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
- (void)testInvalidFont
|
|
{
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"foobar"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
{
|
|
UIFont *expected = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
|
|
UIFont *result = [RCTConvert UIFont:@{@"fontFamily": @"foobar", @"fontWeight": @"bold"}];
|
|
RCTAssertEqualFonts(expected, result);
|
|
}
|
|
}
|
|
|
|
@end
|