Ticket #16899: v1-0001-HelpBrowserTest-fix-for-non-headless-mode.patch

File v1-0001-HelpBrowserTest-fix-for-non-headless-mode.patch, 3.8 KB (added by ris, 7 years ago)
  • src/org/openstreetmap/josm/gui/help/HelpBrowser.java

    From 58ffc119fe9b4f4434c1c375812b7f505004982e Mon Sep 17 00:00:00 2001
    From: Robert Scott <code@humanleg.org.uk>
    Date: Fri, 26 Oct 2018 23:31:14 +0100
    Subject: [PATCH v1] HelpBrowserTest: fix for non-headless mode
    
    ---
     .../openstreetmap/josm/gui/help/HelpBrowser.java    | 14 ++++++--------
     .../josm/gui/help/HelpBrowserTest.java              | 21 +++++++++++++++++++++
     2 files changed, 27 insertions(+), 8 deletions(-)
    
    diff --git a/src/org/openstreetmap/josm/gui/help/HelpBrowser.java b/src/org/openstreetmap/josm/gui/help/HelpBrowser.java
    index 1332c2354..db24f2423 100644
    a b public class HelpBrowser extends JFrame implements IHelpBrowser {  
    465465                        url,
    466466                        HelpUtil.getWikiBaseUrl()
    467467                );
    468                 if (!GraphicsEnvironment.isHeadless()) {
    469                     JOptionPane.showMessageDialog(
    470                             MainApplication.getMainFrame(),
    471                             message,
    472                             tr("Warning"),
    473                             JOptionPane.WARNING_MESSAGE
    474                     );
    475                 }
     468                JOptionPane.showMessageDialog(
     469                        MainApplication.getMainFrame(),
     470                        message,
     471                        tr("Warning"),
     472                        JOptionPane.WARNING_MESSAGE
     473                );
    476474                return;
    477475            }
    478476            url = url.replaceAll("#[^#]*$", "");
  • test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java

    diff --git a/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java b/test/unit/org/openstreetmap/josm/gui/help/HelpBrowserTest.java
    index f5a7d965e..f4271d519 100644
    a b package org.openstreetmap.josm.gui.help;  
    44import static org.junit.Assert.assertEquals;
    55import static org.junit.Assert.assertNull;
    66
     7import javax.swing.JOptionPane;
     8
    79import org.junit.Rule;
    810import org.junit.Test;
     11import org.openstreetmap.josm.TestUtils;
    912import org.openstreetmap.josm.testutils.JOSMTestRules;
     13import org.openstreetmap.josm.testutils.mockers.JOptionPaneSimpleMocker;
    1014import org.openstreetmap.josm.tools.LanguageInfo.LocaleType;
    1115
     16import com.google.common.collect.ImmutableMap;
     17
    1218import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    1319
    1420/**
    public class HelpBrowserTest {  
    8894     */
    8995    @Test
    9096    public void testEditAction() {
     97        TestUtils.assumeWorkingJMockit();
    9198        IHelpBrowser browser = newHelpBrowser();
    9299        assertNull(browser.getUrl());
    93100        new HelpBrowser.EditAction(browser).actionPerformed(null);
    public class HelpBrowserTest {  
    96103        assertEquals(URL_2, browser.getUrl());
    97104        new HelpBrowser.EditAction(browser).actionPerformed(null);
    98105
     106        final JOptionPaneSimpleMocker jopsMocker = new JOptionPaneSimpleMocker(
     107            ImmutableMap.<String, Object>of(
     108                "<html>The current URL <tt>https://josm.openstreetmap.de/javadoc</tt><br>is an external "
     109                + "URL. Editing is only possible for help topics<br>on the help server "
     110                + "<tt>https://josm.openstreetmap.de</tt>.</html>",
     111                JOptionPane.OK_OPTION
     112            )
     113        );
     114
    99115        browser.openUrl(URL_3);
    100116        assertEquals(URL_3, browser.getUrl());
    101117        new HelpBrowser.EditAction(browser).actionPerformed(null);
     118
     119        assertEquals(1, jopsMocker.getInvocationLog().size());
     120        Object[] invocationLogEntry = jopsMocker.getInvocationLog().get(0);
     121        assertEquals(JOptionPane.OK_OPTION, (int) invocationLogEntry[0]);
     122        assertEquals("Warning", invocationLogEntry[2]);
    102123    }
    103124
    104125    /**