/******************************************************************************* * Copyright (c) 2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.usage.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertNotNull; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.core.runtime.IBundleGroupProvider; import org.jboss.tools.usage.googleanalytics.eclipse.AbstractEclipseEnvironment; import org.jboss.tools.usage.internal.reporting.JBossToolsComponents; import org.jboss.tools.usage.test.fakes.BundleGroupProviderFake; import org.jboss.tools.usage.test.fakes.EclipsePreferencesFake; import org.jboss.tools.usage.test.fakes.ReportingEclipseEnvironmentFake; import org.junit.Test; /** * @author Andre Dietisheim */ public class EclipseEnvironmentTest { @Test public void keywordReportsJbossComponents() { AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake() { @Override protected IBundleGroupProvider[] getBundleGroupProviders() { return new IBundleGroupProvider[] { new BundleGroupProviderFake( "org.jboss.tools.gwt.feature", "org.jboss.tools.seam.feature", "org.jboss.tools.smooks.feature") }; } }; String keyword = eclipseEnvironment.getKeyword(); Matcher matcher = Pattern.compile("(([A-Z]+)-){2}(([A-Z]+)){1}").matcher(keyword); assertTrue(matcher.matches()); assertEquals(JBossToolsComponents.JBossToolsFeatureIdentifiers.GWT.name().length() + JBossToolsComponents.JBossToolsFeatureIdentifiers.SEAM.name().length() + JBossToolsComponents.JBossToolsFeatureIdentifiers.SMOOKS.name().length() + 2, matcher.group().length()); assertTrue(keyword.indexOf(JBossToolsComponents.JBossToolsFeatureIdentifiers.GWT.name()) >= 0); assertTrue(keyword.indexOf(JBossToolsComponents.JBossToolsFeatureIdentifiers.SEAM.name()) >= 0); assertTrue(keyword.indexOf(JBossToolsComponents.JBossToolsFeatureIdentifiers.SMOOKS.name()) >= 0); } @Test public void keywordIsEmptyIfNoJBossFeaturesFound() { AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake() { @Override protected IBundleGroupProvider[] getBundleGroupProviders() { return new IBundleGroupProvider[] { new BundleGroupProviderFake( "org.jboss.tools.gwt", "org.eclipse.emf.cdo") }; } }; String keyword = eclipseEnvironment.getKeyword(); assertTrue(keyword != null && keyword.length() == 0); } @Test public void testVisitsOnFirstVisit() { EclipsePreferencesFake preferences = new EclipsePreferencesFake(); AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences); String firstVisit = eclipseEnvironment.getFirstVisit(); assertEquals(1, eclipseEnvironment.getVisitCount()); assertEquals(firstVisit, eclipseEnvironment.getLastVisit()); assertEquals(firstVisit, eclipseEnvironment.getLastVisit()); assertEquals(firstVisit, eclipseEnvironment.getCurrentVisit()); } @Test public void testVisitsOnSecondVisit() throws InterruptedException { EclipsePreferencesFake preferences = new EclipsePreferencesFake(); AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences); String firstVisit = eclipseEnvironment.getFirstVisit(); Thread.sleep(10); eclipseEnvironment.visit(); assertEquals(2, eclipseEnvironment.getVisitCount()); assertEquals(firstVisit, eclipseEnvironment.getFirstVisit()); assertEquals(firstVisit, eclipseEnvironment.getLastVisit()); assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit())); } @Test public void testVisitsOnThirdVisit() throws InterruptedException { EclipsePreferencesFake preferences = new EclipsePreferencesFake(); AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences); String firstVisit = eclipseEnvironment.getFirstVisit(); Thread.sleep(10); eclipseEnvironment.visit(); String currentVisit = eclipseEnvironment.getCurrentVisit(); Thread.sleep(10); eclipseEnvironment.visit(); assertEquals(3, eclipseEnvironment.getVisitCount()); assertEquals(currentVisit, eclipseEnvironment.getLastVisit()); assertTrue(!firstVisit.equals(eclipseEnvironment.getCurrentVisit())); } @Test public void testJVMName() { EclipsePreferencesFake preferences = new EclipsePreferencesFake(); AbstractEclipseEnvironment eclipseEnvironment = new ReportingEclipseEnvironmentFake(preferences); String bitVersion = eclipseEnvironment.getJavaBitVersion(); assertTrue(bitVersion.equals("32")||bitVersion.equals("64")||bitVersion.equals("unknown")); String name = eclipseEnvironment.getJavaVmName(); assertNotNull(name); String vendor = eclipseEnvironment.getJavaVendor(); assertNotNull(vendor); String version = eclipseEnvironment.getFlashVersion(); assertNotNull(version); } }