KeychainSwiftTests.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import UIKit
  2. import XCTest
  3. class keychainTests: XCTestCase {
  4. override func setUp() {
  5. super.setUp()
  6. KeychainSwift.clear()
  7. KeychainSwift.lastQueryParameters = nil
  8. }
  9. // MARK: - Set text
  10. // -----------------------
  11. func testSet() {
  12. XCTAssertTrue(KeychainSwift.set("hello :)", forKey: "key 1"))
  13. XCTAssertEqual("hello :)", KeychainSwift.get("key 1")!)
  14. }
  15. func testSet_usesAccessibleWhenUnlockedByDefault() {
  16. XCTAssertTrue(KeychainSwift.set("hello :)", forKey: "key 1"))
  17. let accessValue = KeychainSwift.lastQueryParameters?[KeychainSwiftConstants.accessible] as? String
  18. XCTAssertEqual(KeychainSwiftAccessOptions.AccessibleWhenUnlocked.value, accessValue!)
  19. }
  20. func testSetWithAccessOption() {
  21. KeychainSwift.set("hello :)", forKey: "key 1", withAccess: .AccessibleAfterFirstUnlock)
  22. let accessValue = KeychainSwift.lastQueryParameters?[KeychainSwiftConstants.accessible] as? String
  23. XCTAssertEqual(KeychainSwiftAccessOptions.AccessibleAfterFirstUnlock.value, accessValue!)
  24. }
  25. // MARK: - Set data
  26. // -----------------------
  27. func testSetData() {
  28. let data = "hello world".dataUsingEncoding(NSUTF8StringEncoding)!
  29. XCTAssertTrue(KeychainSwift.set(data, forKey: "key 123"))
  30. let dataFromKeychain = KeychainSwift.getData("key 123")!
  31. let textFromKeychain = NSString(data: dataFromKeychain, encoding:NSUTF8StringEncoding) as! String
  32. XCTAssertEqual("hello world", textFromKeychain)
  33. }
  34. func testSetData_usesAccessibleWhenUnlockedByDefault() {
  35. let data = "hello world".dataUsingEncoding(NSUTF8StringEncoding)!
  36. KeychainSwift.set(data, forKey: "key 123")
  37. let accessValue = KeychainSwift.lastQueryParameters?[KeychainSwiftConstants.accessible] as? String
  38. XCTAssertEqual(KeychainSwiftAccessOptions.AccessibleWhenUnlocked.value, accessValue!)
  39. }
  40. // MARK: - Get
  41. // -----------------------
  42. func testGet_returnNilWhenValueNotSet() {
  43. XCTAssert(KeychainSwift.get("key 1") == nil)
  44. }
  45. // MARK: - Delete
  46. // -----------------------
  47. func testDelete() {
  48. KeychainSwift.set("hello :)", forKey: "key 1")
  49. KeychainSwift.delete("key 1")
  50. XCTAssert(KeychainSwift.get("key 1") == nil)
  51. }
  52. func testDelete_deleteOnSingleKey() {
  53. KeychainSwift.set("hello :)", forKey: "key 1")
  54. KeychainSwift.set("hello two", forKey: "key 2")
  55. KeychainSwift.delete("key 1")
  56. XCTAssertEqual("hello two", KeychainSwift.get("key 2")!)
  57. }
  58. // MARK: - Clear
  59. // -----------------------
  60. func testClear() {
  61. KeychainSwift.set("hello :)", forKey: "key 1")
  62. KeychainSwift.set("hello two", forKey: "key 2")
  63. KeychainSwift.clear()
  64. XCTAssert(KeychainSwift.get("key 1") == nil)
  65. XCTAssert(KeychainSwift.get("key 2") == nil)
  66. }
  67. }