SecEncodeTransformTests.swift 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. //
  2. // SecEncodeTransformTests.swift
  3. // Base32
  4. //
  5. // Created by 野村 憲男 on 1/25/15.
  6. // Copyright (c) 2015 Norio Nomura. All rights reserved.
  7. //
  8. import Foundation
  9. import XCTest
  10. import Security
  11. class SecEncodeTransformTests: XCTestCase {
  12. let vectors: [(String,String,String)] = [
  13. ("", "", ""),
  14. ("f", "MY======", "CO======"),
  15. ("fo", "MZXQ====", "CPNG===="),
  16. ("foo", "MZXW6===", "CPNMU==="),
  17. ("foob", "MZXW6YQ=", "CPNMUOG="),
  18. ("fooba", "MZXW6YTB", "CPNMUOJ1"),
  19. ("foobar", "MZXW6YTBOI======", "CPNMUOJ1E8======"),
  20. ]
  21. override func setUp() {
  22. super.setUp()
  23. // Put setup code here. This method is called before the invocation of each test method in the class.
  24. }
  25. override func tearDown() {
  26. // Put teardown code here. This method is called after the invocation of each test method in the class.
  27. super.tearDown()
  28. }
  29. // MARK: https://tools.ietf.org/html/rfc4648
  30. // MARK: Using SecEncodeTransform
  31. func test_RFC4648_Encode_UsingSecEncodeTransform() {
  32. self.measureBlock{
  33. for _ in 0...100 {
  34. for (test, expect, expectHex) in self.vectors {
  35. let data = test.dataUsingUTF8StringEncoding
  36. let result = TTTBase32EncodedStringFromData(data)
  37. XCTAssertEqual(result, expect, "TTTBase32EncodedStringFromData for \(test)")
  38. }
  39. }
  40. }
  41. }
  42. func test_RFC4648_Decode_UsingSecEncodeTransform() {
  43. self.measureBlock{
  44. for _ in 0...100 {
  45. for (expect, test, testHex) in self.vectors {
  46. let data = expect.dataUsingUTF8StringEncoding
  47. let result = TTTDataFromBase32EncodedString(test)
  48. XCTAssertEqual(result, data, "TTTDataFromBase32EncodedString for \(test)")
  49. }
  50. }
  51. }
  52. }
  53. }