public void MeasurementUriBuilderTests_BuildUri_Emits_SessionControl_start_At_Start() { var config = MeasurementTestHelpers.Configuration; var builder = new MeasurementUriBuilder(config, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment()); var actual = builder.BuildUri(new MeasurementActivityEntry(new AppViewActivity("Home"))); StringAssert.Contains(actual.Query, "sc=start"); }
public void MeasurementUriBuilderTests_BuildUri_Carries_Forward_Cd_Parameter() { var config = MeasurementTestHelpers.Configuration; var builder = new MeasurementUriBuilder(config, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment()); builder.BuildUri(new MeasurementActivityEntry(new AppViewActivity("CarriedForward"))); var actual = builder.BuildUri(new MeasurementActivityEntry(new EventActivity("Action", "Category"))); StringAssert.Contains(actual.Query, "cd=CarriedForward"); }
public void MeasurementUriBuilderTests_BuildUri_Is_http_And_www_When_Not_Using_SSL() { var config = MeasurementTestHelpers.Configuration; config.UseSsl = false; var builder = new MeasurementUriBuilder(config, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment()); var actual = builder.BuildUri(new ScreenViewActivity("Home")); Assert.AreEqual("http", actual.Scheme); Assert.AreEqual("www.google-analytics.com", actual.Host); }
public void MeasurementUriBuilderTests_BuildUri_Is_https_And_ssl_When_Using_SSL() { var config = MeasurementTestHelpers.Configuration; config.UseSsl = true; var builder = new MeasurementUriBuilder(config, MeasurementTestHelpers.CreateSessionManager(), MeasurementTestHelpers.CreateEnvironment()); var actual = builder.BuildUri(new MeasurementActivityEntry(new AppViewActivity("Home"))); Assert.AreEqual("https", actual.Scheme); Assert.AreEqual("ssl.google-analytics.com", actual.Host); }
public void MeasurementUriBuilderTests_BuildUri_Emits_SessionControl_end_At_End() { var config = MeasurementTestHelpers.Configuration; var sessionManager = MeasurementTestHelpers.CreateSessionManager(); var builder = new MeasurementUriBuilder(config, sessionManager, MeasurementTestHelpers.CreateEnvironment()); sessionManager.End(); var actual = builder.BuildUri(new MeasurementActivityEntry(new EventActivity("Action", "Category"))); StringAssert.Contains(actual.Query, "sc=end"); }
public void MeasurementUriBuilderTests_BuildUri_Emits_No_SessionControl_After_Start() { var config = MeasurementTestHelpers.Configuration; var sessionManager = MeasurementTestHelpers.CreateSessionManager(); var builder = new MeasurementUriBuilder(config, sessionManager, MeasurementTestHelpers.CreateEnvironment()); sessionManager.Hit(); var actual = builder.BuildUri(new MeasurementActivityEntry(new AppViewActivity("Page2"))); var parameters = actual.Query.Split('&').Select(p => p.Split('=')).ToDictionary(k => k[0], v => v.Length == 0 ? null : v[1]); CollectionAssert.DoesNotContain(parameters.Keys, "sc"); }
/// <summary> /// Create a new MeasurementTracker with a given configuration, session, environment and URI sender. /// </summary> /// <param name="configuration">Configuration of this Google Analytics Measurement Protocol client.</param> /// <param name="sessionManager">Session manager with visitor and session information.</param> /// <param name="environment">Provider of environmental information such as screen resolution.</param> /// <param name="sender">Action to take prepared URIs for Google Analytics and send them on.</param> public MeasurementTracker(MeasurementConfiguration configuration, SessionManager sessionManager, IEnvironment environment, Action <Uri> sender) { this.sessionManager = sessionManager; this.sender = sender; uriBuilder = new MeasurementUriBuilder(configuration, sessionManager, environment); }
/// <summary> /// Create a new MeasurementTracker with a given configuration, session, environment and URI sender. /// </summary> /// <param name="configuration">Configuration of this Google Analytics Measurement Protocol client.</param> /// <param name="sessionManager">Session manager with visitor and session information.</param> /// <param name="environment">Provider of environmental information such as screen resolution.</param> /// <param name="sender">Action to take prepared URIs for Google Analytics and send them on.</param> public MeasurementTracker(MeasurementConfiguration configuration, SessionManager sessionManager, IEnvironment environment, Action<Uri> sender) { this.sessionManager = sessionManager; this.sender = sender; uriBuilder = new MeasurementUriBuilder(configuration, sessionManager, environment); }