mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-06 04:32:06 +00:00
* Fixed license * Update all licenses * Update Dangerfile for new license * Update already updated licenses * Closer… * Closer… * Closer… * Closer… * Closer… * Closer… * Closer… * Closer… * Closer… * Closer… * Closer…
79 lines
3.7 KiB
Objective-C
79 lines
3.7 KiB
Objective-C
//
|
|
// ASTextKitCoreTextAdditionsTests.m
|
|
// Texture
|
|
//
|
|
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
|
|
// grant of patent rights can be found in the PATENTS file in the same directory.
|
|
//
|
|
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
|
|
// Pinterest, Inc. 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
|
|
//
|
|
|
|
#import <CoreText/CoreText.h>
|
|
|
|
#import <XCTest/XCTest.h>
|
|
|
|
#import <AsyncDisplayKit/ASTextKitCoreTextAdditions.h>
|
|
|
|
BOOL floatsCloseEnough(CGFloat float1, CGFloat float2) {
|
|
CGFloat epsilon = 0.00001;
|
|
return (fabs(float1 - float2) < epsilon);
|
|
}
|
|
|
|
@interface ASTextKitCoreTextAdditionsTests : XCTestCase
|
|
|
|
@end
|
|
|
|
@implementation ASTextKitCoreTextAdditionsTests
|
|
|
|
- (void)testAttributeCleansing
|
|
{
|
|
UIFont *font = [UIFont systemFontOfSize:12.0];
|
|
NSMutableAttributedString *testString = [[NSMutableAttributedString alloc] initWithString:@"Test" attributes:@{NSFontAttributeName:font}];
|
|
CFRange cfRange = CFRangeMake(0, testString.length);
|
|
CGColorRef blueColor = CGColorRetain([UIColor blueColor].CGColor);
|
|
CFAttributedStringSetAttribute((CFMutableAttributedStringRef)testString,
|
|
cfRange,
|
|
kCTForegroundColorAttributeName,
|
|
blueColor);
|
|
UIColor *color = [UIColor colorWithCGColor:blueColor];
|
|
|
|
NSAttributedString *actualCleansedString = ASCleanseAttributedStringOfCoreTextAttributes(testString);
|
|
XCTAssertTrue([[actualCleansedString attribute:NSForegroundColorAttributeName atIndex:0 effectiveRange:NULL] isEqual:color], @"Expected the %@ core text attribute to be cleansed from the string %@\n Should match %@", kCTForegroundColorFromContextAttributeName, actualCleansedString, color);
|
|
CGColorRelease(blueColor);
|
|
}
|
|
|
|
- (void)testNoAttributeCleansing
|
|
{
|
|
NSMutableAttributedString *testString = [[NSMutableAttributedString alloc] initWithString:@"Test" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12.0],
|
|
NSForegroundColorAttributeName : [UIColor blueColor]}];
|
|
|
|
NSAttributedString *actualCleansedString = ASCleanseAttributedStringOfCoreTextAttributes(testString);
|
|
XCTAssertTrue([testString isEqualToAttributedString:actualCleansedString], @"Expected the output string %@ to be the same as the input %@ if there are no core text attributes", actualCleansedString, testString);
|
|
}
|
|
|
|
- (void)testNSParagraphStyleNoCleansing
|
|
{
|
|
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
|
|
paragraphStyle.lineSpacing = 10.0;
|
|
|
|
//NSUnderlineStyleAttributeName flags the unsupported CT attribute check
|
|
NSDictionary *attributes = @{NSParagraphStyleAttributeName:paragraphStyle,
|
|
NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle)};
|
|
|
|
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"Test" attributes:attributes];
|
|
NSAttributedString *cleansedString = ASCleanseAttributedStringOfCoreTextAttributes(attributedString);
|
|
|
|
NSParagraphStyle *cleansedParagraphStyle = [cleansedString attribute:NSParagraphStyleAttributeName atIndex:0 effectiveRange:NULL];
|
|
|
|
XCTAssertTrue(floatsCloseEnough(cleansedParagraphStyle.lineSpacing, paragraphStyle.lineSpacing), @"Expected the output line spacing: %f to be equal to the input line spacing: %f", cleansedParagraphStyle.lineSpacing, paragraphStyle.lineSpacing);
|
|
}
|
|
|
|
@end
|