package measurexlite import ( "testing" "github.com/google/go-cmp/cmp" "github.com/ooni/probe-cli/v3/internal/randx" ) func TestWebGetTitle(t *testing.T) { type args struct { body string } tests := []struct { name string args args wantOut string }{{ name: "with empty input", args: args{ body: "", }, wantOut: "", }, { name: "with body containing no titles", args: args{ body: "", }, wantOut: "", }, { name: "success with UTF-7 body", args: args{ body: "La community di MSN", }, wantOut: "La community di MSN", }, { name: "success with UTF-8 body", args: args{ body: "La comunità di MSN", }, wantOut: "La comunità di MSN", }, { name: "when the title is too long", args: args{ body: "" + randx.Letters(1024) + "", }, wantOut: "", }, { name: "success with case variations", args: args{ body: "La commUNity di MSN", }, wantOut: "La commUNity di MSN", }} for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { gotOut := WebGetTitle(tt.args.body) if diff := cmp.Diff(tt.wantOut, gotOut); diff != "" { t.Fatal(diff) } }) } }