@Override public String getUserAgent() { Set<AdsUtility> adsUtilities = adsUtilityRegistry.popRegisteredUtilities(); if (!adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent() || adsUtilities.isEmpty()) { return null; } // Adheres to User-Agent product identifiers from RFC 7231. // https://tools.ietf.org/html/rfc7231#section-5.5.3 // Sorts the collection of utilities so output is deterministic. return Joiner.on(", ").skipNulls().join( Sets.newTreeSet(Collections2.transform(adsUtilities, ADS_UTILITY_FUNCTION))); } }
@Override public String getUserAgent() { Set<AdsUtility> adsUtilities = adsUtilityRegistry.popRegisteredUtilities(); if (!adsLibConfiguration.isIncludeAdsUtilitiesInUserAgent() || adsUtilities.isEmpty()) { return null; } // Adheres to User-Agent product identifiers from RFC 7231. // https://tools.ietf.org/html/rfc7231#section-5.5.3 // Sorts the collection of utilities so output is deterministic. return Joiner.on(", ").skipNulls().join( Sets.newTreeSet(Collections2.transform(adsUtilities, ADS_UTILITY_FUNCTION))); } }
@Test public void testRemoveTwiceOk() { AdsUtilityRegistry registry = AdsUtilityRegistry.getInstance(); registry.addUtility(AdsUtility.BATCH_JOB_HELPER); registry.popRegisteredUtilities(); registry.popRegisteredUtilities(); } }
/** Checks the utilities registry status. */ public void checkUtilitiesState() { Set<AdsUtility> expectedUtilities = new HashSet<>(); expectedUtilities.add(AdsUtility.REPORT_QUERY_BUILDER); assertEquals( expectedUtilities, AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities()); }
/** Checks the utilities registry status. */ public void checkUtilitiesState() { Set<AdsUtility> expectedUtilities = new HashSet<>(); expectedUtilities.add(AdsUtility.REPORT_QUERY_BUILDER); assertEquals( expectedUtilities, AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities()); }
/** Checks the utilities registry status. */ public void checkUtilitiesState() { Set<AdsUtility> expectedUtilities = new HashSet<>(); expectedUtilities.add(AdsUtility.REPORT_QUERY_BUILDER); assertEquals( expectedUtilities, AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities()); }
@After public void tearDown() throws Exception { AdsUtilityRegistry.getInstance().popRegisteredUtilities(); }
/** * 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()); }
@Before public void setUp() { AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities(); }
@Before public void setUp() { AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities(); }
@Before public void setUp() { AdWordsInternals.getInstance().getAdsUtilityRegistry().popRegisteredUtilities(); }
/** * 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()); } }
@Test public void testAddDuplicate() { AdsUtilityRegistry registry = AdsUtilityRegistry.getInstance(); Set<AdsUtility> expectedUtilities = EnumSet.<AdsUtility>of(AdsUtility.BATCH_JOB_HELPER); registry.addUtility(AdsUtility.BATCH_JOB_HELPER); registry.addUtility(AdsUtility.BATCH_JOB_HELPER); assertEquals(expectedUtilities, registry.popRegisteredUtilities()); }