github.com/versent/saml2aws@v2.17.0+incompatible/pkg/page/form_test.go (about) 1 package page 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "net/url" 7 "testing" 8 9 "github.com/PuerkitoBio/goquery" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestNewFormFromDocument(t *testing.T) { 14 data, err := ioutil.ReadFile("example/multi-form.html") 15 require.Nil(t, err) 16 17 doc, err := goquery.NewDocumentFromReader(bytes.NewReader(data)) 18 require.Nil(t, err) 19 20 // assert the default behavior is to extract the first form with an action 21 form, err := NewFormFromDocument(doc, "") 22 require.Nil(t, err) 23 require.Equal(t, "/form_b", form.URL) 24 require.Equal(t, url.Values{"b1": []string{"rock"}, "b2": []string{"paper"}}, *form.Values) 25 26 // assert we can provide a specific form filter 27 form, err = NewFormFromDocument(doc, "#c") 28 require.Nil(t, err) 29 require.Equal(t, "/form_c", form.URL) 30 require.Equal(t, url.Values{"c1": []string{"now"}}, *form.Values) 31 }