validator_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package validator // import "miniflux.app/v2/internal/validator"
  4. import "testing"
  5. func TestValidateRange(t *testing.T) {
  6. if err := ValidateRange(-1, 0); err == nil {
  7. t.Error(`An invalid offset should generate a error`)
  8. }
  9. if err := ValidateRange(0, -1); err == nil {
  10. t.Error(`An invalid limit should generate a error`)
  11. }
  12. if err := ValidateRange(42, 42); err != nil {
  13. t.Error(`A valid offset and limit should not generate any error`)
  14. }
  15. }
  16. func TestValidateDirection(t *testing.T) {
  17. for _, status := range []string{"asc", "desc"} {
  18. if err := ValidateDirection(status); err != nil {
  19. t.Error(`A valid direction should not generate any error`)
  20. }
  21. }
  22. if err := ValidateDirection("invalid"); err == nil {
  23. t.Error(`An invalid direction should generate a error`)
  24. }
  25. }
  26. func TestIsValidRegex(t *testing.T) {
  27. scenarios := map[string]bool{
  28. "(?i)miniflux": true,
  29. "[": false,
  30. }
  31. for expr, expected := range scenarios {
  32. result := IsValidRegex(expr)
  33. if result != expected {
  34. t.Errorf(`Unexpected result, got %v instead of %v`, result, expected)
  35. }
  36. }
  37. }
  38. func TestIsValidDomain(t *testing.T) {
  39. scenarios := map[string]bool{
  40. "example.org": true,
  41. "example": false,
  42. "example.": false,
  43. "example..": false,
  44. "mail.example.com:443": false,
  45. "*.example.com": false,
  46. }
  47. for domain, expected := range scenarios {
  48. result := IsValidDomain(domain)
  49. if result != expected {
  50. t.Errorf(`Unexpected result, got %v instead of %v`, result, expected)
  51. }
  52. }
  53. }
  54. func TestIsValidDomainList(t *testing.T) {
  55. scenarios := map[string]bool{
  56. "example.org": true,
  57. "example.org example.com": true,
  58. "example.org invalid..domain": false,
  59. "example.org example.com:443": false,
  60. "": false,
  61. }
  62. for domains, expected := range scenarios {
  63. result := IsValidDomainList(domains)
  64. if result != expected {
  65. t.Errorf(`Unexpected result for %q, got %v instead of %v`, domains, result, expected)
  66. }
  67. }
  68. }