@Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); userAgentProvider = new AdsUtilitiesUserAgentProvider(adsUtilityRegistry, adsLibConfiguration); }
/** * Tests that if no utilities are registered, the provider will return null. */ @Test public void testGenerateUserAgent_noUtilitiesRegistered_includeUtilitiesTrue() { when(adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent()).thenReturn(true); String actualUserAgent = userAgentProvider.getUserAgent(); assertNull("User agent should be null if no utilities are registered", actualUserAgent); assertTrue("User agent provider should clear utilities", adsUtilityRegistry.popRegisteredUtilities().isEmpty()); }
/** * Tests that a single registered utility will result in the correct user agent if include * utilities is true. */ @Test public void testGenerateUserAgent_utilityRegistered_includeUtilitiesTrue() { when(adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent()).thenReturn(true); adsUtilityRegistry.addUtility(AdsUtility.PRODUCT_PARTITION_TREE); String actualUserAgent = userAgentProvider.getUserAgent(); assertEquals("User agent should include registered utilities if include utilities is true", AdsUtility.PRODUCT_PARTITION_TREE.getUserAgentIdentifier(), actualUserAgent); }
/** * Tests that if include utilities is false, the provider will return null (even if utilities * are registered). */ @Test public void testGenerateUserAgent_utilitiesRegistered_includeUtilitiesFalse() { when(adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent()).thenReturn(false); adsUtilityRegistry.addUtility(AdsUtility.PRODUCT_PARTITION_TREE); String actualUserAgent = userAgentProvider.getUserAgent(); assertNull("User agent should be null if include utilities is false", actualUserAgent); assertTrue("User agent provider should clear utilities", adsUtilityRegistry.popRegisteredUtilities().isEmpty()); } }
/** * Tests that the user agent provider will always return multiple user agent identifiers * in alphabetical order, regardless of the order of registration. */ @Test public void testGenerateUserAgent_multipleUtilitiesRegistered_includeUtilitiesTrue() { when(adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent()).thenReturn(true); List<AdsUtility> adsUtilities = Arrays.asList( AdsUtility.PRODUCT_PARTITION_TREE, AdsUtility.SELECTOR_BUILDER, AdsUtility.REPORT_DOWNLOADER); for (int i = 0; i < adsUtilities.size(); i++) { Collections.shuffle(adsUtilities); for (AdsUtility adsUtility : adsUtilities) { adsUtilityRegistry.addUtility(adsUtility); } String expectedUserAgent = "ProductPartitionTree, ReportDownloader, SelectorBuilder"; String actualUserAgent = userAgentProvider.getUserAgent(); assertEquals( "User agent should include registered utilities in alphabetical order if include " + "utilities is true", expectedUserAgent, actualUserAgent); assertTrue("User agent provider should clear utilities", adsUtilityRegistry.popRegisteredUtilities().isEmpty()); } }