1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-09-15 18:57:04 +00:00

refactor(config): rewrite config parser

This PR refactors the configuration parser, replacing the old parser implementation with a new, more structured approach that includes validation and improved organization.

Key changes:
- Complete rewrite of the configuration parser using a map-based structure with built-in validation
- Addition of comprehensive validator functions for configuration values
- Renamed numerous configuration getter methods for better consistency
This commit is contained in:
Frédéric Guillot 2025-09-14 10:51:04 -07:00 committed by GitHub
parent 502e7108dd
commit 5e607be86a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 3615 additions and 3523 deletions

View file

@ -392,7 +392,7 @@ func TestInvalidNestedTag(t *testing.T) {
}
func TestInvalidIFrame(t *testing.T) {
config.Opts = config.NewOptions()
config.Opts = config.NewConfigOptions()
input := `<iframe src="http://example.org/"></iframe>`
expected := ``
@ -404,7 +404,7 @@ func TestInvalidIFrame(t *testing.T) {
}
func TestSameDomainIFrame(t *testing.T) {
config.Opts = config.NewOptions()
config.Opts = config.NewConfigOptions()
input := `<iframe src="http://example.com/test"></iframe>`
expected := ``
@ -416,7 +416,7 @@ func TestSameDomainIFrame(t *testing.T) {
}
func TestInvidiousIFrame(t *testing.T) {
config.Opts = config.NewOptions()
config.Opts = config.NewConfigOptions()
input := `<iframe src="https://yewtu.be/watch?v=video_id"></iframe>`
expected := `<iframe src="https://yewtu.be/watch?v=video_id" sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox" loading="lazy"></iframe>`
@ -432,7 +432,7 @@ func TestCustomYoutubeEmbedURL(t *testing.T) {
defer os.Clearenv()
var err error
if config.Opts, err = config.NewParser().ParseEnvironmentVariables(); err != nil {
if config.Opts, err = config.NewConfigParser().ParseEnvironmentVariables(); err != nil {
t.Fatalf(`Parsing failure: %v`, err)
}
@ -446,7 +446,7 @@ func TestCustomYoutubeEmbedURL(t *testing.T) {
}
func TestIFrameWithChildElements(t *testing.T) {
config.Opts = config.NewOptions()
config.Opts = config.NewConfigOptions()
input := `<iframe src="https://www.youtube.com/"><p>test</p></iframe>`
expected := `<iframe src="https://www.youtube.com/" sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox" loading="lazy"></iframe>`
@ -850,7 +850,7 @@ func TestReplaceYoutubeURLWithCustomURL(t *testing.T) {
os.Setenv("YOUTUBE_EMBED_URL_OVERRIDE", "https://invidious.custom/embed/")
var err error
config.Opts, err = config.NewParser().ParseEnvironmentVariables()
config.Opts, err = config.NewConfigParser().ParseEnvironmentVariables()
if err != nil {
t.Fatalf(`Parsing failure: %v`, err)
}