EnumTests.swift 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. //
  2. // EnumTests.swift
  3. // KeychainAccessTests
  4. //
  5. // Created by kishikawa katsumi on 10/12/15.
  6. // Copyright © 2015 kishikawa katsumi. All rights reserved.
  7. //
  8. import XCTest
  9. import KeychainAccess
  10. class EnumTests: XCTestCase {
  11. override func setUp() {
  12. super.setUp()
  13. }
  14. override func tearDown() {
  15. super.tearDown()
  16. }
  17. func testItemClass() {
  18. do {
  19. let itemClass = ItemClass(rawValue: kSecClassGenericPassword as String)
  20. XCTAssertEqual(itemClass, .GenericPassword)
  21. XCTAssertEqual(itemClass?.description, "GenericPassword")
  22. }
  23. do {
  24. let itemClass = ItemClass(rawValue: kSecClassInternetPassword as String)
  25. XCTAssertEqual(itemClass, .InternetPassword)
  26. XCTAssertEqual(itemClass?.description, "InternetPassword")
  27. }
  28. do {
  29. let itemClass = ItemClass(rawValue: kSecClassCertificate as String)
  30. XCTAssertNil(itemClass)
  31. }
  32. do {
  33. let itemClass = ItemClass(rawValue: kSecClassKey as String)
  34. XCTAssertNil(itemClass)
  35. }
  36. do {
  37. let itemClass = ItemClass(rawValue: kSecClassIdentity as String)
  38. XCTAssertNil(itemClass)
  39. }
  40. }
  41. func testProtocolType() {
  42. do {
  43. let protocolType = ProtocolType(rawValue: kSecAttrProtocolFTP as String)
  44. XCTAssertEqual(protocolType, .FTP)
  45. XCTAssertEqual(protocolType?.description, "FTP")
  46. }
  47. do {
  48. let protocolType = ProtocolType(rawValue: kSecAttrProtocolFTPAccount as String)
  49. XCTAssertEqual(protocolType, .FTPAccount)
  50. XCTAssertEqual(protocolType?.description, "FTPAccount")
  51. }
  52. do {
  53. let protocolType = ProtocolType(rawValue: kSecAttrProtocolHTTP as String)
  54. XCTAssertEqual(protocolType, .HTTP)
  55. XCTAssertEqual(protocolType?.description, "HTTP")
  56. }
  57. do {
  58. let protocolType = ProtocolType(rawValue: kSecAttrProtocolIRC as String)
  59. XCTAssertEqual(protocolType, .IRC)
  60. XCTAssertEqual(protocolType?.description, "IRC")
  61. }
  62. do {
  63. let protocolType = ProtocolType(rawValue: kSecAttrProtocolNNTP as String)
  64. XCTAssertEqual(protocolType, .NNTP)
  65. XCTAssertEqual(protocolType?.description, "NNTP")
  66. }
  67. do {
  68. let protocolType = ProtocolType(rawValue: kSecAttrProtocolPOP3 as String)
  69. XCTAssertEqual(protocolType, .POP3)
  70. XCTAssertEqual(protocolType?.description, "POP3")
  71. }
  72. do {
  73. let protocolType = ProtocolType(rawValue: kSecAttrProtocolSMTP as String)
  74. XCTAssertEqual(protocolType, .SMTP)
  75. XCTAssertEqual(protocolType?.description, "SMTP")
  76. }
  77. do {
  78. let protocolType = ProtocolType(rawValue: kSecAttrProtocolSOCKS as String)
  79. XCTAssertEqual(protocolType, .SOCKS)
  80. XCTAssertEqual(protocolType?.description, "SOCKS")
  81. }
  82. do {
  83. let protocolType = ProtocolType(rawValue: kSecAttrProtocolIMAP as String)
  84. XCTAssertEqual(protocolType, .IMAP)
  85. XCTAssertEqual(protocolType?.description, "IMAP")
  86. }
  87. do {
  88. let protocolType = ProtocolType(rawValue: kSecAttrProtocolLDAP as String)
  89. XCTAssertEqual(protocolType, .LDAP)
  90. XCTAssertEqual(protocolType?.description, "LDAP")
  91. }
  92. do {
  93. let protocolType = ProtocolType(rawValue: kSecAttrProtocolAppleTalk as String)
  94. XCTAssertEqual(protocolType, .AppleTalk)
  95. XCTAssertEqual(protocolType?.description, "AppleTalk")
  96. }
  97. do {
  98. let protocolType = ProtocolType(rawValue: kSecAttrProtocolAFP as String)
  99. XCTAssertEqual(protocolType, .AFP)
  100. XCTAssertEqual(protocolType?.description, "AFP")
  101. }
  102. do {
  103. let protocolType = ProtocolType(rawValue: kSecAttrProtocolTelnet as String)
  104. XCTAssertEqual(protocolType, .Telnet)
  105. XCTAssertEqual(protocolType?.description, "Telnet")
  106. }
  107. do {
  108. let protocolType = ProtocolType(rawValue: kSecAttrProtocolSSH as String)
  109. XCTAssertEqual(protocolType, .SSH)
  110. XCTAssertEqual(protocolType?.description, "SSH")
  111. }
  112. do {
  113. let protocolType = ProtocolType(rawValue: kSecAttrProtocolFTPS as String)
  114. XCTAssertEqual(protocolType, .FTPS)
  115. XCTAssertEqual(protocolType?.description, "FTPS")
  116. }
  117. do {
  118. let protocolType = ProtocolType(rawValue: kSecAttrProtocolHTTPS as String)
  119. XCTAssertEqual(protocolType, .HTTPS)
  120. XCTAssertEqual(protocolType?.description, "HTTPS")
  121. }
  122. do {
  123. let protocolType = ProtocolType(rawValue: kSecAttrProtocolHTTPProxy as String)
  124. XCTAssertEqual(protocolType, .HTTPProxy)
  125. XCTAssertEqual(protocolType?.description, "HTTPProxy")
  126. }
  127. do {
  128. let protocolType = ProtocolType(rawValue: kSecAttrProtocolHTTPSProxy as String)
  129. XCTAssertEqual(protocolType, .HTTPSProxy)
  130. XCTAssertEqual(protocolType?.description, "HTTPSProxy")
  131. }
  132. do {
  133. let protocolType = ProtocolType(rawValue: kSecAttrProtocolFTPProxy as String)
  134. XCTAssertEqual(protocolType, .FTPProxy)
  135. XCTAssertEqual(protocolType?.description, "FTPProxy")
  136. }
  137. do {
  138. let protocolType = ProtocolType(rawValue: kSecAttrProtocolSMB as String)
  139. XCTAssertEqual(protocolType, .SMB)
  140. XCTAssertEqual(protocolType?.description, "SMB")
  141. }
  142. do {
  143. let protocolType = ProtocolType(rawValue: kSecAttrProtocolRTSP as String)
  144. XCTAssertEqual(protocolType, .RTSP)
  145. XCTAssertEqual(protocolType?.description, "RTSP")
  146. }
  147. do {
  148. let protocolType = ProtocolType(rawValue: kSecAttrProtocolRTSPProxy as String)
  149. XCTAssertEqual(protocolType, .RTSPProxy)
  150. XCTAssertEqual(protocolType?.description, "RTSPProxy")
  151. }
  152. do {
  153. let protocolType = ProtocolType(rawValue: kSecAttrProtocolDAAP as String)
  154. XCTAssertEqual(protocolType, .DAAP)
  155. XCTAssertEqual(protocolType?.description, "DAAP")
  156. }
  157. do {
  158. let protocolType = ProtocolType(rawValue: kSecAttrProtocolEPPC as String)
  159. XCTAssertEqual(protocolType, .EPPC)
  160. XCTAssertEqual(protocolType?.description, "EPPC")
  161. }
  162. do {
  163. let protocolType = ProtocolType(rawValue: kSecAttrProtocolIPP as String)
  164. XCTAssertEqual(protocolType, .IPP)
  165. XCTAssertEqual(protocolType?.description, "IPP")
  166. }
  167. do {
  168. let protocolType = ProtocolType(rawValue: kSecAttrProtocolNNTPS as String)
  169. XCTAssertEqual(protocolType, .NNTPS)
  170. XCTAssertEqual(protocolType?.description, "NNTPS")
  171. }
  172. do {
  173. let protocolType = ProtocolType(rawValue: kSecAttrProtocolLDAPS as String)
  174. XCTAssertEqual(protocolType, .LDAPS)
  175. XCTAssertEqual(protocolType?.description, "LDAPS")
  176. }
  177. do {
  178. let protocolType = ProtocolType(rawValue: kSecAttrProtocolTelnetS as String)
  179. XCTAssertEqual(protocolType, .TelnetS)
  180. XCTAssertEqual(protocolType?.description, "TelnetS")
  181. }
  182. do {
  183. let protocolType = ProtocolType(rawValue: kSecAttrProtocolIMAPS as String)
  184. XCTAssertEqual(protocolType, .IMAPS)
  185. XCTAssertEqual(protocolType?.description, "IMAPS")
  186. }
  187. do {
  188. let protocolType = ProtocolType(rawValue: kSecAttrProtocolIRCS as String)
  189. XCTAssertEqual(protocolType, .IRCS)
  190. XCTAssertEqual(protocolType?.description, "IRCS")
  191. }
  192. do {
  193. let protocolType = ProtocolType(rawValue: kSecAttrProtocolPOP3S as String)
  194. XCTAssertEqual(protocolType, .POP3S)
  195. XCTAssertEqual(protocolType?.description, "POP3S")
  196. }
  197. }
  198. func testAuthenticationType() {
  199. do {
  200. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeNTLM as String)
  201. XCTAssertEqual(authenticationType, .NTLM)
  202. XCTAssertEqual(authenticationType?.description, "NTLM")
  203. }
  204. do {
  205. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeMSN as String)
  206. XCTAssertEqual(authenticationType, .MSN)
  207. XCTAssertEqual(authenticationType?.description, "MSN")
  208. }
  209. do {
  210. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeDPA as String)
  211. XCTAssertEqual(authenticationType, .DPA)
  212. XCTAssertEqual(authenticationType?.description, "DPA")
  213. }
  214. do {
  215. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeRPA as String)
  216. XCTAssertEqual(authenticationType, .RPA)
  217. XCTAssertEqual(authenticationType?.description, "RPA")
  218. }
  219. do {
  220. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeHTTPBasic as String)
  221. XCTAssertEqual(authenticationType, .HTTPBasic)
  222. XCTAssertEqual(authenticationType?.description, "HTTPBasic")
  223. }
  224. do {
  225. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeHTTPDigest as String)
  226. XCTAssertEqual(authenticationType, .HTTPDigest)
  227. XCTAssertEqual(authenticationType?.description, "HTTPDigest")
  228. }
  229. do {
  230. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeHTMLForm as String)
  231. XCTAssertEqual(authenticationType, .HTMLForm)
  232. XCTAssertEqual(authenticationType?.description, "HTMLForm")
  233. }
  234. do {
  235. let authenticationType = AuthenticationType(rawValue: kSecAttrAuthenticationTypeDefault as String)
  236. XCTAssertEqual(authenticationType, .Default)
  237. XCTAssertEqual(authenticationType?.description, "Default")
  238. }
  239. }
  240. func testAccessibility() {
  241. guard #available(OSX 10.10, *) else {
  242. return
  243. }
  244. do {
  245. let accessibility = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked as String)
  246. XCTAssertEqual(accessibility, .WhenUnlocked)
  247. XCTAssertEqual(accessibility?.description, "WhenUnlocked")
  248. }
  249. do {
  250. let accessibility = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock as String)
  251. XCTAssertEqual(accessibility, .AfterFirstUnlock)
  252. XCTAssertEqual(accessibility?.description, "AfterFirstUnlock")
  253. }
  254. do {
  255. let accessibility = Accessibility(rawValue: kSecAttrAccessibleAlways as String)
  256. XCTAssertEqual(accessibility, .Always)
  257. XCTAssertEqual(accessibility?.description, "Always")
  258. }
  259. do {
  260. let accessibility = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String)
  261. XCTAssertEqual(accessibility, .WhenPasscodeSetThisDeviceOnly)
  262. XCTAssertEqual(accessibility?.description, "WhenPasscodeSetThisDeviceOnly")
  263. }
  264. do {
  265. let accessibility = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly as String)
  266. XCTAssertEqual(accessibility, .WhenUnlockedThisDeviceOnly)
  267. XCTAssertEqual(accessibility?.description, "WhenUnlockedThisDeviceOnly")
  268. }
  269. do {
  270. let accessibility = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly as String)
  271. XCTAssertEqual(accessibility, .AfterFirstUnlockThisDeviceOnly)
  272. XCTAssertEqual(accessibility?.description, "AfterFirstUnlockThisDeviceOnly")
  273. }
  274. do {
  275. let accessibility = Accessibility(rawValue: kSecAttrAccessibleAlwaysThisDeviceOnly as String)
  276. XCTAssertEqual(accessibility, .AlwaysThisDeviceOnly)
  277. XCTAssertEqual(accessibility?.description, "AlwaysThisDeviceOnly")
  278. }
  279. }
  280. }