package htmlcheck import ( "fmt" "sort" "strings" "testing" "github.com/PuerkitoBio/goquery" ) func TestInlineStyleDetection(t *testing.T) { /// tests should contain the HTML test, and expected test results in alphabetical order tests := map[string]string{} tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "css-transform" tests[`

Heading

`] = "" // no match tests[`

Heading

`] = "css-text-transform" tests[`

Heading

`] = "css-text-transform" tests[`

Heading

`] = "" // no match tests[`

Heading

`] = "css-padding-inline-start-end" tests[`

Heading

`] = "css-margin-inline-start-end" tests[`

Heading

`] = "" // no match tests[`

Heading

`] = "css-important" tests[`

Heading

`] = "css-important" tests[`

Heading

`] = "css-important" tests[`

Heading

`] = "" // no match tests[`

Heading

`] = "css-background-image" tests[`

Heading

`] = "css-background-image" tests[`

Heading

`] = "css-background-image" tests[`

Heading

`] = "css-display,css-display-flex" tests[`

Heading

`] = "css-display,css-display-flex" tests[`

Heading

`] = "css-display" // should not match css-display-flex rule tests[`

Heading

`] = "css-line-height,css-opacity,css-unit-calc,css-width" tests[`

Heading

`] = "css-rgb" tests[`

Heading

`] = "css-rgb" tests[`

Heading

`] = "css-rgb" tests[`

Heading

`] = "css-rgba" tests[`

Heading

`] = "css-border,css-rgb,css-rgba" tests[`

Heading

`] = "css-border" tests[`

Heading

`] = "css-background,css-border" tests[`

Heading

`] = "css-background,css-border" tests[`

Heading

`] = "" // no match tests[`

Heading

`] = "css-border,css-important" for html, expected := range tests { reader := strings.NewReader(html) doc, err := goquery.NewDocumentFromReader(reader) if err != nil { t.Log("error ", err) t.Fail() } results := testInlineStyles(doc) matches := []string{} uniqMap := make(map[string]bool) for key := range results { if _, exists := uniqMap[key]; !exists { matches = append(matches, key) } } // ensure results are sorted to ensure consistent results sort.Strings(matches) assertEqual(t, expected, strings.Join(matches, ","), fmt.Sprintf("inline style detection \"%s\"", html)) } } func assertEqual(t *testing.T, a interface{}, b interface{}, message string) { if a == b { return } message = fmt.Sprintf("%s: \"%v\" != \"%v\"", message, a, b) t.Fatal(message) }