mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
Swift
70 lines
2.0 KiB
Swift
//
|
|
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
import XCTest
|
|
import Session
|
|
|
|
class PhoneNumberValidatorTest: SignalBaseTest {
|
|
|
|
func assertValid(e164: String,
|
|
file: StaticString = #file,
|
|
line: UInt = #line) {
|
|
let validator = PhoneNumberValidator()
|
|
guard let phoneNumber = PhoneNumber(fromE164: e164) else {
|
|
XCTFail("unparseable phone number", file: file, line: line)
|
|
return
|
|
}
|
|
let isValid = validator.isValidForRegistration(phoneNumber: phoneNumber)
|
|
XCTAssertTrue(isValid, file: file, line: line)
|
|
}
|
|
|
|
func assertInvalid(e164: String,
|
|
file: StaticString = #file,
|
|
line: UInt = #line) {
|
|
let validator = PhoneNumberValidator()
|
|
guard let phoneNumber = PhoneNumber(fromE164: e164) else {
|
|
XCTFail("unparseable phone number", file: file, line: line)
|
|
return
|
|
}
|
|
let isValid = validator.isValidForRegistration(phoneNumber: phoneNumber)
|
|
XCTAssertFalse(isValid, file: file, line: line)
|
|
}
|
|
|
|
func testUnitedStates() {
|
|
// valid us number
|
|
assertValid(e164: "+13235551234")
|
|
|
|
// too short
|
|
assertInvalid(e164: "+1323555123")
|
|
|
|
// too long
|
|
assertInvalid(e164: "+132355512345")
|
|
|
|
// not a US phone number
|
|
assertValid(e164: "+3235551234")
|
|
}
|
|
|
|
func testBrazil() {
|
|
// valid mobile
|
|
assertValid(e164: "+5532912345678")
|
|
|
|
// valid landline
|
|
assertValid(e164: "+553212345678")
|
|
|
|
// mobile length, but with out the leading '9'
|
|
assertInvalid(e164: "+5532812345678")
|
|
|
|
// too short
|
|
assertInvalid(e164: "+5532812345678")
|
|
|
|
// too long landline
|
|
assertInvalid(e164: "+5532123456789")
|
|
assertInvalid(e164: "+55321234567890")
|
|
|
|
// too long mobile
|
|
assertInvalid(e164: "+55329123456789")
|
|
assertInvalid(e164: "+553291234567890")
|
|
}
|
|
}
|