2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.mielecloud.internal.config.servlet;
15 import static org.junit.jupiter.api.Assertions.assertTrue;
16 import static org.mockito.Mockito.*;
17 import static org.openhab.binding.mielecloud.internal.util.ReflectionUtil.setPrivate;
19 import java.util.Optional;
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.junit.jupiter.api.Test;
23 import org.openhab.binding.mielecloud.internal.util.AbstractConfigFlowTest;
24 import org.openhab.binding.mielecloud.internal.util.MieleCloudBindingIntegrationTestConstants;
25 import org.openhab.binding.mielecloud.internal.util.Website;
26 import org.openhab.binding.mielecloud.internal.webservice.language.LanguageProvider;
29 * @author Björn Lange - Initial Contribution
32 public class SuccessServletTest extends AbstractConfigFlowTest {
34 public void whenTheSuccessPageIsShownThenAThingsFileTemplateIsPresent() throws Exception {
36 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
37 + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
38 + SuccessServlet.EMAIL_PARAMETER_NAME + "=" + MieleCloudBindingIntegrationTestConstants.EMAIL);
41 assertTrue(website.contains("Bridge mielecloud:account:genesis [ email=\"openhab@openhab.org\""));
45 public void whenTheSuccessPageIsShownThenTheLocaleIsSelectedAutomatically() throws Exception {
47 LanguageProvider languageProvider = mock(LanguageProvider.class);
48 when(languageProvider.getLanguage()).thenReturn(Optional.of("de"));
49 setPrivate(getSuccessServlet(), "languageProvider", languageProvider);
52 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
53 + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
54 + SuccessServlet.EMAIL_PARAMETER_NAME + "=" + MieleCloudBindingIntegrationTestConstants.EMAIL);
57 assertTrue(website.contains("<option value=\"de\" selected=\"selected\">Deutsch - de</option>"));
58 assertTrue(website.contains("locale=\"de\""));
62 public void whenTheSuccessPageIsShownAndNoLocaleIsProvidedThenEnglishIsSelectedAutomatically() throws Exception {
64 LanguageProvider languageProvider = mock(LanguageProvider.class);
65 when(languageProvider.getLanguage()).thenReturn(Optional.of("en"));
66 setPrivate(getSuccessServlet(), "languageProvider", languageProvider);
69 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
70 + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
71 + SuccessServlet.EMAIL_PARAMETER_NAME + "=" + MieleCloudBindingIntegrationTestConstants.EMAIL);
74 assertTrue(website.contains("<option value=\"en\" selected=\"selected\">English - en</option>"));
75 assertTrue(website.contains("locale=\"en\""));
79 public void whenTheSuccessPageIsRequestedAndNoBridgeUidIsPassedThenTheFailurePageIsShown() throws Exception {
81 Website website = getCrawler().doGetRelative("/mielecloud/success");
84 assertTrue(website.contains("Pairing failed!"));
85 assertTrue(website.contains("Missing bridge UID."));
89 public void whenTheSuccessPageIsRequestedAndAnEmptyBridgeUidIsPassedThenTheFailurePageIsShown() throws Exception {
91 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
92 + "=&" + SuccessServlet.EMAIL_PARAMETER_NAME + "=" + MieleCloudBindingIntegrationTestConstants.EMAIL);
95 assertTrue(website.contains("Pairing failed!"));
96 assertTrue(website.contains("Missing bridge UID."));
100 public void whenTheSuccessPageIsRequestedAndAMalformedBridgeUidIsPassedThenTheFailurePageIsShown()
103 Website website = getCrawler()
104 .doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME + "=!genesis&"
105 + SuccessServlet.EMAIL_PARAMETER_NAME + "=" + MieleCloudBindingIntegrationTestConstants.EMAIL);
108 assertTrue(website.contains("Pairing failed!"));
109 assertTrue(website.contains("Malformed bridge UID."));
113 public void whenTheSuccessPageIsRequestedAndNoEmailIsPassedThenTheFailurePageIsShown() throws Exception {
115 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
116 + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString());
119 assertTrue(website.contains("Pairing failed!"));
120 assertTrue(website.contains("Missing e-mail address."));
124 public void whenTheSuccessPageIsRequestedAndAnEmptyEmailIsPassedThenTheFailurePageIsShown() throws Exception {
126 Website website = getCrawler().doGetRelative("/mielecloud/success?" + SuccessServlet.BRIDGE_UID_PARAMETER_NAME
127 + "=" + MieleCloudBindingIntegrationTestConstants.BRIDGE_THING_UID.getAsString() + "&"
128 + SuccessServlet.EMAIL_PARAMETER_NAME + "=");
131 assertTrue(website.contains("Pairing failed!"));
132 assertTrue(website.contains("Missing e-mail address."));