Ignore:
Timestamp:
2023-03-16T22:09:01+01:00 (14 months ago)
Author:
taylor.smock
Message:

Fix #22381: Try to automatically install newly required plugins on plugin update

This additionally updates the plugin tests to JUnit 5 (see #16567). Some tests
required fixing (for example, MinimapDialogTest fails if the system of
measurement is metric).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/gui/preferences/plugin/PluginPreferenceHighLevelTest.java

    r18690 r18694  
    1919import javax.swing.JOptionPane;
    2020
     21import com.github.tomakehurst.wiremock.client.WireMock;
     22import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
     23import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
     24import mockit.MockUp;
    2125import org.awaitility.Awaitility;
    22 import org.junit.After;
    23 import org.junit.Before;
    24 import org.junit.Rule;
    25 import org.junit.Test;
     26import org.junit.jupiter.api.AfterEach;
     27import org.junit.jupiter.api.BeforeEach;
     28import org.junit.jupiter.api.Test;
     29import org.junit.jupiter.api.extension.RegisterExtension;
    2630import org.openstreetmap.josm.TestUtils;
    2731import org.openstreetmap.josm.data.Preferences;
     
    3236import org.openstreetmap.josm.plugins.PluginProxy;
    3337import org.openstreetmap.josm.spi.preferences.Config;
    34 import org.openstreetmap.josm.testutils.JOSMTestRules;
    3538import org.openstreetmap.josm.testutils.PluginServer;
     39import org.openstreetmap.josm.testutils.annotations.AssertionsInEDT;
     40import org.openstreetmap.josm.testutils.annotations.AssumeRevision;
     41import org.openstreetmap.josm.testutils.annotations.FullPreferences;
     42import org.openstreetmap.josm.testutils.annotations.Main;
    3643import org.openstreetmap.josm.testutils.mockers.HelpAwareOptionPaneMocker;
    3744import org.openstreetmap.josm.testutils.mockers.JOptionPaneSimpleMocker;
    38 
    39 import com.github.tomakehurst.wiremock.client.WireMock;
    40 import com.github.tomakehurst.wiremock.junit.WireMockRule;
    41 
    42 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    43 import mockit.MockUp;
    4445
    4546/**
    4647 * Higher level tests of {@link PluginPreference} class.
    4748 */
    48 public class PluginPreferenceHighLevelTest {
    49     /**
    50      * Setup test.
    51      */
    52     @Rule
    53     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
    54     public JOSMTestRules test = new JOSMTestRules().assumeRevision(
    55         "Revision: 10000\n"
    56     ).preferences().main().assertionsInEDT();
    57 
     49@AssumeRevision("Revision: 10000\n")
     50@AssertionsInEDT
     51@FullPreferences
     52@Main
     53class PluginPreferenceHighLevelTest {
    5854    /**
    5955     * Plugin server mock.
    6056     */
    61     @Rule
    62     public WireMockRule pluginServerRule = new WireMockRule(
    63         options().dynamicPort().usingFilesUnderDirectory(TestUtils.getTestDataRoot())
    64     );
     57    @RegisterExtension
     58    static WireMockExtension pluginServerRule = WireMockExtension.newInstance()
     59            .options(options().dynamicPort().usingFilesUnderDirectory(TestUtils.getTestDataRoot()))
     60            .build();
    6561
    6662    /**
     
    6864     * @throws ReflectiveOperationException never
    6965     */
    70     @Before
     66    @BeforeEach
    7167    public void setUp() throws ReflectiveOperationException {
    7268
     
    8884        Config.getPref().put("pluginmanager.lastupdate", "999");
    8985        Config.getPref().putList("pluginmanager.sites",
    90             Collections.singletonList(this.pluginServerRule.url("/plugins"))
     86            Collections.singletonList(pluginServerRule.url("/plugins"))
    9187        );
    9288
     
    107103     * @throws ReflectiveOperationException never
    108104     */
    109     @After
     105    @AfterEach
    110106    public void tearDown() throws ReflectiveOperationException {
    111107        // restore actual PluginHandler#pluginList
     
    136132     */
    137133    @Test
    138     public void testInstallWithoutUpdate() throws Exception {
     134    void testInstallWithoutUpdate(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    139135        final PluginServer pluginServer = new PluginServer(
    140136            new PluginServer.RemotePlugin(this.referenceDummyJarNew),
     
    142138            new PluginServer.RemotePlugin(null, Collections.singletonMap("Plugin-Version", "2"), "irrelevant_plugin")
    143139        );
    144         pluginServer.applyToWireMockServer(this.pluginServerRule);
     140        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    145141        Config.getPref().putList("plugins", Collections.singletonList("dummy_plugin"));
    146142
     
    169165        Awaitility.await().atMost(2000, MILLISECONDS).until(() -> Config.getPref().getInt("pluginmanager.version", 999) != 999);
    170166
    171         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    172         WireMock.resetAllRequests();
     167        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     168        pluginServerRule.resetRequests();
    173169
    174170        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    183179        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    184180
    185         assertEquals(
    186             Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"),
    187             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    188         );
    189         assertEquals(
    190             Collections.singletonList("dummy_plugin"),
    191             model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    192         );
    193         assertEquals(
    194             Arrays.asList("(null)", "31701", "(null)"),
    195             model.getAvailablePlugins().stream().map(
    196                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    197             ).collect(Collectors.toList())
    198         );
    199         assertEquals(
    200             Arrays.asList("6", "31772", "2"),
    201             model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList())
    202         );
     181        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"),
     182                model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     183        assertEquals(Collections.singletonList("dummy_plugin"),
     184                model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     185        assertEquals(Arrays.asList("(null)", "31701", "(null)"), model.getAvailablePlugins().stream().map(
     186            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     187        ).collect(Collectors.toList()));
     188        assertEquals(Arrays.asList("6", "31772", "2"),
     189                model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList()));
    203190
    204191        // now we're going to choose to install baz_plugin
    205192        model.setPluginSelected("baz_plugin", true);
    206193
    207         assertEquals(
    208             Collections.singletonList("baz_plugin"),
    209             model.getNewlyActivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    210         );
    211         assertTrue(model.getNewlyDeactivatedPlugins().isEmpty());
    212         assertEquals(
    213             Collections.singletonList("baz_plugin"),
    214             model.getPluginsScheduledForUpdateOrDownload().stream().map(PluginInformation::getName).collect(Collectors.toList())
    215         );
     194        assertEquals(Collections.singletonList("baz_plugin"),
     195                model.getNewlyActivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     196        assertTrue(model.getNewlyDeactivatedPlugins().isEmpty());
     197        assertEquals(Collections.singletonList("baz_plugin"),
     198                model.getPluginsScheduledForUpdateOrDownload().stream().map(PluginInformation::getName).collect(Collectors.toList()));
    216199
    217200        tabbedPane.savePreferences();
     
    233216        assertFalse(targetBazJarNew.exists());
    234217
    235         // the advertized version of dummy_plugin shouldn't have been fetched
    236         this.pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
     218        // the advertised version of dummy_plugin shouldn't have been fetched
     219        pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
    237220        // but the advertized version of baz_plugin *should* have
    238         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v6.jar")));
     221        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v6.jar")));
    239222
    240223        // pluginmanager.version has been set to the current version
     
    246229
    247230        // baz_plugin should have been added to the plugins list
    248         assertEquals(
    249             Arrays.asList("baz_plugin", "dummy_plugin"),
    250             Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList())
    251         );
     231        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"),
     232                Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList()));
    252233    }
    253234
     
    257238     */
    258239    @Test
    259     public void testDisablePluginWithUpdatesAvailable() throws Exception {
     240    void testDisablePluginWithUpdatesAvailable(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    260241        final PluginServer pluginServer = new PluginServer(
    261242            new PluginServer.RemotePlugin(this.referenceDummyJarNew),
     
    263244            new PluginServer.RemotePlugin(null, null, "irrelevant_plugin")
    264245        );
    265         pluginServer.applyToWireMockServer(this.pluginServerRule);
     246        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    266247        Config.getPref().putList("plugins", Arrays.asList("baz_plugin", "dummy_plugin"));
    267248
     
    289270        Awaitility.await().atMost(2000, MILLISECONDS).until(() -> Config.getPref().getInt("pluginmanager.version", 999) != 999);
    290271
    291         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    292         WireMock.resetAllRequests();
     272        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     273        pluginServerRule.resetRequests();
    293274
    294275        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    303284        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    304285
    305         assertEquals(
    306             Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"),
    307             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    308         );
    309         assertEquals(
    310             Arrays.asList("baz_plugin", "dummy_plugin"),
    311             model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    312         );
    313         assertEquals(
    314             Arrays.asList("6", "31701", "(null)"),
    315             model.getAvailablePlugins().stream().map(
    316                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    317             ).collect(Collectors.toList())
    318         );
    319         assertEquals(
    320             Arrays.asList("7", "31772", "(null)"),
    321             model.getAvailablePlugins().stream().map(
    322                 (pi) -> pi.version == null ? "(null)" : pi.version
    323             ).collect(Collectors.toList())
    324         );
     286        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"),
     287                model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     288        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"),
     289                model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     290        assertEquals(Arrays.asList("6", "31701", "(null)"), model.getAvailablePlugins().stream().map(
     291            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     292        ).collect(Collectors.toList()));
     293        assertEquals(Arrays.asList("7", "31772", "(null)"), model.getAvailablePlugins().stream().map(
     294            (pi) -> pi.version == null ? "(null)" : pi.version
     295        ).collect(Collectors.toList()));
    325296
    326297        // now we're going to choose to disable baz_plugin
     
    328299
    329300        assertTrue(model.getNewlyActivatedPlugins().isEmpty());
    330         assertEquals(
    331             Collections.singletonList("baz_plugin"),
    332             model.getNewlyDeactivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    333         );
     301        assertEquals(Collections.singletonList("baz_plugin"),
     302                model.getNewlyDeactivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
    334303        // questionably correct
    335304        assertTrue(model.getPluginsScheduledForUpdateOrDownload().isEmpty());
     
    354323
    355324        // neither of the new jars have been fetched
    356         this.pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
    357         this.pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v6.jar")));
     325        pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
     326        pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v6.jar")));
    358327
    359328        // pluginmanager.version has been set to the current version
     
    365334
    366335        // baz_plugin should have been removed from the installed plugins list
    367         assertEquals(
    368             Collections.singletonList("dummy_plugin"),
    369             Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList())
    370         );
     336        assertEquals(Collections.singletonList("dummy_plugin"),
     337                Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList()));
    371338    }
    372339
     
    379346     */
    380347    @Test
    381     public void testUpdateOnlySelectedPlugin() throws Exception {
     348    void testUpdateOnlySelectedPlugin(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    382349        TestUtils.assumeWorkingJMockit();
    383350        final PluginServer pluginServer = new PluginServer(
     
    385352            new PluginServer.RemotePlugin(this.referenceBazJarNew)
    386353        );
    387         pluginServer.applyToWireMockServer(this.pluginServerRule);
     354        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    388355        Config.getPref().putList("plugins", Arrays.asList("baz_plugin", "dummy_plugin"));
    389356
     
    406373        TestUtils.syncEDTAndWorkerThreads();
    407374
    408         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    409         WireMock.resetAllRequests();
     375        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     376        pluginServerRule.resetRequests();
    410377
    411378        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    420387        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    421388
    422         assertEquals(
    423             Arrays.asList("baz_plugin", "dummy_plugin"),
    424             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    425         );
    426         assertEquals(
    427             Arrays.asList("baz_plugin", "dummy_plugin"),
    428             model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    429         );
    430         assertEquals(
    431             Arrays.asList("6", "31701"),
    432             model.getAvailablePlugins().stream().map(
    433                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    434             ).collect(Collectors.toList())
    435         );
    436         assertEquals(
    437             Arrays.asList("7", "31772"),
    438             model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList())
    439         );
     389        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"),
     390                model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     391        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"),
     392                model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList()));
     393        assertEquals(Arrays.asList("6", "31701"), model.getAvailablePlugins().stream().map(
     394            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     395        ).collect(Collectors.toList()));
     396        assertEquals(Arrays.asList("7", "31772"), model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList()));
    440397
    441398        // now we're going to choose not to update baz_plugin
     
    443400
    444401        assertTrue(model.getNewlyActivatedPlugins().isEmpty());
    445         assertEquals(
    446             Collections.singletonList("baz_plugin"),
    447             model.getNewlyDeactivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    448         );
     402        assertEquals(Collections.singletonList("baz_plugin"), model.getNewlyDeactivatedPlugins().stream()
     403                .map(PluginInformation::getName).collect(Collectors.toList()));
    449404        // questionably correct
    450405        assertTrue(model.getPluginsScheduledForUpdateOrDownload().isEmpty());
     
    481436        // the plugin list was rechecked
    482437        // questionably necessary
    483         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     438        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    484439        // dummy_plugin has been fetched
    485         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
     440        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
    486441        // baz_plugin has not
    487         this.pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v7.jar")));
    488         WireMock.resetAllRequests();
     442        pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v7.jar")));
     443        pluginServerRule.resetRequests();
    489444
    490445        // pluginmanager.version has been set to the current version
     
    496451
    497452        // plugins list shouldn't have been altered, we haven't hit save yet
    498         assertEquals(
    499                 Arrays.asList("baz_plugin", "dummy_plugin"),
    500             Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList())
    501         );
     453        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"),
     454                Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList()));
    502455
    503456        // the model's selection state should be largely as before
    504457        assertTrue(model.getNewlyActivatedPlugins().isEmpty());
    505         assertEquals(
    506             Collections.singletonList("baz_plugin"),
    507             model.getNewlyDeactivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    508         );
     458        assertEquals(Collections.singletonList("baz_plugin"), model.getNewlyDeactivatedPlugins().stream()
     459                .map(PluginInformation::getName).collect(Collectors.toList()));
    509460        assertTrue(model.getPluginsScheduledForUpdateOrDownload().isEmpty());
    510461
     
    516467        assertTrue(model.getNewlyActivatedPlugins().isEmpty());
    517468        assertTrue(model.getNewlyDeactivatedPlugins().isEmpty());
    518         assertEquals(
    519             Collections.singletonList("baz_plugin"),
    520             model.getPluginsScheduledForUpdateOrDownload().stream().map(PluginInformation::getName).collect(Collectors.toList())
    521         );
     469        assertEquals(Collections.singletonList("baz_plugin"), model.getPluginsScheduledForUpdateOrDownload().stream()
     470                .map(PluginInformation::getName).collect(Collectors.toList()));
    522471
    523472        // prepare jopsMocker to handle this message
     
    552501
    553502        // dummy_plugin was not fetched
    554         this.pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
     503        pluginServerRule.verify(0, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
    555504        // baz_plugin however was fetched
    556505        // questionably correct
    557         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v7.jar")));
     506        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/baz_plugin.v7.jar")));
    558507
    559508        assertEquals(10000, Config.getPref().getInt("pluginmanager.version", 111));
     
    567516     */
    568517    @Test
    569     public void testUpdateWithNoAvailableUpdates() throws Exception {
     518    void testUpdateWithNoAvailableUpdates(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    570519        TestUtils.assumeWorkingJMockit();
    571520        final PluginServer pluginServer = new PluginServer(
     
    574523            new PluginServer.RemotePlugin(null, Collections.singletonMap("Plugin-Version", "123"), "irrelevant_plugin")
    575524        );
    576         pluginServer.applyToWireMockServer(this.pluginServerRule);
     525        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    577526        Config.getPref().putList("plugins", Arrays.asList("baz_plugin", "dummy_plugin"));
    578527
     
    600549        TestUtils.syncEDTAndWorkerThreads();
    601550
    602         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    603         WireMock.resetAllRequests();
     551        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     552        pluginServerRule.resetRequests();
    604553
    605554        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    613562        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    614563
    615         assertEquals(
    616             Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"),
    617             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    618         );
    619         assertEquals(
    620             Arrays.asList("baz_plugin", "dummy_plugin"),
    621             model.getSelectedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    622         );
    623         assertEquals(
    624             Arrays.asList("6", "31701", "(null)"),
    625             model.getAvailablePlugins().stream().map(
    626                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    627             ).collect(Collectors.toList())
    628         );
    629         assertEquals(
    630             Arrays.asList("6", "31701", "123"),
    631             model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList())
    632         );
     564        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin", "irrelevant_plugin"), model.getAvailablePlugins().stream()
     565                .map(PluginInformation::getName).collect(Collectors.toList()));
     566        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"), model.getSelectedPlugins().stream()
     567                .map(PluginInformation::getName).collect(Collectors.toList()));
     568        assertEquals(Arrays.asList("6", "31701", "(null)"), model.getAvailablePlugins().stream().map(
     569            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     570        ).collect(Collectors.toList()));
     571        assertEquals(Arrays.asList("6", "31701", "123"), model.getAvailablePlugins()
     572                .stream().map((pi) -> pi.version).collect(Collectors.toList()));
    633573
    634574        GuiHelper.runInEDTAndWait(
     
    654594        // the plugin list was rechecked
    655595        // questionably necessary
    656         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     596        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    657597        // that should have been the only request to our PluginServer
    658         assertEquals(1, this.pluginServerRule.getAllServeEvents().size());
    659         WireMock.resetAllRequests();
     598        assertEquals(1, pluginServerRule.getAllServeEvents().size());
     599        pluginServerRule.resetRequests();
    660600
    661601        // pluginmanager.version has been set to the current version
     
    666606
    667607        // plugins list shouldn't have been altered
    668         assertEquals(
    669             Arrays.asList("baz_plugin", "dummy_plugin"),
    670             Config.getPref().getList("plugins", null).stream().sorted().collect(Collectors.toList())
    671         );
     608        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"), Config.getPref().getList("plugins", null)
     609                .stream().sorted().collect(Collectors.toList()));
    672610
    673611        // the model's selection state should be largely as before
     
    692630
    693631        // none of PluginServer's URLs should have been touched
    694         assertEquals(0, this.pluginServerRule.getAllServeEvents().size());
     632        assertEquals(0, pluginServerRule.getAllServeEvents().size());
    695633
    696634        // pluginmanager.version has been set to the current version
     
    706644     */
    707645    @Test
    708     public void testInstallWithoutRestartRequired() throws Exception {
     646    void testInstallWithoutRestartRequired(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    709647        TestUtils.assumeWorkingJMockit();
    710648        final boolean[] loadPluginsCalled = new boolean[] {false};
     
    727665            new PluginServer.RemotePlugin(this.referenceBazJarNew)
    728666        );
    729         pluginServer.applyToWireMockServer(this.pluginServerRule);
     667        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    730668        Config.getPref().putList("plugins", Collections.emptyList());
    731669
     
    749687        TestUtils.syncEDTAndWorkerThreads();
    750688
    751         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    752         WireMock.resetAllRequests();
     689        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     690        pluginServerRule.resetRequests();
    753691
    754692        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    762700        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    763701
    764         assertEquals(
    765             Arrays.asList("baz_plugin", "dummy_plugin"),
    766             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    767         );
     702        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"), model.getAvailablePlugins().stream()
     703                .map(PluginInformation::getName).collect(Collectors.toList()));
    768704        assertTrue(model.getSelectedPlugins().isEmpty());
    769         assertEquals(
    770             Arrays.asList("(null)", "(null)"),
    771             model.getAvailablePlugins().stream().map(
    772                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    773             ).collect(Collectors.toList())
    774         );
    775         assertEquals(
    776             Arrays.asList("7", "31772"),
    777             model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList())
    778         );
     705        assertEquals(Arrays.asList("(null)", "(null)"), model.getAvailablePlugins().stream().map(
     706            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     707        ).collect(Collectors.toList()));
     708        assertEquals(Arrays.asList("7", "31772"), model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList()));
    779709
    780710        // now we select dummy_plugin
     
    782712
    783713        // model should now reflect this
    784         assertEquals(
    785             Collections.singletonList("dummy_plugin"),
    786             model.getNewlyActivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    787         );
     714        assertEquals(Collections.singletonList("dummy_plugin"), model.getNewlyActivatedPlugins().stream()
     715                .map(PluginInformation::getName).collect(Collectors.toList()));
    788716        assertTrue(model.getNewlyDeactivatedPlugins().isEmpty());
    789717
     
    804732
    805733        // dummy_plugin was fetched
    806         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
     734        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugin/dummy_plugin.v31772.jar")));
    807735
    808736        // the dummy_plugin jar has been installed
     
    826754     * @throws Exception on failure
    827755     */
    828     @JOSMTestRules.OverrideAssumeRevision("Revision: 7000\n")
     756    @AssumeRevision("Revision: 7000\n")
    829757    @Test
    830     public void testInstallMultiVersion() throws Exception {
     758    void testInstallMultiVersion(WireMockRuntimeInfo wireMockRuntimeInfo) throws Exception {
    831759        TestUtils.assumeWorkingJMockit();
    832760
     
    835763            new PluginServer.RemotePlugin(this.referenceDummyJarNew),
    836764            new PluginServer.RemotePlugin(this.referenceBazJarNew, Collections.singletonMap(
    837                 "6800_Plugin-Url", "6;" + this.pluginServerRule.url(bazOldServePath)
     765                "6800_Plugin-Url", "6;" + pluginServerRule.url(bazOldServePath)
    838766            ))
    839767        );
    840         pluginServer.applyToWireMockServer(this.pluginServerRule);
     768        pluginServer.applyToWireMockServer(wireMockRuntimeInfo);
    841769        // need to actually serve this older jar from somewhere
    842         this.pluginServerRule.stubFor(
     770        pluginServerRule.stubFor(
    843771            WireMock.get(WireMock.urlEqualTo(bazOldServePath)).willReturn(
    844772                WireMock.aResponse().withStatus(200).withHeader("Content-Type", "application/java-archive").withBodyFile(
     
    870798        TestUtils.syncEDTAndWorkerThreads();
    871799
    872         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
    873         WireMock.resetAllRequests();
     800        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo("/plugins")));
     801        pluginServerRule.resetRequests();
    874802
    875803        final PluginPreferencesModel model = (PluginPreferencesModel) TestUtils.getPrivateField(
     
    883811        assertEquals(model.getDisplayedPlugins(), model.getAvailablePlugins());
    884812
    885         assertEquals(
    886             Arrays.asList("baz_plugin", "dummy_plugin"),
    887             model.getAvailablePlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    888         );
     813        assertEquals(Arrays.asList("baz_plugin", "dummy_plugin"), model.getAvailablePlugins().stream()
     814                .map(PluginInformation::getName).collect(Collectors.toList()));
    889815        assertTrue(model.getSelectedPlugins().isEmpty());
    890         assertEquals(
    891             Arrays.asList("(null)", "(null)"),
    892             model.getAvailablePlugins().stream().map(
    893                 (pi) -> pi.localversion == null ? "(null)" : pi.localversion
    894             ).collect(Collectors.toList())
    895         );
    896         assertEquals(
    897             Arrays.asList("6", "31772"),
    898             model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList())
    899         );
     816        assertEquals(Arrays.asList("(null)", "(null)"), model.getAvailablePlugins().stream().map(
     817            (pi) -> pi.localversion == null ? "(null)" : pi.localversion
     818        ).collect(Collectors.toList()));
     819        assertEquals(Arrays.asList("6", "31772"), model.getAvailablePlugins().stream().map((pi) -> pi.version).collect(Collectors.toList()));
    900820
    901821        // now we select dummy_plugin
     
    903823
    904824        // model should now reflect this
    905         assertEquals(
    906             Collections.singletonList("baz_plugin"),
    907             model.getNewlyActivatedPlugins().stream().map(PluginInformation::getName).collect(Collectors.toList())
    908         );
     825        assertEquals(Collections.singletonList("baz_plugin"), model.getNewlyActivatedPlugins().stream()
     826                .map(PluginInformation::getName).collect(Collectors.toList()));
    909827        assertTrue(model.getNewlyDeactivatedPlugins().isEmpty());
    910828
     
    925843
    926844        // dummy_plugin was fetched
    927         this.pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo(bazOldServePath)));
     845        pluginServerRule.verify(1, WireMock.getRequestedFor(WireMock.urlEqualTo(bazOldServePath)));
    928846
    929847        // the "old" baz_plugin jar has been installed
Note: See TracChangeset for help on using the changeset viewer.