package v2geo import ( "testing" "github.com/stretchr/testify/assert" ) func TestLoadGeoIP(t *testing.T) { m, err := LoadGeoIP("geoip.dat") assert.NoError(t, err) // Exact checks since we know the data. assert.Len(t, m, 252) assert.Equal(t, m["cn"].CountryCode, "CN") assert.Len(t, m["cn"].Cidr, 10407) assert.Equal(t, m["us"].CountryCode, "US") assert.Len(t, m["us"].Cidr, 193171) assert.Equal(t, m["private"].CountryCode, "PRIVATE") assert.Len(t, m["private"].Cidr, 18) assert.Contains(t, m["private"].Cidr, &CIDR{ Ip: []byte("\xc0\xa8\x00\x00"), Prefix: 16, }) } func TestLoadGeoSite(t *testing.T) { m, err := LoadGeoSite("geosite.dat") assert.NoError(t, err) // Exact checks since we know the data. assert.Len(t, m, 1204) assert.Equal(t, m["netflix"].CountryCode, "NETFLIX") assert.Len(t, m["netflix"].Domain, 25) assert.Contains(t, m["netflix"].Domain, &Domain{ Type: Domain_Full, Value: "netflix.com.edgesuite.net", }) assert.Contains(t, m["netflix"].Domain, &Domain{ Type: Domain_RootDomain, Value: "fast.com", }) assert.Len(t, m["google"].Domain, 1066) assert.Contains(t, m["google"].Domain, &Domain{ Type: Domain_RootDomain, Value: "ggpht.cn", Attribute: []*Domain_Attribute{ { Key: "cn", TypedValue: &Domain_Attribute_BoolValue{BoolValue: true}, }, }, }) }