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");
        }
Beispiel #7
0
 /// <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);
 }
Beispiel #8
0
 /// <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);
 }