@NotNull public static String getVersion() { if (!ApplicationManager.getApplication().isInternal()) { final IdeaPluginDescriptor plugin = PluginManager.getPlugin(getPluginId()); return plugin != null ? plugin.getVersion() : "SNAPSHOT"; } else { return "INTERNAL"; } }
@VisibleForTesting static Map<String, String> buildKeyValuesMap( @NotNull ErrorBean error, @NotNull ApplicationNamesInfo intelliJAppNameInfo, @NotNull ApplicationInfoEx intelliJAppExtendedInfo, @NotNull Application application) { Map<String, String> params = ImmutableMap.<String, String>builder() // required parameters .put(ERROR_MESSAGE_KEY, nullToNone(error.getMessage())) .put(ERROR_STACKTRACE_KEY, nullToNone(error.getStackTrace())) // end or required parameters .put(ERROR_DESCRIPTION_KEY, nullToNone(error.getDescription())) .put(LAST_ACTION_KEY, nullToNone(error.getLastAction())) .put(OS_NAME_KEY, SystemProperties.getOsName()) .put(JAVA_VERSION_KEY, SystemProperties.getJavaVersion()) .put(JAVA_VM_VENDOR_KEY, SystemProperties.getJavaVmVendor()) .put(APP_NAME_KEY, intelliJAppNameInfo.getFullProductName()) .put(APP_CODE_KEY, intelliJAppExtendedInfo.getPackageCode()) .put(APP_NAME_VERSION_KEY, intelliJAppExtendedInfo.getVersionName()) .put(APP_EAP_KEY, Boolean.toString(intelliJAppExtendedInfo.isEAP())) .put(APP_INTERNAL_KEY, Boolean.toString(application.isInternal())) .put(APP_VERSION_MAJOR_KEY, intelliJAppExtendedInfo.getMajorVersion()) .put(APP_VERSION_MINOR_KEY, intelliJAppExtendedInfo.getMinorVersion()) .put( PLUGIN_VERSION, ServiceManager.getService(PluginInfoService.class).getPluginVersion()) .build(); return params; }
@Test public void testBuildKeyValuesMap_falseFlags() throws Exception { when(mockAppInfoEx.isEAP()).thenReturn(false); when(mockApplication.isInternal()).thenReturn(false); Map<String, String> result = GoogleFeedbackErrorReporter.buildKeyValuesMap( error, mockAppNameInfo, mockAppInfoEx, mockApplication); assertEquals(Boolean.FALSE.toString(), result.get(GoogleFeedbackErrorReporter.APP_EAP_KEY)); assertEquals( Boolean.FALSE.toString(), result.get(GoogleFeedbackErrorReporter.APP_INTERNAL_KEY)); }
@Test public void testBuildKeyValuesMap_trueFlags() throws Exception { when(mockAppInfoEx.isEAP()).thenReturn(true); when(mockApplication.isInternal()).thenReturn(true); Map<String, String> result = GoogleFeedbackErrorReporter.buildKeyValuesMap( error, mockAppNameInfo, mockAppInfoEx, mockApplication); assertEquals(TEST_MESSAGE, result.get(GoogleFeedbackErrorReporter.ERROR_MESSAGE_KEY)); assertEquals(LAST_ACTION, result.get(GoogleFeedbackErrorReporter.LAST_ACTION_KEY)); assertEquals(FULL_PRODUCT_NAME, result.get(GoogleFeedbackErrorReporter.APP_NAME_KEY)); assertEquals(PACKAGE_CODE, result.get(GoogleFeedbackErrorReporter.APP_CODE_KEY)); assertEquals(Boolean.TRUE.toString(), result.get(GoogleFeedbackErrorReporter.APP_EAP_KEY)); assertEquals(Boolean.TRUE.toString(), result.get(GoogleFeedbackErrorReporter.APP_INTERNAL_KEY)); assertEquals(MAJOR_VERSION, result.get(GoogleFeedbackErrorReporter.APP_VERSION_MAJOR_KEY)); assertEquals(MINOR_VERSION, result.get(GoogleFeedbackErrorReporter.APP_VERSION_MINOR_KEY)); assertEquals(PLUGIN_VERSION, result.get(GoogleFeedbackErrorReporter.PLUGIN_VERSION)); }