keychainTests.swift 2.7 KB

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