Codebase list subfinder / run/21fc8955-d0e5-47b0-8405-7bbf0e7438dc/upstream v2 / pkg / passive / sources_wo_auth_test.go
run/21fc8955-d0e5-47b0-8405-7bbf0e7438dc/upstream

Tree @run/21fc8955-d0e5-47b0-8405-7bbf0e7438dc/upstream (Download .tar.gz)

sources_wo_auth_test.go @run/21fc8955-d0e5-47b0-8405-7bbf0e7438dc/upstreamraw · history · blame

package passive

import (
	"context"
	"reflect"
	"strings"
	"testing"

	"github.com/stretchr/testify/assert"

	"github.com/projectdiscovery/gologger"
	"github.com/projectdiscovery/gologger/levels"
	"github.com/projectdiscovery/subfinder/v2/pkg/subscraping"
)

func TestSourcesWithoutKeys(t *testing.T) {
	domain := "hackerone.com"
	timeout := 60

	gologger.DefaultLogger.SetMaxLevel(levels.LevelDebug)

	ctx := context.Background()
	session, err := subscraping.NewSession(domain, "", 0, timeout)
	assert.Nil(t, err)

	var expected = subscraping.Result{Type: subscraping.Subdomain, Value: domain, Error: nil}

	for _, source := range AllSources {
		if source.NeedsKey() {
			continue
		}

		t.Run(source.Name(), func(t *testing.T) {
			var results []subscraping.Result

			for result := range source.Run(ctx, domain, session) {
				results = append(results, result)

				assert.Equal(t, source.Name(), result.Source)

				assert.Equal(t, expected.Type, result.Type)
				assert.Equal(t, reflect.TypeOf(expected.Error), reflect.TypeOf(result.Error), result.Error)

				assert.True(t, strings.HasSuffix(strings.ToLower(result.Value), strings.ToLower(expected.Value)))
			}

			assert.GreaterOrEqual(t, len(results), 1)
		})
	}
}