@Override public void udcRegisterClient( String clientName ) { usageData.get( UsageDataKeys.clientNames ).add( clientName ); }
@Override public Iterator<Type> iterator() { return recentItems().iterator(); } }
removeItemWithLowestCount(); halveCounts(); recentItems.putIfAbsent( item, new AtomicLong( 1 ) );
removeItemWithLowestCount(); halveCounts(); recentItems.putIfAbsent( item, new AtomicLong( 1 ) );
@Override public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain ) throws IOException, ServletException { try { final HttpServletRequest request = (HttpServletRequest) servletRequest; String ua = request.getHeader( "User-Agent" ); if ( ua != null && !ua.isEmpty() ) { output.add( ua.split( " " )[0] ); } } catch ( RuntimeException e ) { // We're fine with that } filterChain.doFilter( servletRequest, servletResponse ); }
@Override protected boolean matchesSafely( RecentK<Integer> recentK ) { assertThat( recentK.recentItems(), containsInAnyOrder( expectedItems ) ); assertThat( recentK.recentItems().size(), equalTo( expectedItems.length ) ); return true; }
@Test void shouldIncludeRecentClientNames() { // Given usageData.get( UsageDataKeys.clientNames ).add( "SteveBrookClient/1.0" ); usageData.get( UsageDataKeys.clientNames ).add( "MayorClient/1.0" ); // When & Then String userAgents = collector.getUdcParams().get( UdcConstants.USER_AGENTS ); if ( !(userAgents.equals( "SteveBrookClient/1.0,MayorClient/1.0" ) || userAgents.equals( "MayorClient/1.0,SteveBrookClient/1.0" )) ) { fail( "Expected \"SteveBrookClient/1.0,MayorClient/1.0\" or \"MayorClient/1.0,SteveBrookClient/1.0\", " + "got \"" + userAgents + "\"" ); } }
@Test public void shouldOnlyRecordTheFirstFieldOfTheUserAgentString() throws IOException, ServletException { filter.doFilter( request( "the-agent other-info" ), null, filterChain ); assertThat( agents.recentItems(), hasItem( "the-agent" ) ); }
@Override public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain ) throws IOException, ServletException { try { final HttpServletRequest request = (HttpServletRequest) servletRequest; String ua = request.getHeader( "User-Agent" ); if ( ua != null && !ua.isEmpty() ) { output.add( ua.split( " " )[0] ); } } catch ( RuntimeException e ) { // We're fine with that } filterChain.doFilter( servletRequest, servletResponse ); }
@Test public void shouldRecordASingleUserAgent() throws IOException, ServletException { filter.doFilter( request( "the-agent" ), null, filterChain ); assertThat( agents.recentItems(), hasItem( "the-agent" ) ); }
@Override public void udcRegisterClient( String clientName ) { usageData.get( UsageDataKeys.clientNames ).add( clientName ); }
@Test public void shouldCopeIfThereIsNoUserAgentHeader() throws IOException, ServletException { filter.doFilter( request( null ), null, filterChain ); assertThat( agents.recentItems(), hasSize( 0 ) ); }
@Test public void shouldNotReportDuplicates() throws IOException, ServletException { filter.doFilter( request( "the-agent" ), null, filterChain ); filter.doFilter( request( "the-agent" ), null, filterChain ); assertThat( agents.recentItems(), hasSize( 1 ) ); }
@Test public void shouldRecordMultipleUserAgents() throws IOException, ServletException { filter.doFilter( request( "agent1" ), null, filterChain ); filter.doFilter( request( "agent2" ), null, filterChain ); assertThat( agents.recentItems(), hasItems( "agent1", "agent2" ) ); }
@Override public Iterator<Type> iterator() { return recentItems().iterator(); } }