* [forwardport] release 3.11: update all the dependencies (#636) This diff forward ports e291e436b3c332300f5567796f9c48bb9bc1e652. * chore: use go1.17.4 everywhere Part of https://github.com/ooni/probe/issues/1843 * chore: update to the latest ooni/oohttp Part of https://github.com/ooni/probe/issues/1843 * chore: update the dependencies Note: I did an update and not an upgrade (i.e., I didn't check whether we have next-major-versions of dependencies). Part of https://github.com/ooni/probe/issues/1843 * chore: update the user-agent we use Part of https://github.com/ooni/probe/issues/1843 * chore: update ooni/oohttp and ooni/probe-assets Part of https://github.com/ooni/probe/issues/1843 * chore: run go generate again Part of https://github.com/ooni/probe/issues/1843 * fix(jafar): skip currently broken test Created issue for it here: https://github.com/ooni/probe/issues/1913
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package uncensored
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"context"
 | |
| 	"net/http"
 | |
| 	"net/url"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/ooni/probe-cli/v3/internal/netxlite"
 | |
| )
 | |
| 
 | |
| func TestGood(t *testing.T) {
 | |
| 	t.Skip("TODO(https://github.com/ooni/probe/issues/1913)")
 | |
| 	client, err := NewClient("dot://1.1.1.1:853")
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	defer client.CloseIdleConnections()
 | |
| 	if client.Address() != "1.1.1.1:853" {
 | |
| 		t.Fatal("invalid address")
 | |
| 	}
 | |
| 	if client.Network() != "dot" {
 | |
| 		t.Fatal("invalid network")
 | |
| 	}
 | |
| 	ctx := context.Background()
 | |
| 	addrs, err := client.LookupHost(ctx, "dns.google")
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	var quad8, two8two4 bool
 | |
| 	for _, addr := range addrs {
 | |
| 		quad8 = quad8 || (addr == "8.8.8.8")
 | |
| 		two8two4 = two8two4 || (addr == "8.8.4.4")
 | |
| 	}
 | |
| 	if quad8 != true && two8two4 != true {
 | |
| 		t.Fatal("invalid response")
 | |
| 	}
 | |
| 	conn, err := client.DialContext(ctx, "tcp", "8.8.8.8:853")
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	defer conn.Close()
 | |
| 	resp, err := client.RoundTrip(&http.Request{
 | |
| 		Method: "GET",
 | |
| 		URL: &url.URL{
 | |
| 			Scheme: "https",
 | |
| 			Host:   "www.google.com",
 | |
| 			Path:   "/humans.txt",
 | |
| 		},
 | |
| 		Header: http.Header{},
 | |
| 	})
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	defer resp.Body.Close()
 | |
| 	if resp.StatusCode != 200 {
 | |
| 		t.Fatal("invalid status-code")
 | |
| 	}
 | |
| 	data, err := netxlite.ReadAllContext(context.Background(), resp.Body)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if !bytes.HasPrefix(data, []byte("Google is built by a large team")) {
 | |
| 		t.Fatal("not the expected body")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestNewClientFailure(t *testing.T) {
 | |
| 	clnt, err := NewClient("antani:///")
 | |
| 	if err == nil {
 | |
| 		t.Fatal("expected an error here")
 | |
| 	}
 | |
| 	if clnt != nil {
 | |
| 		t.Fatal("expected nil client here")
 | |
| 	}
 | |
| }
 |