Skip to content

Commit

Permalink
Simulator devices now return their equivalent devices' ppi (and not nil)
Browse files Browse the repository at this point in the history
  • Loading branch information
ospina-gonzalez authored and dennisweissmann committed Jul 26, 2017
1 parent c641f12 commit 9e7aff8
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 30 deletions.
6 changes: 3 additions & 3 deletions Source/Device.swift.gyb
Original file line number Diff line number Diff line change
Expand Up @@ -365,15 +365,15 @@ public enum Device {
return UIDevice.current.localizedModel
}

/// PPI (Pixels per Inch) on the current device's screen (if applicable). When not applicable the property returns nil.
/// PPI (Pixels per Inch) on the current device's screen (if applicable). When the device is not applicable this property returns nil.
public var ppi: Int? {
#if os(iOS)
switch self {
% for device in iOSDevices:
case .${device.caseName}: return ${device.ppi}
% end
default:
return nil
case .simulator(let model): return model.ppi
case .unknown: return nil
}
#elseif os(tvOS)
return nil
Expand Down
86 changes: 59 additions & 27 deletions Tests/Tests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -274,34 +274,66 @@ class DeviceKitTests: XCTestCase {
XCTAssertEqual(Device.iPadPro12Inch2.ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Pro
XCTAssertEqual(Device.iPadPro10Inch.ppi, 264)
// Non-applicable devices:

// Simulators
XCTAssertEqual(Device.simulator(Device.iPhone4).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone4s).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone5).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone5c).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone5s).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone6).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone6Plus).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone6s).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone6sPlus).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone7).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhone7Plus).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPhoneSE).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPad2).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPad3).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPad4).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadAir).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadAir2).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPad5).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadMini).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadMini2).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadMini3).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadMini4).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadPro9Inch).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadPro10Inch).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadPro12Inch).ppi, nil)
XCTAssertEqual(Device.simulator(Device.iPadPro12Inch2).ppi, nil)
// IPods
XCTAssertEqual(Device.simulator(.iPodTouch5).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPod_Touch_(6th_generation)
XCTAssertEqual(Device.simulator(.iPodTouch5).ppi, 326)
// Iphones
// source: https://en.wikipedia.org/wiki/IPhone_4
XCTAssertEqual(Device.simulator(.iPhone4).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_4S
XCTAssertEqual(Device.simulator(.iPhone4s).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_5
XCTAssertEqual(Device.simulator(.iPhone5).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_5C
XCTAssertEqual(Device.simulator(.iPhone5c).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_5S
XCTAssertEqual(Device.simulator(.iPhone5s).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_6
XCTAssertEqual(Device.simulator(.iPhone6).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_6
XCTAssertEqual(Device.simulator(.iPhone6Plus).ppi, 401)
// source: https://en.wikipedia.org/wiki/IPhone_6S
XCTAssertEqual(Device.simulator(.iPhone6s).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_6S
XCTAssertEqual(Device.simulator(.iPhone6sPlus).ppi, 401)
// source: https://en.wikipedia.org/wiki/IPhone_7
XCTAssertEqual(Device.simulator(.iPhone7).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPhone_7
XCTAssertEqual(Device.simulator(.iPhone7Plus).ppi, 401)
// source: https://en.wikipedia.org/wiki/IPhone_SE
XCTAssertEqual(Device.simulator(.iPhoneSE).ppi, 326)
// Ipads
// source: https://en.wikipedia.org/wiki/IPad_2
XCTAssertEqual(Device.simulator(.iPad2).ppi, 132)
// source: https://en.wikipedia.org/wiki/IPad_(3rd_generation)
XCTAssertEqual(Device.simulator(.iPad3).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_(4th_generation)
XCTAssertEqual(Device.simulator(.iPad4).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Air
XCTAssertEqual(Device.simulator(.iPadAir).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Air_2
XCTAssertEqual(Device.simulator(.iPadAir2).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Air
XCTAssertEqual(Device.simulator(.iPad5).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Air
XCTAssertEqual(Device.simulator(.iPadMini).ppi, 163)
// source: https://en.wikipedia.org/wiki/IPad_Mini_2
XCTAssertEqual(Device.simulator(.iPadMini2).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPad_Mini_3
XCTAssertEqual(Device.simulator(.iPadMini3).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPad_Mini_4
XCTAssertEqual(Device.simulator(.iPadMini4).ppi, 326)
// source: https://en.wikipedia.org/wiki/IPad_Pro
XCTAssertEqual(Device.simulator(.iPadPro9Inch).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Pro
XCTAssertEqual(Device.simulator(.iPadPro12Inch).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Pro
XCTAssertEqual(Device.simulator(.iPadPro12Inch2).ppi, 264)
// source: https://en.wikipedia.org/wiki/IPad_Pro
XCTAssertEqual(Device.simulator(.iPadPro10Inch).ppi, 264)
}

#endif
Expand Down

0 comments on commit 9e7aff8

Please sign in to comment.