bettercap/network/wifi_test.go
2019-06-30 22:22:36 +02:00

154 lines
4.4 KiB
Go

package network
import (
"testing"
"github.com/evilsocket/islazy/data"
)
func buildExampleWiFi() *WiFi {
aliases := &data.UnsortedKV{}
return NewWiFi(buildExampleEndpoint(), aliases, func(ap *AccessPoint) {}, func(ap *AccessPoint) {})
}
func TestDot11Freq2Chan(t *testing.T) {
exampleFreq := 2472
exp := 13
got := Dot11Freq2Chan(exampleFreq)
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestDot11Chan2Freq(t *testing.T) {
exampleChan := 13
exp := 2472
got := Dot11Chan2Freq(exampleChan)
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestNewWiFi(t *testing.T) {
aliases := &data.UnsortedKV{}
exampleWiFi := NewWiFi(buildExampleEndpoint(), aliases, func(ap *AccessPoint) {}, func(ap *AccessPoint) {})
if exampleWiFi == nil {
t.Error("unable to build net wifi struct")
}
}
func TestWiFiMarshalJSON(t *testing.T) {
exampleWiFi := buildExampleWiFi()
json, err := exampleWiFi.MarshalJSON()
if err != nil {
t.Error(err)
}
if len(json) <= 0 {
t.Error("unable to marshal JSON from WiFi struct")
}
}
func TestEachAccessPoint(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:f1"] = exampleAP
exampleWiFi.aps["ff:ff:ff:ff:ff:f2"] = exampleAP
count := 0
exampleCB := func(mac string, ap *AccessPoint) {
count++
}
exampleWiFi.EachAccessPoint(exampleCB)
if count != 2 {
t.Error("unable to perform callback function for each access point")
}
}
func TestStations(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:f1"] = exampleAP
exampleWiFi.aps["ff:ff:ff:ff:ff:f2"] = exampleAP
exp := 2
got := len(exampleWiFi.Stations())
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestWiFiList(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:f1"] = exampleAP
exampleWiFi.aps["ff:ff:ff:ff:ff:f2"] = exampleAP
exp := 2
got := len(exampleWiFi.List())
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestWiFiRemove(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:f1"] = exampleAP
exampleWiFi.aps["ff:ff:ff:ff:ff:f2"] = exampleAP
exampleWiFi.Remove("ff:ff:ff:ff:ff:f1")
exp := 1
got := len(exampleWiFi.List())
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestWiFiAddIfNew(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:f1"] = exampleAP
exampleWiFi.aps["ff:ff:ff:ff:ff:f2"] = exampleAP
exampleWiFi.AddIfNew("my_wifi2", "ff:ff:ff:ff:ff:f3", 2472, int8(0))
exp := 3
got := len(exampleWiFi.List())
if got != exp {
t.Fatalf("expected '%v', got '%v'", exp, got)
}
}
func TestWiFiGet(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:ff"] = exampleAP
_, found := exampleWiFi.Get("ff:ff:ff:ff:ff:ff")
if !found {
t.Error("unable to get access point from wifi struct with mac address")
}
}
func TestWiFiGetClient(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleClient := NewStation("my_wifi", "ff:ff:ff:ff:ff:xx", 2472, int8(0))
exampleAP.clients["ff:ff:ff:ff:ff:xx"] = exampleClient
exampleWiFi.aps["ff:ff:ff:ff:ff:ff"] = exampleAP
_, found := exampleWiFi.GetClient("ff:ff:ff:ff:ff:xx")
if !found {
t.Error("unable to get client from wifi struct with mac address")
}
}
func TestWiFiClear(t *testing.T) {
exampleWiFi := buildExampleWiFi()
aliases := &data.UnsortedKV{}
exampleAP := NewAccessPoint("my_wifi", "ff:ff:ff:ff:ff:ff", 2472, int8(0), aliases)
exampleWiFi.aps["ff:ff:ff:ff:ff:ff"] = exampleAP
exampleWiFi.Clear()
if len(exampleWiFi.aps) != 0 {
t.Error("unable to clear known access point for wifi struct")
}
}