| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package rewrite // import "miniflux.app/v2/internal/reader/rewrite"
- import (
- "testing"
- )
- func TestParseRulesInvalidEscape(t *testing.T) {
- rulesText := `replace("\d+"|"x")`
- _, errs := parseRules(rulesText)
- if len(errs) == 0 {
- t.Fatalf(`Expected at least one error, got none`)
- }
- var found bool
- for _, e := range errs {
- if e.Kind == RuleErrUnquote || e.Kind == RuleErrLexical {
- found = true
- }
- }
- if !found {
- t.Errorf(`Expected an error with Kind RuleErrUnquote or RuleErrLexical, got %v`, errs)
- }
- }
- func TestParseRulesUnknownName(t *testing.T) {
- rulesText := `replce("a"|"b")`
- _, errs := parseRules(rulesText)
- var found bool
- for _, e := range errs {
- if e.Kind == RuleErrUnknownName && e.Rule == "replce" {
- found = true
- }
- }
- if !found {
- t.Errorf(`Expected an error with Kind RuleErrUnknownName and Rule "replce", got %v`, errs)
- }
- }
- func TestParseRulesMissingArgs(t *testing.T) {
- rulesText := `replace("a")`
- _, errs := parseRules(rulesText)
- var found bool
- for _, e := range errs {
- if e.Kind == RuleErrMissingArgs && e.Rule == "replace" {
- found = true
- }
- }
- if !found {
- t.Errorf(`Expected an error with Kind RuleErrMissingArgs and Rule "replace", got %v`, errs)
- }
- }
- func TestParseRulesInvalidRegexp(t *testing.T) {
- rulesText := `replace("["|"x")`
- _, errs := parseRules(rulesText)
- var found bool
- for _, e := range errs {
- if e.Kind == RuleErrInvalidRegexp && e.Rule == "replace" {
- found = true
- }
- }
- if !found {
- t.Errorf(`Expected an error with Kind RuleErrInvalidRegexp and Rule "replace", got %v`, errs)
- }
- }
- func TestParseRulesWellFormed(t *testing.T) {
- rulesText := `replace("a"|"b") nl2br`
- rules, errs := parseRules(rulesText)
- if len(errs) != 0 {
- t.Fatalf(`Expected zero errors, got %v`, errs)
- }
- if len(rules) != 2 {
- t.Fatalf(`Expected 2 rules, got %d: %v`, len(rules), rules)
- }
- if rules[0].name != "replace" || len(rules[0].args) != 2 || rules[0].args[0] != "a" || rules[0].args[1] != "b" {
- t.Errorf(`Unexpected first rule: %v`, rules[0])
- }
- if rules[1].name != "nl2br" || len(rules[1].args) != 0 {
- t.Errorf(`Unexpected second rule: %v`, rules[1])
- }
- }
|