// Created by Michael Kirk on 9/27/16. // Copyright © 2016 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 *actual = [formatter formatLogMessage:[self messageWithString:[NSString stringWithFormat:@"My phone number is %@", phoneString]]]; NSRange redactedRange = [actual rangeOfString:@"My phone number is [ REDACTED_PHONE_NUMBER ]"]; 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