github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/dashboard/dashapi/dashapi_test.go (about)

     1  // Copyright 2024 syzkaller project authors. All rights reserved.
     2  // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  package dashapi
     5  
     6  import (
     7  	"bytes"
     8  	"testing"
     9  )
    10  
    11  func TestNewOpts(t *testing.T) {
    12  	tests := []struct {
    13  		name      string
    14  		userAgent string
    15  	}{
    16  		{
    17  			name: "no_options",
    18  		},
    19  		{
    20  			name:      "custom_user_agent",
    21  			userAgent: "Custom Agent/2.3",
    22  		},
    23  	}
    24  
    25  	for _, test := range tests {
    26  		t.Run(test.name, func(t *testing.T) {
    27  			opts := []DashboardOpts{}
    28  			if test.userAgent != "" {
    29  				opts = append(opts, UserAgent(test.userAgent))
    30  			}
    31  			dash, err := New("some_client", "some_addr", "some_key", opts...)
    32  			if err != nil {
    33  				t.Fatalf("call to New() returned unexpected error, got: %v, want: nil", err)
    34  			}
    35  
    36  			req, err := dash.ctor("GET", "http://www.example.com", bytes.NewBuffer([]byte("body")))
    37  			if err != nil {
    38  				t.Errorf("ctor() returned unexpected error, got: %v, want: nil", err)
    39  			}
    40  
    41  			got := req.Header.Get("User-Agent")
    42  			if got != test.userAgent {
    43  				t.Errorf("created request has unexpected header. got: %s, want: 'Custom Agent/2.3'", got)
    44  			}
    45  		})
    46  	}
    47  }