KeychainSwiftTests.swift 2.5 KB

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