PercentEncodingTests.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright 2024, gRPC Authors All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. import GRPCNIOTransportCore
  17. import Testing
  18. @Suite("Percent encoding")
  19. struct PercentEncodingTests {
  20. @Test(
  21. "encode ':authority'",
  22. arguments: [
  23. ("", ""),
  24. ("foo", "foo"),
  25. ("FOO", "FOO"),
  26. ("f00", "f00"),
  27. ("f0&", "f0&"),
  28. ("f**", "f**"),
  29. ("fo#", "fo%23"),
  30. ("fo/o|bar", "fo%2Fo%7Cbar"),
  31. ("foo?bar", "foo%3Fbar"),
  32. ("foo<bar>", "foo%3Cbar%3E"),
  33. ]
  34. )
  35. func encodeAuthority(_ input: String, expected: String) {
  36. let encoded = PercentEncoding.encodeAuthority(input)
  37. #expect(encoded == expected)
  38. }
  39. }