| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package proxyrotator // import "miniflux.app/v2/internal/proxyrotator"
- import (
- "testing"
- )
- func TestProxyRotator(t *testing.T) {
- proxyURLs := []string{
- "http://proxy1.example.com",
- "http://proxy2.example.com",
- "http://proxy3.example.com",
- }
- rotator, err := NewProxyRotator(proxyURLs)
- if err != nil {
- t.Fatalf("Failed to create ProxyRotator: %v", err)
- }
- if !rotator.HasProxies() {
- t.Fatalf("Expected rotator to have proxies")
- }
- seenProxies := make(map[string]bool)
- for range len(proxyURLs) * 2 {
- proxy := rotator.GetNextProxy()
- if proxy == nil {
- t.Fatalf("Expected a proxy, got nil")
- }
- seenProxies[proxy.String()] = true
- }
- if len(seenProxies) != len(proxyURLs) {
- t.Fatalf("Expected to see all proxies, but saw: %v", seenProxies)
- }
- }
- func TestProxyRotatorEmpty(t *testing.T) {
- rotator, err := NewProxyRotator([]string{})
- if err != nil {
- t.Fatalf("Failed to create ProxyRotator: %v", err)
- }
- if rotator.HasProxies() {
- t.Fatalf("Expected rotator to have no proxies")
- }
- proxy := rotator.GetNextProxy()
- if proxy != nil {
- t.Fatalf("Expected no proxy, got: %v", proxy)
- }
- }
- func TestProxyRotatorInvalidURL(t *testing.T) {
- invalidProxyURLs := []string{
- "http://validproxy.example.com",
- "test|test://invalidproxy.example.com",
- }
- rotator, err := NewProxyRotator(invalidProxyURLs)
- if err == nil {
- t.Fatalf("Expected an error when creating ProxyRotator with invalid URLs, but got none")
- }
- if rotator != nil {
- t.Fatalf("Expected rotator to be nil when initialization fails, but got: %v", rotator)
- }
- }
|