b4934b1619
* nettests/groups.go: remove redundant struct names * go.mod go.sum: update deps except probe-engine * Update to ooni/probe-engine@e768161f91 The API has changed. Methods that used to change bits of the session have been removed. Now the session is more immutable than before. As such, we need to completely fill the config before using it. * Set IncludeCountry to always true Co-authored-by: Arturo Filastò <arturo@filasto.net>
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package nettests
|
|
|
|
// WhatsApp test implementation
|
|
type WhatsApp struct {
|
|
}
|
|
|
|
// Run starts the test
|
|
func (h WhatsApp) Run(ctl *Controller) error {
|
|
builder, err := ctl.Session.NewExperimentBuilder(
|
|
"whatsapp",
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if err := builder.SetOptionString("LogLevel", "INFO"); err != nil {
|
|
return err
|
|
}
|
|
return ctl.Run(builder, []string{""})
|
|
}
|
|
|
|
// WhatsAppTestKeys for the test
|
|
type WhatsAppTestKeys struct {
|
|
RegistrationServerBlocking bool `json:"registration_server_blocking"`
|
|
WebBlocking bool `json:"whatsapp_web_blocking"`
|
|
EndpointsBlocking bool `json:"whatsapp_endpoints_blocking"`
|
|
IsAnomaly bool `json:"-"`
|
|
}
|
|
|
|
// GetTestKeys generates a summary for a test run
|
|
func (h WhatsApp) GetTestKeys(tk map[string]interface{}) (interface{}, error) {
|
|
var (
|
|
webBlocking bool
|
|
registrationBlocking bool
|
|
endpointsBlocking bool
|
|
)
|
|
|
|
var computeBlocking = func(key string) bool {
|
|
const blk = "blocked"
|
|
if tk[key] == nil {
|
|
return false
|
|
}
|
|
if tk[key].(string) == blk {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
registrationBlocking = computeBlocking("registration_server_status")
|
|
webBlocking = computeBlocking("whatsapp_web_status")
|
|
endpointsBlocking = computeBlocking("whatsapp_endpoints_status")
|
|
|
|
return WhatsAppTestKeys{
|
|
RegistrationServerBlocking: registrationBlocking,
|
|
WebBlocking: webBlocking,
|
|
EndpointsBlocking: endpointsBlocking,
|
|
IsAnomaly: registrationBlocking || webBlocking || endpointsBlocking,
|
|
}, nil
|
|
}
|
|
|
|
// LogSummary writes the summary to the standard output
|
|
func (h WhatsApp) LogSummary(s string) error {
|
|
return nil
|
|
}
|