Changeset 8938 in josm for trunk/test/unit


Ignore:
Timestamp:
2015-10-24T14:58:06+02:00 (7 years ago)
Author:
Don-vip
Message:

add new unit test to check that all available plugins can be loaded

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java

    r8937 r8938  
    22package org.openstreetmap.josm.plugins;
    33
     4import static org.junit.Assert.assertEquals;
    45import static org.junit.Assert.assertFalse;
     6import static org.junit.Assert.assertTrue;
    57
     8import java.util.Iterator;
    69import java.util.List;
     10import java.util.Set;
    711
    812import org.junit.BeforeClass;
     
    1014import org.openstreetmap.josm.JOSMFixture;
    1115import org.openstreetmap.josm.Main;
     16import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
    1217
    1318/**
    14  * Unit tests of {@link ReadRemotePluginInformationTask} class.
     19 * Unit tests of {@link PluginHandler} class.
    1520 */
    16 public class ReadRemotePluginInformationTaskTest {
     21public class PluginHandlerTest {
    1722
    1823    /**
     
    2126    @BeforeClass
    2227    public static void setUp() {
    23         JOSMFixture.createUnitTestFixture().init();
     28        JOSMFixture.createUnitTestFixture().init(true);
    2429    }
    2530
    2631    /**
    27      * Test of plugin list download.
     32     * Test that available plugins rules can be loaded.
    2833     */
    2934    @Test
    30     public void testDownloadPluginList() {
     35    public void testValidityOfAvailablePlugins() {
     36        // Download complete list of plugins
    3137        ReadRemotePluginInformationTask pluginInfoDownloadTask = new ReadRemotePluginInformationTask(
    3238                Main.pref.getOnlinePluginSites());
    3339        pluginInfoDownloadTask.run();
    34         List<PluginInformation> list = pluginInfoDownloadTask.getAvailablePlugins();
    35         assertFalse(list.isEmpty());
    36         PluginInformation info = list.get(0);
     40        List<PluginInformation> plugins = pluginInfoDownloadTask.getAvailablePlugins();
     41        System.out.println("Original plugin list contains " + plugins.size() + " plugins");
     42        assertFalse(plugins.isEmpty());
     43        PluginInformation info = plugins.get(0);
    3744        assertFalse(info.getName().isEmpty());
    3845        assertFalse(info.getClass().getName().isEmpty());
     46
     47        // Filter deprecated and unmaintained ones
     48        Set<String> deprecatedPlugins = PluginHandler.getDeprecatedAndUnmaintainedPlugins();
     49        for (Iterator<PluginInformation> it = plugins.iterator(); it.hasNext();) {
     50            PluginInformation pi = it.next();
     51            if (deprecatedPlugins.contains(pi.name)) {
     52                it.remove();
     53            }
     54        }
     55        System.out.println("Filtered plugin list contains " + plugins.size() + " plugins");
     56
     57        // Update the locally installed plugins
     58        PluginDownloadTask pluginDownloadTask = new PluginDownloadTask(NullProgressMonitor.INSTANCE, plugins, null);
     59        pluginDownloadTask.run();
     60        assertTrue(pluginDownloadTask.getFailedPlugins().toString(), pluginDownloadTask.getFailedPlugins().isEmpty());
     61        assertEquals(plugins.size(), pluginDownloadTask.getDownloadedPlugins().size());
     62
     63        // Update Plugin info for downloaded plugins
     64        PluginHandler.refreshLocalUpdatedPluginInfo(pluginDownloadTask.getDownloadedPlugins());
     65
     66        // Load early plugins
     67        PluginHandler.loadEarlyPlugins(null, plugins, null);
     68
     69        // Load late plugins
     70        PluginHandler.loadLatePlugins(null, plugins, null);
     71
     72        assertTrue(PluginHandler.pluginLoadingExceptions.toString(), PluginHandler.pluginLoadingExceptions.isEmpty());
    3973    }
    4074}
Note: See TracChangeset for help on using the changeset viewer.