validator_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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 (
  5. "testing"
  6. "miniflux.app/v2/internal/model"
  7. )
  8. func TestValidateRange(t *testing.T) {
  9. if err := ValidateRange(-1, 0); err == nil {
  10. t.Error(`An invalid offset should generate a error`)
  11. }
  12. if err := ValidateRange(0, -1); err == nil {
  13. t.Error(`An invalid limit should generate a error`)
  14. }
  15. if err := ValidateRange(0, model.MaxEntryLimit+1); err == nil {
  16. t.Error(`A limit above MaxEntryLimit should generate an error`)
  17. }
  18. if err := ValidateRange(42, 42); err != nil {
  19. t.Error(`A valid offset and limit should not generate any error`)
  20. }
  21. if err := ValidateRange(0, model.MaxEntryLimit); err != nil {
  22. t.Error(`A limit equal to MaxEntryLimit should not generate an error`)
  23. }
  24. }
  25. func TestValidateDirection(t *testing.T) {
  26. for _, status := range []string{"asc", "desc"} {
  27. if err := ValidateDirection(status); err != nil {
  28. t.Error(`A valid direction should not generate any error`)
  29. }
  30. }
  31. if err := ValidateDirection("invalid"); err == nil {
  32. t.Error(`An invalid direction should generate a error`)
  33. }
  34. }
  35. func TestIsValidRegex(t *testing.T) {
  36. scenarios := map[string]bool{
  37. "(?i)miniflux": true,
  38. "[": false,
  39. }
  40. for expr, expected := range scenarios {
  41. result := IsValidRegex(expr)
  42. if result != expected {
  43. t.Errorf(`Unexpected result, got %v instead of %v`, result, expected)
  44. }
  45. }
  46. }
  47. func TestIsValidDomain(t *testing.T) {
  48. scenarios := map[string]bool{
  49. "example.org": true,
  50. "example": false,
  51. "example.": false,
  52. "example..": false,
  53. "mail.example.com:443": false,
  54. "*.example.com": false,
  55. }
  56. for domain, expected := range scenarios {
  57. result := IsValidDomain(domain)
  58. if result != expected {
  59. t.Errorf(`Unexpected result, got %v instead of %v`, result, expected)
  60. }
  61. }
  62. }
  63. func TestIsValidDomainList(t *testing.T) {
  64. scenarios := map[string]bool{
  65. "example.org": true,
  66. "example.org example.com": true,
  67. "example.org invalid..domain": false,
  68. "example.org example.com:443": false,
  69. "": false,
  70. }
  71. for domains, expected := range scenarios {
  72. result := IsValidDomainList(domains)
  73. if result != expected {
  74. t.Errorf(`Unexpected result for %q, got %v instead of %v`, domains, result, expected)
  75. }
  76. }
  77. }