diff --git a/internal/client/client.go b/internal/client/client.go
index 2bc1fb5..a6ca480 100644
--- a/internal/client/client.go
+++ b/internal/client/client.go
@@ -299,7 +299,7 @@ func wrapError(msg string, err error) error {
}
func checkInboxCAPTCHA(content string) error {
- s := `w\.finrmail\(\d+,\s*\d+,\s*\d+,\s*\d+,\s*\d+,\s*'alt\.[^']+',\s*'.*?'\)`
+ s := `w\.finrmail\(\d+,\s*\d+,\s*\d+,\s*\d+,\s*\d+,\s*'alt\.[^']+',\s*'.*?'\)|Loading \.\.\.`
if !regexp.MustCompile(s).MatchString(content) {
return ErrCaptcha
}
diff --git a/internal/client/client_test.go b/internal/client/client_test.go
index 87400a5..d32a604 100644
--- a/internal/client/client_test.go
+++ b/internal/client/client_test.go
@@ -575,10 +575,42 @@ func TestHTTPClientFactoryCreate(t *testing.T) {
}
}
+func TestCheckInboxCAPTCHA(t *testing.T) {
+ type scenario struct {
+ name string
+ arg string
+ test func(error)
+ }
+
+ for _, s := range []scenario{{
+ "No captcha because loading is defined",
+ "Loading ...",
+ func(err error) {
+ assert.NoError(t, err)
+ },
+ }, {
+ "No captcha because finrmail is defined",
+ `w.finrmail(699,2,1,1,0,'alt.xm-doh3nzhv','')`,
+ func(err error) {
+ assert.NoError(t, err)
+ },
+ }, {
+ "Captcha activated",
+ ``,
+ func(err error) {
+ assert.Error(t, err)
+ },
+ }} {
+ t.Run(s.name, func(t *testing.T) {
+ err := checkInboxCAPTCHA(s.arg)
+ s.test(err)
+ })
+ }
+}
+
func mockYopmailSetup() {
httpmock.RegisterResponder("GET", refURL+"/ver/3.1/webmail.js",
httpmock.NewStringResponder(200, "xxx http://whatever.com?q=s&yj=ytest&t=a xxxxx"))
- httpmock.RegisterResponder("GET", refURL+"/consent?c=accept", httpmock.NewStringResponder(200, ""))
httpmock.RegisterResponder("GET", refURL,
httpmock.NewStringResponder(200, ``))
}