]> git.basschouten.com Git - openhab-addons.git/commitdiff
[mielecloud] Remove e-mail parameter validation (#11073)
authorBjörn Lange <bjoern.lange@udo.edu>
Mon, 2 Aug 2021 19:45:41 +0000 (21:45 +0200)
committerGitHub <noreply@github.com>
Mon, 2 Aug 2021 19:45:41 +0000 (21:45 +0200)
Signed-off-by: Björn Lange <bjoern.lange@tu-dortmund.de>
15 files changed:
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/MieleCloudBindingConstants.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/CreateBridgeServlet.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/FailureServlet.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/ForwardToLoginServlet.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/PairAccountServlet.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/SuccessServlet.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/handler/MieleBridgeHandler.java
bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/util/EmailValidator.java [deleted file]
bundles/org.openhab.binding.mielecloud/src/main/resources/OH-INF/i18n/mielecloud.properties
bundles/org.openhab.binding.mielecloud/src/main/resources/org/openhab/binding/mielecloud/internal/config/pairing.html
bundles/org.openhab.binding.mielecloud/src/test/java/org/openhab/binding/mielecloud/internal/util/EmailValidatorTest.java [deleted file]
itests/org.openhab.binding.mielecloud.tests/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/CreateBridgeServletTest.java
itests/org.openhab.binding.mielecloud.tests/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/ForwardToLoginServletTest.java
itests/org.openhab.binding.mielecloud.tests/src/main/java/org/openhab/binding/mielecloud/internal/config/servlet/SuccessServletTest.java
itests/org.openhab.binding.mielecloud.tests/src/main/java/org/openhab/binding/mielecloud/internal/handler/MieleBridgeHandlerTest.java

index 59b1426ad5a515918c69402c2bf15d49de70777d..a6b25f4c564fcd69abb615e68a4475d0f399dea2 100644 (file)
@@ -23,7 +23,7 @@ import org.openhab.core.thing.ThingTypeUID;
  * @author Björn Lange - Added locale config parameter, added i18n key collection
  * @author Benjamin Bolte - Add pre-heat finished and plate step channels, door state and door alarm channels, info
  *         state channel and map signal flags from API
- * @author Björn Lange - Add elapsed time channel, dish warmer thing
+ * @author Björn Lange - Add elapsed time channel, dish warmer thing, removed e-mail validation
  */
 @NonNullByDefault
 public final class MieleCloudBindingConstants {
@@ -227,7 +227,6 @@ public final class MieleCloudBindingConstants {
         public static final String BRIDGE_STATUS_DESCRIPTION_ACCESS_TOKEN_NOT_CONFIGURED = "@text/mielecloud.bridge.status.access.token.not.configured";
         public static final String BRIDGE_STATUS_DESCRIPTION_ACCOUNT_NOT_AUTHORIZED = "@text/mielecloud.bridge.status.account.not.authorized";
         public static final String BRIDGE_STATUS_DESCRIPTION_ACCESS_TOKEN_REFRESH_FAILED = "@text/mielecloud.bridge.status.access.token.refresh.failed";
-        public static final String BRIDGE_STATUS_DESCRIPTION_INVALID_EMAIL = "@text/mielecloud.bridge.status.invalid.email";
         public static final String BRIDGE_STATUS_DESCRIPTION_TRANSIENT_HTTP_ERROR = "@text/mielecloud.bridge.status.transient.http.error";
 
         public static final String THING_STATUS_DESCRIPTION_WEBSERVICE_MISSING = "@text/mielecloud.thing.status.webservice.missing";
index 3b667ce183da1f40c8ae6f47042f866950fe1cdb..856939b48c01c03a7231f9f55054092235504655 100644 (file)
@@ -23,7 +23,6 @@ import org.openhab.binding.mielecloud.internal.MieleCloudBindingConstants;
 import org.openhab.binding.mielecloud.internal.config.exception.BridgeCreationFailedException;
 import org.openhab.binding.mielecloud.internal.config.exception.BridgeReconfigurationFailedException;
 import org.openhab.binding.mielecloud.internal.handler.MieleBridgeHandler;
-import org.openhab.binding.mielecloud.internal.util.EmailValidator;
 import org.openhab.binding.mielecloud.internal.util.LocaleValidator;
 import org.openhab.core.config.discovery.DiscoveryResult;
 import org.openhab.core.config.discovery.DiscoveryResultBuilder;
@@ -96,11 +95,6 @@ public final class CreateBridgeServlet extends AbstractRedirectionServlet {
             return "/mielecloud/failure?" + FailureServlet.MALFORMED_BRIDGE_UID_PARAMETER_NAME + "=true";
         }
 
-        if (!EmailValidator.isValid(email)) {
-            logger.warn("Cannot create bridge: E-mail address '{}' is malformed.", email);
-            return "/mielecloud/failure?" + FailureServlet.MALFORMED_EMAIL_PARAMETER_NAME + "=true";
-        }
-
         String locale = getValidLocale(request.getParameter(LOCALE_PARAMETER_NAME));
 
         logger.debug("Auto configuring Miele account using locale '{}' (requested locale was '{}')", locale,
@@ -131,7 +125,7 @@ public final class CreateBridgeServlet extends AbstractRedirectionServlet {
         if (inbox.add(result)) {
             return pairBridge(bridgeUid);
         } else {
-            return reconfigureBridge(bridgeUid, locale, email);
+            return reconfigureBridge(bridgeUid);
         }
     }
 
@@ -145,7 +139,7 @@ public final class CreateBridgeServlet extends AbstractRedirectionServlet {
         return thing;
     }
 
-    private Thing reconfigureBridge(ThingUID thingUid, String locale, String email) {
+    private Thing reconfigureBridge(ThingUID thingUid) {
         logger.debug("Thing already exists. Modifying configuration.");
         Thing thing = thingRegistry.get(thingUid);
         if (thing == null) {
index a24802b3b298f5de4c301a555b1c8a0148506949..689b997defae5ecf6d23ffa8c0081db7f43a9833 100644 (file)
@@ -35,7 +35,6 @@ public class FailureServlet extends AbstractShowPageServlet {
     public static final String MISSING_BRIDGE_UID_PARAMETER_NAME = "missingBridgeUid";
     public static final String MISSING_EMAIL_PARAMETER_NAME = "missingEmail";
     public static final String MALFORMED_BRIDGE_UID_PARAMETER_NAME = "malformedBridgeUid";
-    public static final String MALFORMED_EMAIL_PARAMETER_NAME = "malformedEmail";
     public static final String MISSING_REQUEST_URL_PARAMETER_NAME = "missingRequestUrl";
 
     public static final String OAUTH2_ERROR_ACCESS_DENIED = "access_denied";
@@ -80,8 +79,6 @@ public class FailureServlet extends AbstractShowPageServlet {
             return "Missing e-mail address.";
         } else if (ServletUtil.isParameterEnabled(request, MALFORMED_BRIDGE_UID_PARAMETER_NAME)) {
             return "Malformed bridge UID.";
-        } else if (ServletUtil.isParameterEnabled(request, MALFORMED_EMAIL_PARAMETER_NAME)) {
-            return "Malformed e-mail address.";
         } else if (ServletUtil.isParameterEnabled(request, MISSING_REQUEST_URL_PARAMETER_NAME)) {
             return "Missing request URL. Please try the config flow again.";
         } else {
index aa419fb41e963cd241286897801d0cd105dce078..211208e5596c32b3fc189f79692b565572fd408d 100644 (file)
@@ -24,7 +24,6 @@ import org.openhab.binding.mielecloud.internal.auth.OAuthException;
 import org.openhab.binding.mielecloud.internal.config.OAuthAuthorizationHandler;
 import org.openhab.binding.mielecloud.internal.config.exception.NoOngoingAuthorizationException;
 import org.openhab.binding.mielecloud.internal.config.exception.OngoingAuthorizationException;
-import org.openhab.binding.mielecloud.internal.util.EmailValidator;
 import org.openhab.core.thing.ThingUID;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -98,11 +97,6 @@ public final class ForwardToLoginServlet extends AbstractRedirectionServlet {
             return getErrorRedirectionUrl(PairAccountServlet.MALFORMED_BRIDGE_ID_PARAMETER_NAME);
         }
 
-        if (!EmailValidator.isValid(email)) {
-            logger.warn("Passed e-mail address '{}' is invalid.", email);
-            return getErrorRedirectionUrl(PairAccountServlet.MALFORMED_EMAIL_PARAMETER_NAME);
-        }
-
         try {
             authorizationHandler.beginAuthorization(clientId, clientSecret, bridgeUid, email);
         } catch (OngoingAuthorizationException e) {
index 79d872a7caf4ace8401daa576c0f85d4b613346e..74326921aea18d4f3bfc14781ea3e9dae16c0401 100644 (file)
@@ -37,7 +37,6 @@ public final class PairAccountServlet extends AbstractShowPageServlet {
     public static final String MISSING_BRIDGE_ID_PARAMETER_NAME = "missingBridgeId";
     public static final String MISSING_EMAIL_PARAMETER_NAME = "missingEmail";
     public static final String MALFORMED_BRIDGE_ID_PARAMETER_NAME = "malformedBridgeId";
-    public static final String MALFORMED_EMAIL_PARAMETER_NAME = "malformedEmail";
     public static final String FAILED_TO_DERIVE_REDIRECT_URL_PARAMETER_NAME = "failedToDeriveRedirectUrl";
     public static final String ONGOING_AUTHORIZATION_IN_STEP1_EXPIRES_IN_MINUTES_PARAMETER_NAME = "ongoingAuthorizationInStep1ExpiresInMinutes";
     public static final String ONGOING_AUTHORIZATION_UNKNOWN_EXPIRY_TIME = "unknown";
@@ -93,9 +92,6 @@ public final class PairAccountServlet extends AbstractShowPageServlet {
         } else if (ServletUtil.isParameterEnabled(request, MALFORMED_BRIDGE_ID_PARAMETER_NAME)) {
             return skeleton.replace(ERROR_MESSAGE_PLACEHOLDER,
                     "<div class=\"alert alert-danger\" role=\"alert\">Malformed bridge ID. A bridge ID may only contain letters, numbers, '-' and '_'!</div>");
-        } else if (ServletUtil.isParameterEnabled(request, MALFORMED_EMAIL_PARAMETER_NAME)) {
-            return skeleton.replace(ERROR_MESSAGE_PLACEHOLDER,
-                    "<div class=\"alert alert-danger\" role=\"alert\">Malformed e-mail address.</div>");
         } else if (ServletUtil.isParameterEnabled(request, FAILED_TO_DERIVE_REDIRECT_URL_PARAMETER_NAME)) {
             return skeleton.replace(ERROR_MESSAGE_PLACEHOLDER,
                     "<div class=\"alert alert-danger\" role=\"alert\">Failed to derive redirect URL.</div>");
index d240f215ee738181442b38e099a2a4e4a8936f19..a25c72fd39822fae7b1cd9e929fc35b00c1a664a 100644 (file)
@@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.openhab.binding.mielecloud.internal.config.ThingsTemplateGenerator;
-import org.openhab.binding.mielecloud.internal.util.EmailValidator;
 import org.openhab.binding.mielecloud.internal.webservice.language.LanguageProvider;
 import org.openhab.core.thing.ThingUID;
 import org.slf4j.Logger;
@@ -97,12 +96,6 @@ public class SuccessServlet extends AbstractShowPageServlet {
                     "Malformed bridge UID.");
         }
 
-        if (!EmailValidator.isValid(email)) {
-            logger.warn("Success page received malformed e-mail address '{}'.", email);
-            return getResourceLoader().loadResourceAsString("failure.html").replace(ERROR_MESSAGE_TEXT_PLACEHOLDER,
-                    "Malformed e-mail address.");
-        }
-
         String skeleton = getResourceLoader().loadResourceAsString("success.html");
         skeleton = renderErrorMessage(request, skeleton);
         skeleton = renderBridgeUid(skeleton, bridgeUid);
index 03d93ee28c3b84dde6feb4a9622cdd3ba63cb5cb..409e7239f91bd3a5c2960a04dc0d18ea8b0c5c3a 100644 (file)
@@ -30,7 +30,6 @@ import org.openhab.binding.mielecloud.internal.auth.OAuthException;
 import org.openhab.binding.mielecloud.internal.auth.OAuthTokenRefreshListener;
 import org.openhab.binding.mielecloud.internal.auth.OAuthTokenRefresher;
 import org.openhab.binding.mielecloud.internal.discovery.ThingDiscoveryService;
-import org.openhab.binding.mielecloud.internal.util.EmailValidator;
 import org.openhab.binding.mielecloud.internal.util.LocaleValidator;
 import org.openhab.binding.mielecloud.internal.webservice.ConnectionError;
 import org.openhab.binding.mielecloud.internal.webservice.ConnectionStatusListener;
@@ -58,7 +57,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author Roland Edelhoff - Initial contribution
  * @author Björn Lange - Introduced CombiningLanguageProvider field and interactions, added LanguageProvider super
- *         interface, switched from polling to SSE, added support for multiple bridges
+ *         interface, switched from polling to SSE, added support for multiple bridges, removed e-mail validation
  */
 @NonNullByDefault
 public class MieleBridgeHandler extends BaseBridgeHandler
@@ -122,14 +121,6 @@ public class MieleBridgeHandler extends BaseBridgeHandler
     }
 
     public void initializeWebservice() {
-        if (!EmailValidator.isValid(getConfig().get(MieleCloudBindingConstants.CONFIG_PARAM_EMAIL).toString())) {
-            updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
-                    I18NKeys.BRIDGE_STATUS_DESCRIPTION_INVALID_EMAIL);
-            // When the e-mail configuration is changed a new initialization will be triggered. Therefore, we can leave
-            // the bridge in this state.
-            return;
-        }
-
         try {
             webService = webserviceFactory.get();
         } catch (MieleWebserviceInitializationException e) {
diff --git a/bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/util/EmailValidator.java b/bundles/org.openhab.binding.mielecloud/src/main/java/org/openhab/binding/mielecloud/internal/util/EmailValidator.java
deleted file mode 100644 (file)
index 5cd7143..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Copyright (c) 2010-2021 Contributors to the openHAB project
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.openhab.binding.mielecloud.internal.util;
-
-import java.util.regex.Pattern;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
-
-/**
- * Utility for validating e-mail addresses.
- *
- * @author Björn Lange - Initial Contribution
- */
-@NonNullByDefault
-public final class EmailValidator {
-    private static final Pattern EMAIL_PATTERN = Pattern
-            .compile("^[a-zA-Z_0-9\\.+%-]{3,}\\@([a-zA-Z_0-9-]+\\.)+[a-z]+$");
-
-    private EmailValidator() {
-        throw new UnsupportedOperationException();
-    }
-
-    public static boolean isValid(String emailAddress) {
-        return EMAIL_PATTERN.matcher(emailAddress).matches();
-    }
-}
index 1413681b87e2b7bd282cc41352e3e9f12a13c2d6..bb407e3b18e4b1ae1378a574e7137ab6d84da936 100644 (file)
@@ -245,7 +245,6 @@ channel-type.mielecloud.battery_level.description=The battery level of the robot
 mielecloud.bridge.status.access.token.not.configured=The OAuth2 access token is not configured.
 mielecloud.bridge.status.account.not.authorized=The account has not been authorized. Please consult the documentation on how to do that.
 mielecloud.bridge.status.access.token.refresh.failed=Failed to refresh the OAuth2 access token. Please authorize the account again.
-mielecloud.bridge.status.invalid.email=The configured e-mail address has an invalid format.
 mielecloud.bridge.status.transient.http.error=An unexpected HTTP error occurred. Check the logs if this error persists.
 mielecloud.thing.status.webservice.missing=The Miele webservice cannot be accessed over the bridge. Check the bridge configuration.
 mielecloud.thing.status.removed=This Miele device has been removed from the Miele@home account.
index 4565122e4ab856fa32c18ec6bf9eaadc5dfcda37..317efa7f1f94e4b5e743766accaa02edf6b9a4b9 100644 (file)
@@ -53,7 +53,7 @@
                         </div>
                         <div class="form-group">
                             <label for="email">E-mail address:</label>
-                            <input type="text" class="form-control" id="email" name="email" placeholder="Enter the e-mail address associated with your Miele Cloud Account" required pattern="[a-zA-Z_0-9.+%-]{3,}@([a-zA-Z_0-9-]+[.])+[a-z]+)" />
+                            <input type="text" class="form-control" id="email" name="email" placeholder="Enter the e-mail address associated with your Miele Cloud Account" required />
                         </div>
                         <button type="submit" class="btn btn-danger btn-lg">Pair Account</button>
                     </form>
diff --git a/bundles/org.openhab.binding.mielecloud/src/test/java/org/openhab/binding/mielecloud/internal/util/EmailValidatorTest.java b/bundles/org.openhab.binding.mielecloud/src/test/java/org/openhab/binding/mielecloud/internal/util/EmailValidatorTest.java
deleted file mode 100644 (file)
index 51c037c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Copyright (c) 2010-2021 Contributors to the openHAB project
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.openhab.binding.mielecloud.internal.util;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
-
-/**
- * @author Björn Lange - Initial Contribution
- */
-@NonNullByDefault
-public class EmailValidatorTest {
-    @ParameterizedTest
-    @ValueSource(strings = { "example@openhab.org", "itsme@test24.com", "my-account@t-online.de", "Some@dDRESs.edu",
-            "min@Length.com" })
-    void validEmailAddress(String emailAddress) {
-        // when:
-        var valid = EmailValidator.isValid(emailAddress);
-
-        // then:
-        assertTrue(valid);
-    }
-
-    @ParameterizedTest
-    @ValueSource(strings = { "examp!e@###.org", "to@o.short.com" })
-    void invalidEmailAddress(String emailAddress) {
-        // when:
-        var valid = EmailValidator.isValid(emailAddress);
-
-        // then:
-        assertFalse(valid);
-    }
-}
index 5010aed71df861623dda09e8d4193e0720d58ea8..044c828a61f33d73f61433bc050f8b7477303fb9 100644 (file)
@@ -225,18 +225,4 @@ public class CreateBridgeServletTest extends AbstractConfigFlowTest {
         assertTrue(website.contains("Pairing failed!"));
         assertTrue(website.contains("Missing e-mail address."));
     }
-
-    @Test
-    public void whenAMalformedEmailIsPassedToBridgeCreationThenTheBrowserIsRedirectedToTheFailurePageAndAnErrorIsShown()
-            throws Exception {
-        // when:
-        Website website = getCrawler()
-                .doGetRelative("/mielecloud/createBridgeThing?" + CreateBridgeServlet.BRIDGE_UID_PARAMETER_NAME + "="
-                        + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
-                        + CreateBridgeServlet.EMAIL_PARAMETER_NAME + "=openhab.openhab.org");
-
-        // then:
-        assertTrue(website.contains("Pairing failed!"));
-        assertTrue(website.contains("Malformed e-mail address."));
-    }
 }
index d0c281870a5aac5d7fe5a3a8653fd3531f56ef43..51f1ffcb4ae88b00901686ca1d67dc3874616974 100644 (file)
@@ -267,23 +267,4 @@ public class ForwardToLoginServletTest extends AbstractConfigFlowTest {
                 "Go to <a href=\"https://www.miele.com/f/com/en/register_api.aspx\">the Miele developer portal</a> to obtain your"));
         assertTrue(maybePairAccountSite.contains("Missing e-mail address."));
     }
-
-    @Test
-    public void whenAMalformedEmailIsPassedThenTheBrowserIsRedirectedToThePairSiteAndAWarningIsDisplayed()
-            throws Exception {
-        // when:
-        Website maybePairAccountSite = getCrawler()
-                .doGetRelative("/mielecloud/forwardToLogin?" + ForwardToLoginServlet.CLIENT_ID_PARAMETER_NAME + "="
-                        + MieleCloudBindingIntegrationTestConstants.CLIENT_ID + "&"
-                        + ForwardToLoginServlet.CLIENT_SECRET_PARAMETER_NAME + "="
-                        + MieleCloudBindingIntegrationTestConstants.CLIENT_SECRET + "&"
-                        + ForwardToLoginServlet.BRIDGE_ID_PARAMETER_NAME + "="
-                        + MieleCloudBindingIntegrationTestConstants.BRIDGE_ID + "&"
-                        + ForwardToLoginServlet.EMAIL_PARAMETER_NAME + "=not_an_Email");
-
-        // then:
-        assertTrue(maybePairAccountSite.contains(
-                "Go to <a href=\"https://www.miele.com/f/com/en/register_api.aspx\">the Miele developer portal</a> to obtain your"));
-        assertTrue(maybePairAccountSite.contains("Malformed e-mail address"));
-    }
 }
index 288aff71a90d611688e1f2b1f89fac563ef50df3..f7395baebf88a35bc6002d0a49d89b8dcb17688a 100644 (file)
@@ -131,16 +131,4 @@ public class SuccessServletTest extends AbstractConfigFlowTest {
         assertTrue(website.contains("Pairing failed!"));
         assertTrue(website.contains("Missing e-mail address."));
     }
-
-    @Test
-    public void whenTheSuccessPageIsRequestedAndAMalformedEmailIsPassedThenTheFailurePageIsShown() throws Exception {
-        // when:
-        Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
-                + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
-                + SuccessServlet.EMAIL_PARAMETER_NAME + "=not:an!email");
-
-        // then:
-        assertTrue(website.contains("Pairing failed!"));
-        assertTrue(website.contains("Malformed e-mail address."));
-    }
 }
index 2a8760767cf658b2337f8e217b924b621ec774da..66fa0f04e51a8bac87d7c94369186d801e2e221e 100644 (file)
@@ -195,21 +195,6 @@ public class MieleBridgeHandlerTest extends OpenHabOsgiTest {
                 MieleCloudBindingConstants.I18NKeys.BRIDGE_STATUS_DESCRIPTION_ACCESS_TOKEN_NOT_CONFIGURED);
     }
 
-    @Test
-    public void testThingStatusIsSetToOfflineWithDetailConfigurationErrorAndDescriptionWhenTheEmailAddressIsInvalid()
-            throws Exception {
-        // given:
-        getBridge().getConfiguration().setProperties(
-                Collections.singletonMap(MieleCloudBindingConstants.CONFIG_PARAM_EMAIL, "not!a!mail$address"));
-
-        // when:
-        getHandler().initialize();
-
-        // then:
-        assertThingStatusIs(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
-                MieleCloudBindingConstants.I18NKeys.BRIDGE_STATUS_DESCRIPTION_INVALID_EMAIL);
-    }
-
     @Test
     public void testThingStatusIsSetToOfflineWithDetailConfigurationErrorAndDescriptionWhenTheMieleAccountHasNotBeenAuthorized()
             throws Exception {