/** * {@inheritDoc} */ @Override public void deserializationComplete(Beacon beacon) { sessionId = beacon.getSessionID(); tabId = beacon.getTabID(); activeAgentModules = beacon.getActiveAgentModules(); details.deserializationComplete(beacon); Map<String, String> allTags = new HashMap<String, String>(); details.collectTags(allTags); this.addAllTags(allTags); }
ObjectNode response = jsonMapper.getNodeFactory().objectNode(); long sessionID = beacon.getSessionID(); long tabID = beacon.getTabID(); response.put("sessionID", ConversionUtils.toHexString(sessionID)); if (beacon.getTabID() == Beacon.REQUEST_NEW_TAB_ID_MARKER) { tabID = RandomUtils.randomLong(); response.put("tabID", ConversionUtils.toHexString(tabID)); beacon.deserializationComplete(sessionID, tabID); for (EUMBeaconElement elem : beacon.getData()) { DefaultData ddata = elem.asDefaultData(); ddata.setPlatformIdent(platformManager.getPlatformId());
@Test public void testUnkownElementTypehandling() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); AbstractEUMSpanDetails dummy = mock(AbstractEUMSpanDetails.class); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> result = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, true, true, modules).getData()) { result.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(result.isEmpty(), equalTo(true)); }
/** * {@inheritDoc} */ @Override public void deserializationComplete(Beacon beacon) { this.sessionId = beacon.getSessionID(); }
protected Beacon generateBeacon(AbstractEUMSpanDetails elementToSend, boolean containsSessionInfo, boolean containsPLR, String modules) { ArrayList<EUMBeaconElement> data = new ArrayList<>(); if (containsSessionInfo) { data.add(sessionInfo); } if (containsPLR) { data.add(pageLoadRequest.getOwningSpan()); when(pageLoadRequest.getOwningSpan().getActiveAgentModules()).thenReturn(modules); } if (elementToSend != null) { EUMSpan span = Mockito.mock(EUMSpan.class); when(span.getTabId()).thenReturn(TAB_ID); when(span.getSessionId()).thenReturn(SESSION_ID); when(span.getDetails()).thenReturn(elementToSend); if (elementToSend instanceof DummyBeaconElement) { ((DummyBeaconElement) elementToSend).owner = span; } else { when(elementToSend.getOwningSpan()).thenReturn(span); } when(span.getActiveAgentModules()).thenReturn(modules); data.add(span); } return new Beacon(SESSION_ID, TAB_ID, modules, data); }
@Test public void testIgnoreMissingSessionInfo() { String modules = "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> result = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, true, modules).getData()) { result.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(result.isEmpty(), equalTo(false)); }
@Test public void testPageLoadRequestNotRequired() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = false; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> result = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, true, false, modules).getData()) { result.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(result.isEmpty(), equalTo(false)); }
@Test public void testIgnoreSessionInfoAndThenWaitForPageLoadRequest() { String modules = "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> resultA = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, false, modules).getData()) { resultA.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultB = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, false, true, modules).getData()) { resultB.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(resultA.isEmpty(), equalTo(true)); assertThat(resultB.isEmpty(), equalTo(false)); }
@Test public void testSessionInfoNotRequired() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = false; Collection<Builder> result = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, true, modules).getData()) { result.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(result.isEmpty(), equalTo(false)); }
@Test public void testWaitForPageLoadRequest() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = false; Collection<Builder> resultA = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, true, false, modules).getData()) { resultA.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultB = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, false, true, modules).getData()) { resultB.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(resultA.isEmpty(), equalTo(true)); assertThat(resultB.isEmpty(), equalTo(false)); }
@Test public void testWaitForSessionInfo() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = false; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> resultA = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, false, modules).getData()) { resultA.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultB = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, true, false, modules).getData()) { resultB.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(resultA.isEmpty(), equalTo(true)); assertThat(resultB.isEmpty(), equalTo(false)); }
@Test public void testWaitForPageLoadRequestAndThenSessionInfo() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> resultA = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, false, modules).getData()) { resultA.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultB = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, false, true, modules).getData()) { resultB.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultC = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, true, false, modules).getData()) { resultC.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(resultA.isEmpty(), equalTo(true)); assertThat(resultB.isEmpty(), equalTo(true)); assertThat(resultC.isEmpty(), equalTo(false)); }
@Test public void testWaitForSessionInfoAndThenPageLoadRequest() { String modules = JSAgentModule.BROWSERINFO_MODULE.getIdentifier() + "" + JSAgentModule.NAVTIMINGS_MODULE.getIdentifier(); DummyBeaconElement dummy = new DummyBeaconElement(); this.subBuilder.requiresPageLoadRequestFlag = true; this.subBuilder.requiresSessionMetaInfoFlag = true; Collection<Builder> resultA = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(dummy, false, false, modules).getData()) { resultA.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultB = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, true, false, modules).getData()) { resultB.addAll(builder.createBuilders((DefaultData) elem)); } Collection<Builder> resultC = new ArrayList<>(); for (EUMBeaconElement elem : generateBeacon(null, false, true, modules).getData()) { resultC.addAll(builder.createBuilders((DefaultData) elem)); } assertThat(resultA.isEmpty(), equalTo(true)); assertThat(resultB.isEmpty(), equalTo(true)); assertThat(resultC.isEmpty(), equalTo(false)); }