Ticket #16656: v1-0003-appveyor-RemoteControlTest-mock-out-PlatformHookW.patch

File v1-0003-appveyor-RemoteControlTest-mock-out-PlatformHookW.patch, 2.4 KB (added by ris, 7 years ago)
  • test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java

    From 144aea47911cc017595dc27995a96c901cb154a1 Mon Sep 17 00:00:00 2001
    From: Robert Scott <code@humanleg.org.uk>
    Date: Sat, 18 Aug 2018 17:08:08 +0100
    Subject: [PATCH v1 3/5] appveyor: RemoteControlTest: mock out
     PlatformHookWindows.setupHttpsCertificate()
    
    appveyor test run hangs if root keystore access is attempted
    ---
     .../josm/io/remotecontrol/RemoteControlTest.java    | 21 +++++++++++++++++++++
     1 file changed, 21 insertions(+)
    
    diff --git a/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java b/test/unit/org/openstreetmap/josm/io/remotecontrol/RemoteControlTest.java
    index ad73e835a..9a580dfce 100644
    a b import java.nio.charset.StandardCharsets;  
    1313import java.nio.file.Files;
    1414import java.nio.file.Paths;
    1515import java.security.GeneralSecurityException;
     16import java.security.KeyStore;
    1617import java.security.SecureRandom;
    1718import java.security.cert.X509Certificate;
    1819
    import org.junit.After;  
    2627import org.junit.Before;
    2728import org.junit.Test;
    2829import org.openstreetmap.josm.JOSMFixture;
     30import org.openstreetmap.josm.TestUtils;
    2931import org.openstreetmap.josm.spi.preferences.Config;
    3032import org.openstreetmap.josm.tools.Logging;
     33import org.openstreetmap.josm.tools.PlatformHookWindows;
     34import org.openstreetmap.josm.tools.PlatformManager;
     35
     36import mockit.Mock;
     37import mockit.MockUp;
    3138
    3239import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    3340
    public class RemoteControlTest {  
    4956        RemoteControl.PROP_REMOTECONTROL_HTTPS_ENABLED.put(true);
    5057        deleteKeystore();
    5158
     59        if (PlatformManager.isPlatformWindows() && "True".equals(System.getenv("APPVEYOR"))) {
     60            // appveyor doesn't like us tinkering with the root keystore, so mock this out
     61            TestUtils.assumeWorkingJMockit();
     62            new MockUp<PlatformHookWindows>() {
     63                @Mock
     64                public boolean setupHttpsCertificate(
     65                    String entryAlias,
     66                    KeyStore.TrustedCertificateEntry trustedCert
     67                ) {
     68                    return true;
     69                }
     70            };
     71        }
     72
    5273        RemoteControl.start();
    5374        disableCertificateValidation();
    5475        httpBase = "http://127.0.0.1:"+Config.getPref().getInt("remote.control.port", 8111);