Since this article says 'Plugins can be installed simply by dropping them into the /SeBuilder/plugins directory', I use my in-house selenium builder plugin by manually adding it to the SeBuilder plugin directory.
But when plugin user uninstall this plugin from 'Management plugins' page and then install it again by manually adding it to the SeBuilder plugin directory, 'Management plugins' page is not correctly shown because of javascript error.
This problem is caused as below:
NOT_INSTALLED state is inserted to plugins.sqlite when unininstalling the plugin
After then, when user manually adds the plugin files again, isPluginTooNew method is called here and null reference error is thrown here since info.repositoryInfo is null.
I considered the following 3 different ideas and adopted the 1st one.
Uninstallation from 'Management plugins' page is enabled only for the plugin installed from the central repository. Plugins installed by manually adding them into the plugin directory must be uninstalled by manually removing them from the plugin direcotry. This approach works well.
Deleteing plugins.sqlite record when uninstalling a plugin which does not have the repositoryInfo. To implement this, builder.plugins.performInstall method must have access to info.repositoryInfo, but this is a little difficult..
Call builder.plugins.isUpdateable before each builder.plugins.isPluginTooNew and builder.plugins.isPluginTooOld call. Even after adding this check, the plugin re-installation process still does not work well..
Since this article says 'Plugins can be installed simply by dropping them into the/SeBuilder/plugins directory', I use my in-house selenium builder plugin by manually adding it to the SeBuilder plugin directory.
But when plugin user uninstall this plugin from 'Management plugins' page and then install it again by manually adding it to the SeBuilder plugin directory, 'Management plugins' page is not correctly shown because of javascript error.
This problem is caused as below:
I considered the following 3 different ideas and adopted the 1st one.