feat: add QueryValues method

pull/12/head
sundowndev 2020-09-05 16:47:12 +02:00
parent 723a968a27
commit c339ef7be8
2 changed files with 25 additions and 5 deletions

View File

@ -32,16 +32,21 @@ func (e *GoogleSearch) String() string {
return strings.Join(e.tags, " ")
}
// ToURL converts tags to an encoded Google Search URL
func (e *GoogleSearch) ToURL() string {
baseURL, _ := url.Parse(searchURL)
// QueryValues returns search request as URL values
func (e *GoogleSearch) QueryValues() url.Values {
tags := strings.Join(e.tags, " ")
params := url.Values{}
params.Add("q", tags)
baseURL.RawQuery = params.Encode()
return params
}
// ToURL converts tags to an encoded Google Search URL
func (e *GoogleSearch) ToURL() string {
baseURL, _ := url.Parse(searchURL)
baseURL.RawQuery = e.QueryValues().Encode()
return baseURL.String()
}

View File

@ -2,6 +2,7 @@ package dorkgen
import (
"fmt"
"net/url"
"testing"
assertion "github.com/stretchr/testify/assert"
@ -147,4 +148,18 @@ func TestInit(t *testing.T) {
assert.Equal(result, "site:linkedin.com (intext:\"1\" OR intext:\"2\") intitle:\"jordan\"", "they should be equal")
})
t.Run("should return URL values", func(t *testing.T) {
dork = NewGoogleSearch()
result := dork.
Site("linkedin.com").
Group((NewGoogleSearch()).Intext("1").Or().Intext("2")).
Intitle("jordan").
QueryValues()
assert.Equal(url.Values{
"q": []string{"site:linkedin.com (intext:\"1\" OR intext:\"2\") intitle:\"jordan\""},
}, result, "they should be equal")
})
}