// // Copyright (c) 2017 Open Whisper Systems. All rights reserved. // #import "OWSScrubbingLogFormatter.h" #import NS_ASSUME_NONNULL_BEGIN @interface OWSScrubbingLogFormatterTest : XCTestCase @end @implementation OWSScrubbingLogFormatterTest - (DDLogMessage *)messageWithString:(NSString *)string { return [[DDLogMessage alloc] initWithMessage:string level:DDLogLevelInfo flag:0 context:0 file:nil function:nil line:0 tag:nil options:0 timestamp:[NSDate new]]; } - (void)testPhoneNumbersScrubbed { NSArray *phoneStrings = @[ @"+13331231234 ", @"+4113331231234", @"+13331231234 something something +13331231234", ]; for (NSString *phoneString in phoneStrings) { OWSScrubbingLogFormatter *formatter = [OWSScrubbingLogFormatter new]; NSString *messageText = [NSString stringWithFormat:@"My phone number is %@", phoneString]; NSString *actual = [formatter formatLogMessage:[self messageWithString:messageText]]; NSRange redactedRange = [actual rangeOfString:@"My phone number is [ REDACTED_PHONE_NUMBER:xxx234 ]"]; XCTAssertNotEqual(NSNotFound, redactedRange.location, "Failed to redact phone string: %@", phoneString); NSRange phoneNumberRange = [actual rangeOfString:phoneString]; XCTAssertEqual(NSNotFound, phoneNumberRange.location, "Failed to redact phone string: %@", phoneString); } } - (void)testNonPhonenumberNotScrubbed { OWSScrubbingLogFormatter *formatter = [OWSScrubbingLogFormatter new]; NSString *actual = [formatter formatLogMessage:[self messageWithString:[NSString stringWithFormat:@"Some unfiltered string"]]]; NSRange redactedRange = [actual rangeOfString:@"Some unfiltered string"]; XCTAssertNotEqual(NSNotFound, redactedRange.location, "Shouldn't touch non phone string."); } @end NS_ASSUME_NONNULL_END