|
| 1 | +// |
| 2 | +// Copyright Amazon.com Inc. or its affiliates. |
| 3 | +// All Rights Reserved. |
| 4 | +// |
| 5 | +// SPDX-License-Identifier: Apache-2.0 |
| 6 | +// |
| 7 | + |
| 8 | +@testable import Clickstream |
| 9 | +import XCTest |
| 10 | + |
| 11 | +class SystemInfoTest: XCTestCase { |
| 12 | + func testGetIdentifierNotNil() { |
| 13 | + XCTAssertNotNil(SystemInfo.identifier) |
| 14 | + } |
| 15 | + |
| 16 | + func testGetModelForSimulator() { |
| 17 | + XCTAssertTrue(SystemInfo.getModel(identifier: "arm64").starts(with: "iPhone")) |
| 18 | + } |
| 19 | + |
| 20 | + func testGetModelFor_iPhone() { |
| 21 | + XCTAssertEqual("iPhone 7", SystemInfo.getModel(identifier: "iPhone9,1")) |
| 22 | + XCTAssertEqual("iPhone 7", SystemInfo.getModel(identifier: "iPhone9,3")) |
| 23 | + XCTAssertEqual("iPhone 7 Plus", SystemInfo.getModel(identifier: "iPhone9,2")) |
| 24 | + XCTAssertEqual("iPhone 7 Plus", SystemInfo.getModel(identifier: "iPhone9,4")) |
| 25 | + XCTAssertEqual("iPhone SE", SystemInfo.getModel(identifier: "iPhone8,4")) |
| 26 | + XCTAssertEqual("iPhone 8", SystemInfo.getModel(identifier: "iPhone10,1")) |
| 27 | + XCTAssertEqual("iPhone 8", SystemInfo.getModel(identifier: "iPhone10,4")) |
| 28 | + XCTAssertEqual("iPhone X", SystemInfo.getModel(identifier: "iPhone10,3")) |
| 29 | + XCTAssertEqual("iPhone X", SystemInfo.getModel(identifier: "iPhone10,6")) |
| 30 | + XCTAssertEqual("iPhone Xs", SystemInfo.getModel(identifier: "iPhone11,2")) |
| 31 | + XCTAssertEqual("iPhone Xs Max", SystemInfo.getModel(identifier: "iPhone11,4")) |
| 32 | + XCTAssertEqual("iPhone Xs Max", SystemInfo.getModel(identifier: "iPhone11,6")) |
| 33 | + XCTAssertEqual("iPhone XR", SystemInfo.getModel(identifier: "iPhone11,8")) |
| 34 | + XCTAssertEqual("iPhone 11", SystemInfo.getModel(identifier: "iPhone12,1")) |
| 35 | + XCTAssertEqual("iPhone 11 Pro", SystemInfo.getModel(identifier: "iPhone12,3")) |
| 36 | + XCTAssertEqual("iPhone 11 Pro Max", SystemInfo.getModel(identifier: "iPhone12,5")) |
| 37 | + XCTAssertEqual("iPhone SE (2nd generation)", SystemInfo.getModel(identifier: "iPhone12,8")) |
| 38 | + XCTAssertEqual("iPhone 12", SystemInfo.getModel(identifier: "iPhone13,2")) |
| 39 | + XCTAssertEqual("iPhone 12 mini", SystemInfo.getModel(identifier: "iPhone13,1")) |
| 40 | + XCTAssertEqual("iPhone 12 Pro", SystemInfo.getModel(identifier: "iPhone13,3")) |
| 41 | + XCTAssertEqual("iPhone 12 Pro Max", SystemInfo.getModel(identifier: "iPhone13,4")) |
| 42 | + XCTAssertEqual("iPhone 13", SystemInfo.getModel(identifier: "iPhone14,5")) |
| 43 | + XCTAssertEqual("iPhone 13 mini", SystemInfo.getModel(identifier: "iPhone14,4")) |
| 44 | + XCTAssertEqual("iPhone 13 Pro", SystemInfo.getModel(identifier: "iPhone14,2")) |
| 45 | + XCTAssertEqual("iPhone 13 Pro Max", SystemInfo.getModel(identifier: "iPhone14,3")) |
| 46 | + XCTAssertEqual("iPhone SE (3rd generation)", SystemInfo.getModel(identifier: "iPhone14,6")) |
| 47 | + XCTAssertEqual("iPhone 14", SystemInfo.getModel(identifier: "iPhone14,7")) |
| 48 | + XCTAssertEqual("iPhone 14 Plus", SystemInfo.getModel(identifier: "iPhone14,8")) |
| 49 | + XCTAssertEqual("iPhone 14 Pro", SystemInfo.getModel(identifier: "iPhone15,2")) |
| 50 | + XCTAssertEqual("iPhone 14 Pro Max", SystemInfo.getModel(identifier: "iPhone15,3")) |
| 51 | + } |
| 52 | + |
| 53 | + func testGetModelFor_iPad() { |
| 54 | + XCTAssertEqual("iPad Air 2", SystemInfo.getModel(identifier: "iPad5,3")) |
| 55 | + XCTAssertEqual("iPad Air 2", SystemInfo.getModel(identifier: "iPad5,4")) |
| 56 | + XCTAssertEqual("iPad (5th generation)", SystemInfo.getModel(identifier: "iPad6,11")) |
| 57 | + XCTAssertEqual("iPad (5th generation)", SystemInfo.getModel(identifier: "iPad6,12")) |
| 58 | + XCTAssertEqual("iPad (6th generation)", SystemInfo.getModel(identifier: "iPad7,5")) |
| 59 | + XCTAssertEqual("iPad (6th generation)", SystemInfo.getModel(identifier: "iPad7,6")) |
| 60 | + XCTAssertEqual("iPad Air (3rd generation)", SystemInfo.getModel(identifier: "iPad11,3")) |
| 61 | + XCTAssertEqual("iPad Air (3rd generation)", SystemInfo.getModel(identifier: "iPad11,4")) |
| 62 | + XCTAssertEqual("iPad (7th generation)", SystemInfo.getModel(identifier: "iPad7,11")) |
| 63 | + XCTAssertEqual("iPad (7th generation)", SystemInfo.getModel(identifier: "iPad7,12")) |
| 64 | + XCTAssertEqual("iPad (8th generation)", SystemInfo.getModel(identifier: "iPad11,6")) |
| 65 | + XCTAssertEqual("iPad (8th generation)", SystemInfo.getModel(identifier: "iPad11,7")) |
| 66 | + XCTAssertEqual("iPad (9th generation)", SystemInfo.getModel(identifier: "iPad12,1")) |
| 67 | + XCTAssertEqual("iPad (9th generation)", SystemInfo.getModel(identifier: "iPad12,2")) |
| 68 | + XCTAssertEqual("iPad (10th generation)", SystemInfo.getModel(identifier: "iPad13,18")) |
| 69 | + XCTAssertEqual("iPad (10th generation)", SystemInfo.getModel(identifier: "iPad13,19")) |
| 70 | + XCTAssertEqual("iPad Air (4th generation)", SystemInfo.getModel(identifier: "iPad13,1")) |
| 71 | + XCTAssertEqual("iPad Air (4th generation)", SystemInfo.getModel(identifier: "iPad13,2")) |
| 72 | + XCTAssertEqual("iPad Air (5th generation)", SystemInfo.getModel(identifier: "iPad13,16")) |
| 73 | + XCTAssertEqual("iPad Air (5th generation)", SystemInfo.getModel(identifier: "iPad13,17")) |
| 74 | + XCTAssertEqual("iPad Mini 3", SystemInfo.getModel(identifier: "iPad4,7")) |
| 75 | + XCTAssertEqual("iPad Mini 3", SystemInfo.getModel(identifier: "iPad4,8")) |
| 76 | + XCTAssertEqual("iPad Mini 3", SystemInfo.getModel(identifier: "iPad4,9")) |
| 77 | + XCTAssertEqual("iPad Mini (5th generation)", SystemInfo.getModel(identifier: "iPad11,1")) |
| 78 | + XCTAssertEqual("iPad Mini (5th generation)", SystemInfo.getModel(identifier: "iPad11,2")) |
| 79 | + XCTAssertEqual("iPad Mini (6th generation)", SystemInfo.getModel(identifier: "iPad14,1")) |
| 80 | + XCTAssertEqual("iPad Mini (6th generation)", SystemInfo.getModel(identifier: "iPad14,2")) |
| 81 | + XCTAssertEqual("iPad Pro (9.7-inch)", SystemInfo.getModel(identifier: "iPad6,3")) |
| 82 | + XCTAssertEqual("iPad Pro (9.7-inch)", SystemInfo.getModel(identifier: "iPad6,4")) |
| 83 | + XCTAssertEqual("iPad Pro (12.9-inch)", SystemInfo.getModel(identifier: "iPad6,7")) |
| 84 | + XCTAssertEqual("iPad Pro (12.9-inch)", SystemInfo.getModel(identifier: "iPad6,8")) |
| 85 | + XCTAssertEqual("iPad Pro (12.9-inch) (2nd generation)", SystemInfo.getModel(identifier: "iPad7,1")) |
| 86 | + XCTAssertEqual("iPad Pro (12.9-inch) (2nd generation)", SystemInfo.getModel(identifier: "iPad7,2")) |
| 87 | + XCTAssertEqual("iPad Pro (10.5-inch)", SystemInfo.getModel(identifier: "iPad7,3")) |
| 88 | + XCTAssertEqual("iPad Pro (10.5-inch)", SystemInfo.getModel(identifier: "iPad7,4")) |
| 89 | + XCTAssertEqual("iPad Pro (11-inch)", SystemInfo.getModel(identifier: "iPad8,1")) |
| 90 | + XCTAssertEqual("iPad Pro (11-inch)", SystemInfo.getModel(identifier: "iPad8,2")) |
| 91 | + XCTAssertEqual("iPad Pro (11-inch)", SystemInfo.getModel(identifier: "iPad8,3")) |
| 92 | + XCTAssertEqual("iPad Pro (11-inch)", SystemInfo.getModel(identifier: "iPad8,4")) |
| 93 | + XCTAssertEqual("iPad Pro (12.9-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad8,5")) |
| 94 | + XCTAssertEqual("iPad Pro (12.9-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad8,6")) |
| 95 | + XCTAssertEqual("iPad Pro (12.9-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad8,7")) |
| 96 | + XCTAssertEqual("iPad Pro (12.9-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad8,8")) |
| 97 | + XCTAssertEqual("iPad Pro (11-inch) (2nd generation)", SystemInfo.getModel(identifier: "iPad8,9")) |
| 98 | + XCTAssertEqual("iPad Pro (11-inch) (2nd generation)", SystemInfo.getModel(identifier: "iPad8,10")) |
| 99 | + XCTAssertEqual("iPad Pro (12.9-inch) (4th generation)", SystemInfo.getModel(identifier: "iPad8,11")) |
| 100 | + XCTAssertEqual("iPad Pro (12.9-inch) (4th generation)", SystemInfo.getModel(identifier: "iPad8,12")) |
| 101 | + XCTAssertEqual("iPad Pro (11-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad13,4")) |
| 102 | + XCTAssertEqual("iPad Pro (11-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad13,5")) |
| 103 | + XCTAssertEqual("iPad Pro (11-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad13,6")) |
| 104 | + XCTAssertEqual("iPad Pro (11-inch) (3rd generation)", SystemInfo.getModel(identifier: "iPad13,7")) |
| 105 | + XCTAssertEqual("iPad Pro (12.9-inch) (5th generation)", SystemInfo.getModel(identifier: "iPad13,8")) |
| 106 | + XCTAssertEqual("iPad Pro (12.9-inch) (5th generation)", SystemInfo.getModel(identifier: "iPad13,9")) |
| 107 | + XCTAssertEqual("iPad Pro (12.9-inch) (5th generation)", SystemInfo.getModel(identifier: "iPad13,10")) |
| 108 | + XCTAssertEqual("iPad Pro (12.9-inch) (5th generation)", SystemInfo.getModel(identifier: "iPad13,11")) |
| 109 | + XCTAssertEqual("iPad Pro (11-inch) (4th generation)", SystemInfo.getModel(identifier: "iPad14,3")) |
| 110 | + XCTAssertEqual("iPad Pro (11-inch) (4th generation)", SystemInfo.getModel(identifier: "iPad14,4")) |
| 111 | + XCTAssertEqual("iPad Pro (12.9-inch) (6th generation)", SystemInfo.getModel(identifier: "iPad14,5")) |
| 112 | + XCTAssertEqual("iPad Pro (12.9-inch) (6th generation)", SystemInfo.getModel(identifier: "iPad14,6")) |
| 113 | + } |
| 114 | + |
| 115 | + func testGetModelFor_iPod() { |
| 116 | + XCTAssertEqual("iPod touch (7th generation)", SystemInfo.getModel(identifier: "iPod9,1")) |
| 117 | + } |
| 118 | + |
| 119 | + func testGetModelFor_UnKnow() { |
| 120 | + XCTAssertEqual("iPhone100,1", SystemInfo.getModel(identifier: "iPhone100,1")) |
| 121 | + } |
| 122 | +} |
0 commit comments