//
// HTMLKitStringCategoryTests.m
// HTMLKit
//
// Created by Iska on 16/04/15.
// Copyright (c) 2015 BrainCookie. All rights reserved.
//
#import
#import "NSString+HTMLKit.h"
#import "HTMLDOM.h"
@interface HTMLKitStringCategoryTests : XCTestCase
@end
@implementation HTMLKitStringCategoryTests
- (void)testIsEqualToStringIgnoringCase
{
NSString *string = @"HTML Kit \0 String \u02605 Category";
XCTAssertTrue([string isEqualToStringIgnoringCase:@"hTML Kit \0 String \u02605 Category"]);
XCTAssertTrue([string isEqualToStringIgnoringCase:@"html KIT \0 String \u02605 Category"]);
XCTAssertTrue([string isEqualToStringIgnoringCase:@"htML KiT \0 String \u02605 CategoRY"]);
}
- (void)testIsEqualToAny
{
NSString *string = @"h\u02605tm\0l";
BOOL equal = [string isEqualToAny:@"h\u02605tm\0l", @"kit", @"tests", nil];
XCTAssertTrue(equal);
equal = [string isEqualToAny:@"kit", @"h\u02605tm\0l", @"tests", nil];
XCTAssertTrue(equal);
equal = [string isEqualToAny:@"kit", @"tests", @"h\u02605tm\0l", nil];
XCTAssertTrue(equal);
equal = [string isEqualToAny:@"H\u02605TM\0L", @"kit", @"tests", nil];
XCTAssertFalse(equal);
}
- (void)testHasPrefixIgnoringCase
{
NSString *string = @"HTM\0L \u02605 Kit String Category";
XCTAssertTrue([string hasPrefixIgnoringCase:@"htm\0l"]);
XCTAssertTrue([string hasPrefixIgnoringCase:@"htm\0l \u02605 kit"]);
XCTAssertTrue([string hasPrefixIgnoringCase:@"htM\0L \u02605 Kit"]);
XCTAssertFalse([string hasPrefixIgnoringCase:@"\0htm\0l"]);
}
- (void)testIsHTMLWhitespaceString
{
XCTAssertTrue([@" " isHTMLWhitespaceString]);
XCTAssertTrue([@"\t" isHTMLWhitespaceString]);
XCTAssertTrue([@"\n" isHTMLWhitespaceString]);
XCTAssertTrue([@"\f" isHTMLWhitespaceString]);
XCTAssertTrue([@"\r" isHTMLWhitespaceString]);
XCTAssertTrue([@" \t\n\f\r" isHTMLWhitespaceString]);
XCTAssertTrue([@"\t\n\f\r " isHTMLWhitespaceString]);
XCTAssertTrue([@" \t \n \f \r" isHTMLWhitespaceString]);
XCTAssertFalse([@"html kit" isHTMLWhitespaceString]);
}
- (void)testLeadingWhitespaceLength
{
XCTAssertEqual([@"" leadingHTMLWhitespaceLength], 0);
XCTAssertEqual([@"\0" leadingHTMLWhitespaceLength], 0);
XCTAssertEqual([@" " leadingHTMLWhitespaceLength], 1);
XCTAssertEqual([@"\0 " leadingHTMLWhitespaceLength], 0);
XCTAssertEqual([@" " leadingHTMLWhitespaceLength], 2);
XCTAssertEqual([@" \0 " leadingHTMLWhitespaceLength], 1);
XCTAssertEqual([@"\t\r\n\f" leadingHTMLWhitespaceLength], 4);
XCTAssertEqual([@"\t\r\n\0\f" leadingHTMLWhitespaceLength], 3);
XCTAssertEqual([@"\t\r\n\f " leadingHTMLWhitespaceLength], 5);
XCTAssertEqual([@"\t\r\n\f\0 " leadingHTMLWhitespaceLength], 4);
}
- (void)testStringByEscapingForHTML
{
XCTAssertEqualObjects(@"".stringByEscapingForHTML, @"");
XCTAssertEqualObjects(@"&".stringByEscapingForHTML, @"&");
XCTAssertEqualObjects(@"0x00A0".stringByEscapingForHTML, @" ");
XCTAssertEqualObjects(@"\"".stringByEscapingForHTML, @""");
XCTAssertEqualObjects(@"<".stringByEscapingForHTML, @"<");
XCTAssertEqualObjects(@">".stringByEscapingForHTML, @">");
XCTAssertEqualObjects(@"&0x00A0\"<>".stringByEscapingForHTML, @"& "<>");
NSString *input = @"This is an email: John Do ";
NSString *escaped = input.stringByEscapingForHTML;
XCTAssertNotEqual(input, escaped);
XCTAssertEqualObjects(escaped, @"This is an <b>email</b>: John Do <john@do.com>");
}
@end