34cdcee00b
OneDrive's IPs (e.g. 13.107.x, 150.171.x) have no PTR and weren't in our CIDR table, so each fragmented into its own IP-named district — a long session showed dozens, all with the "OneDrive" process subtitle. Add the documented Microsoft 365 service ranges so they collapse to one Microsoft district. Deliberately excludes generic Azure tenant space, which would mislabel third-party apps hosted on Azure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51 lines
1.8 KiB
Swift
51 lines
1.8 KiB
Swift
import XCTest
|
|
@testable import NetworkCityCore
|
|
|
|
final class IPRangesTests: XCTestCase {
|
|
|
|
func testAppleEightSlashEight() {
|
|
XCTAssertEqual(IPRanges.match("17.248.242.19")?.key, "apple")
|
|
XCTAssertEqual(IPRanges.match("17.42.251.69")?.name, "Apple")
|
|
}
|
|
|
|
func testTelegram() {
|
|
XCTAssertEqual(IPRanges.match("149.154.175.54")?.key, "telegram")
|
|
}
|
|
|
|
func testOneDriveNoPTRRangesCollapseToMicrosoft() {
|
|
// Real OneDrive front-end IPs (no PTR) that used to fragment per-IP.
|
|
XCTAssertEqual(IPRanges.match("13.107.137.11")?.key, "microsoft")
|
|
XCTAssertEqual(IPRanges.match("150.171.22.11")?.name, "Microsoft")
|
|
XCTAssertEqual(IPRanges.match("52.108.1.1")?.key, "microsoft")
|
|
XCTAssertEqual(IPRanges.match("40.96.0.1")?.key, "microsoft")
|
|
}
|
|
|
|
func testPrivateRangesAreLocalNetwork() {
|
|
XCTAssertEqual(IPRanges.match("192.168.0.1")?.name, "Local Network")
|
|
XCTAssertEqual(IPRanges.match("10.1.2.3")?.key, "lan")
|
|
XCTAssertEqual(IPRanges.match("172.20.0.5")?.key, "lan")
|
|
}
|
|
|
|
func testUnknownIPReturnsNil() {
|
|
XCTAssertNil(IPRanges.match("8.8.8.8"))
|
|
}
|
|
|
|
func testInvalidIPReturnsNil() {
|
|
XCTAssertNil(IPRanges.match("not.an.ip"))
|
|
XCTAssertNil(IPRanges.match("999.1.1.1"))
|
|
}
|
|
|
|
func testClassifyUsesRangeFallbackWhenNoPTR() {
|
|
// Apple publishes no PTR for 17/8, so the range table must catch it.
|
|
let org = OrgClassifier.classify(ip: "17.248.242.19", ptr: nil)
|
|
XCTAssertEqual(org.key, "apple")
|
|
XCTAssertEqual(org.name, "Apple")
|
|
}
|
|
|
|
func testPTRStillWinsOverRange() {
|
|
// A real registrable domain in the PTR should take precedence.
|
|
let org = OrgClassifier.classify(ip: "17.248.242.19", ptr: "host.example.com")
|
|
XCTAssertEqual(org.key, "example.com")
|
|
}
|
|
}
|