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  }