mic.git


mic

~ proxy for JA4-TLS fingerprinting evasion
git clone https://github.com/djnnvx/mic.git
log | files | refs | archive | README | LICENSE

tls_test.go (1174B)

      1 package fingerprint_test
      2 
      3 import (
      4 	"testing"
      5 
      6 	"github.com/djnnvx/mic/fingerprint"
      7 )
      8 
      9 func TestByName_Happy(t *testing.T) {
     10 	fp, err := fingerprint.ByName("chrome-120")
     11 	if err != nil {
     12 		t.Fatalf("ByName(%q) returned error: %v", "chrome-120", err)
     13 	}
     14 	if fp == nil {
     15 		t.Fatal("ByName returned nil fingerprint")
     16 	}
     17 }
     18 
     19 func TestByName_Error(t *testing.T) {
     20 	_, err := fingerprint.ByName("not-a-real-profile")
     21 	if err == nil {
     22 		t.Fatal("ByName with unknown name returned nil error; expected error")
     23 	}
     24 }
     25 
     26 func TestName_ReturnsProfile(t *testing.T) {
     27 	fp, err := fingerprint.ByName("chrome-120")
     28 	if err != nil {
     29 		t.Fatalf("ByName: %v", err)
     30 	}
     31 	if fp.Name() != "chrome-120" {
     32 		t.Errorf("Name() = %q; want %q", fp.Name(), "chrome-120")
     33 	}
     34 }
     35 
     36 func TestNameTable_HasExpectedProfiles(t *testing.T) {
     37 	expected := []string{
     38 		"chrome-120", "chrome-120-pq", "chrome-131", "chrome-133",
     39 		"firefox-120",
     40 		"safari-16", "ios-16",
     41 		"edge-85", "edge-106",
     42 		"opera-91",
     43 		"android-11-okhttp",
     44 		"ipad-15",
     45 		"qq-11", "360-7", "360-11",
     46 	}
     47 	for _, name := range expected {
     48 		if _, ok := fingerprint.NameTable[name]; !ok {
     49 			t.Errorf("NameTable missing profile %q", name)
     50 		}
     51 	}
     52 }