ooni-probe-cli/nettests/telegram.go
Simone Basso 991b875bd9 fix(nettests/telegram.go): remove MK option
This option was meaningful for an MK implementation of Telegram but
is not meaningful for the new Go based implementation.

Closes #90
2019-12-28 17:56:47 +01:00

62 lines
1.4 KiB
Go

package nettests
// Telegram test implementation
type Telegram struct {
}
// Run starts the test
func (h Telegram) Run(ctl *Controller) error {
builder, err := ctl.Ctx.Session.NewExperimentBuilder(
"telegram",
)
if err != nil {
return err
}
return ctl.Run(builder, []string{""})
}
// TelegramTestKeys for the test
type TelegramTestKeys struct {
HTTPBlocking bool `json:"telegram_http_blocking"`
TCPBlocking bool `json:"telegram_tcp_blocking"`
WebBlocking bool `json:"telegram_web_blocking"`
IsAnomaly bool `json:"-"`
}
// GetTestKeys generates a summary for a test run
func (h Telegram) GetTestKeys(tk map[string]interface{}) (interface{}, error) {
var (
tcpBlocking bool
httpBlocking bool
webBlocking bool
)
if tk["telegram_tcp_blocking"] == nil {
tcpBlocking = false
} else {
tcpBlocking = tk["telegram_tcp_blocking"].(bool)
}
if tk["telegram_http_blocking"] == nil {
httpBlocking = false
} else {
httpBlocking = tk["telegram_http_blocking"].(bool)
}
if tk["telegram_web_status"] == nil {
webBlocking = false
} else {
webBlocking = tk["telegram_web_status"].(string) == "blocked"
}
return TelegramTestKeys{
TCPBlocking: tcpBlocking,
HTTPBlocking: httpBlocking,
WebBlocking: webBlocking,
IsAnomaly: webBlocking || httpBlocking || tcpBlocking,
}, nil
}
// LogSummary writes the summary to the standard output
func (h Telegram) LogSummary(s string) error {
return nil
}