SwifterTestsStringExtensions.swift 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //
  2. // SwifterTests.swift
  3. // SwifterTests
  4. //
  5. // Copyright © 2016 Damian Kołakowski. All rights reserved.
  6. //
  7. import XCTest
  8. import Swifter
  9. class SwifterTestsStringExtensions: XCTestCase {
  10. func testSHA1() {
  11. XCTAssertEqual("".SHA1(), "da39a3ee5e6b4b0d3255bfef95601890afd80709")
  12. XCTAssertEqual("test".SHA1(), "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3")
  13. // Values copied from OpenSSL:
  14. // https://github.com/openssl/openssl/blob/master/test/sha1test.c
  15. XCTAssertEqual("abc".SHA1(), "a9993e364706816aba3e25717850c26c9cd0d89d")
  16. XCTAssertEqual("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".SHA1(),
  17. "84983e441c3bd26ebaae4aa1f95129e5e54670f1")
  18. }
  19. func testBASE64() {
  20. XCTAssertEqual(String.toBase64([UInt8]("".utf8)), "")
  21. // Values copied from OpenSSL:
  22. // https://github.com/openssl/openssl/blob/995197ab84901df1cdf83509c4ce3511ea7f5ec0/test/evptests.txt
  23. XCTAssertEqual(String.toBase64([UInt8]("h".utf8)), "aA==")
  24. XCTAssertEqual(String.toBase64([UInt8]("hello".utf8)), "aGVsbG8=")
  25. XCTAssertEqual(String.toBase64([UInt8]("hello world!".utf8)), "aGVsbG8gd29ybGQh")
  26. XCTAssertEqual(String.toBase64([UInt8]("OpenSSLOpenSSL\n".utf8)), "T3BlblNTTE9wZW5TU0wK")
  27. XCTAssertEqual(String.toBase64([UInt8]("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".utf8)),
  28. "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==")
  29. XCTAssertEqual(String.toBase64([UInt8]("h".utf8)), "aA==")
  30. }
  31. func testMiscUnquote() {
  32. XCTAssertEqual("".unquote(), "")
  33. XCTAssertEqual("\"".unquote(), "\"")
  34. XCTAssertEqual("\"\"".unquote(), "")
  35. XCTAssertEqual("1234".unquote(), "1234")
  36. XCTAssertEqual("1234\"".unquote(), "1234\"")
  37. XCTAssertEqual("\"1234".unquote(), "\"1234")
  38. XCTAssertEqual("\"1234\"".unquote(), "1234")
  39. XCTAssertEqual("\"1234\"".unquote(), "1234")
  40. XCTAssertEqual("\"\"\"".unquote(), "\"")
  41. XCTAssertEqual("\"\" \"\"".unquote(), "\" \"")
  42. }
  43. func testMiscTrim() {
  44. XCTAssertEqual("".trim(), "")
  45. XCTAssertEqual("\n".trim(), "")
  46. XCTAssertEqual("\t".trim(), "")
  47. XCTAssertEqual("\r".trim(), "")
  48. XCTAssertEqual(" ".trim(), "")
  49. XCTAssertEqual(" ".trim(), "")
  50. XCTAssertEqual("1 test ".trim(), "1 test")
  51. XCTAssertEqual(" test ".trim(), "test")
  52. XCTAssertEqual(" \t\n\rtest ".trim(), "test")
  53. XCTAssertEqual(" \t\n\rtest n \n\t asd ".trim(), "test n \n\t asd")
  54. }
  55. func testMiscReplace() {
  56. XCTAssertEqual("".replace("+", "-"), "")
  57. XCTAssertEqual("test".replace("+", "-"), "test")
  58. XCTAssertEqual("+++".replace("+", "-"), "---")
  59. XCTAssertEqual("t&e&s&t12%3%".replace("&", "+").replace("%", "+"), "t+e+s+t12+3+")
  60. XCTAssertEqual("test 1234 #$%^&*( test ".replace(" ", "_"), "test_1234_#$%^&*(_test___")
  61. }
  62. }