UnitColorGeneratorTest.swift 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
  3. // SPDX-License-Identifier: GPL-3.0-or-later
  4. //
  5. import XCTest
  6. @testable import NextcloudTalk
  7. final class UnitColorGeneratorTest: XCTestCase {
  8. func testUsernameToColor() throws {
  9. // See: https://github.com/nextcloud-libraries/nextcloud-vue/blob/76cc5dec7305f8e83b6380893e391d53770fb272/tests/unit/functions/usernameToColor/usernameToColor.spec.js#L10
  10. usernameToColorHexHelper(username: "", expectedHexColor: "#0082c9")
  11. usernameToColorHexHelper(username: ",", expectedHexColor: "#1e78c1")
  12. usernameToColorHexHelper(username: ".", expectedHexColor: "#c98879")
  13. usernameToColorHexHelper(username: "admin", expectedHexColor: "#d09e6d")
  14. usernameToColorHexHelper(username: "123e4567-e89b-12d3-a456-426614174000", expectedHexColor: "#bc5c91")
  15. usernameToColorHexHelper(username: "Akeel Robertson", expectedHexColor: "#9750a4")
  16. usernameToColorHexHelper(username: "Brayden Truong", expectedHexColor: "#d09e6d")
  17. usernameToColorHexHelper(username: "Daphne Roy", expectedHexColor: "#9750a4")
  18. usernameToColorHexHelper(username: "Ellena Wright Frederic Conway", expectedHexColor: "#c37285")
  19. usernameToColorHexHelper(username: "Gianluca Hills", expectedHexColor: "#d6b461")
  20. usernameToColorHexHelper(username: "Haseeb Stephens", expectedHexColor: "#d6b461")
  21. usernameToColorHexHelper(username: "Idris Mac", expectedHexColor: "#9750a4")
  22. usernameToColorHexHelper(username: "Kristi Fisher", expectedHexColor: "#0082c9")
  23. usernameToColorHexHelper(username: "Lillian Wall", expectedHexColor: "#bc5c91")
  24. usernameToColorHexHelper(username: "Lorelai Taylor", expectedHexColor: "#ddcb55")
  25. usernameToColorHexHelper(username: "Madina Knight", expectedHexColor: "#9750a4")
  26. usernameToColorHexHelper(username: "Meeting", expectedHexColor: "#c98879")
  27. usernameToColorHexHelper(username: "Private Circle", expectedHexColor: "#c37285")
  28. usernameToColorHexHelper(username: "Rae Hope", expectedHexColor: "#795aab")
  29. usernameToColorHexHelper(username: "Santiago Singleton", expectedHexColor: "#bc5c91")
  30. usernameToColorHexHelper(username: "Sid Combs", expectedHexColor: "#d09e6d")
  31. usernameToColorHexHelper(username: "TestCircle", expectedHexColor: "#499aa2")
  32. usernameToColorHexHelper(username: "Tom Mörtel", expectedHexColor: "#248eb5")
  33. usernameToColorHexHelper(username: "Vivienne Jacobs", expectedHexColor: "#1e78c1")
  34. usernameToColorHexHelper(username: "Zaki Cortes", expectedHexColor: "#6ea68f")
  35. usernameToColorHexHelper(username: "a user", expectedHexColor: "#5b64b3")
  36. usernameToColorHexHelper(username: "admin@cloud.example.com", expectedHexColor: "#9750a4")
  37. usernameToColorHexHelper(username: "another user", expectedHexColor: "#ddcb55")
  38. usernameToColorHexHelper(username: "asd", expectedHexColor: "#248eb5")
  39. usernameToColorHexHelper(username: "bar", expectedHexColor: "#0082c9")
  40. usernameToColorHexHelper(username: "foo", expectedHexColor: "#d09e6d")
  41. usernameToColorHexHelper(username: "wasd", expectedHexColor: "#b6469d")
  42. usernameToColorHexHelper(username: "مرحبا بالعالم", expectedHexColor: "#c98879")
  43. usernameToColorHexHelper(username: "🙈", expectedHexColor: "#b6469d")
  44. }
  45. private func usernameToColorHexHelper(username: String, expectedHexColor: String) {
  46. let userColor = ColorGenerator.shared.usernameToColor(username)
  47. let userHexColor = NCUtils.hexString(fromColor: userColor)
  48. XCTAssertEqual(userHexColor.lowercased(), expectedHexColor.lowercased())
  49. }
  50. }