Beispiel #1
0
        private void logNetworkRequest_Click(object sender, EventArgs e)
        {
            Random random = new Random();

            string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" };
            string   method  = methods[random.Next(0, methods.Length)];
            string   url     = urls[random.Next(0, urls.Length)];

            if (random.Next(0, 2) == 1)
            {
                url = url + "?doYouLoveCrittercism=YES";
            }
            // latency in milliseconds
            long latency      = (long)Math.Floor(4000.0 * random.NextDouble());
            long bytesRead    = random.Next(0, 10000);
            long bytesSent    = random.Next(0, 10000);
            long responseCode = 200;

            if (random.Next(0, 5) == 0)
            {
                // Some common response other than 200 == OK .
                long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 };
                responseCode = responseCodes[random.Next(0, responseCodes.Length)];
            }
            Crittercism.LogNetworkRequest(
                method,
                url,
                latency,
                bytesRead,
                bytesSent,
                (HttpStatusCode)responseCode,
                WebExceptionStatus.Success);
        }
        partial void ManualNetworkRequestButton_TouchUpInside(UIButton sender)
        {
            Random random = new Random();

            string[] methods = { "GET", "POST", "HEAD" };
            string   method  = methods [random.Next(methods.Length)];

            string[] urls = { "http://www.critterwebservice.com",
                              "http://www.crittersearchengine.com/?ilove=critters",
                              "http://www.critterdatingservice.com/nutlovers",
                              "http://www.crittergourmetfood.com/nutsandberries.htm",
                              "http://www.critterworldnews.com/summerfun",
                              "http://www.crittermoviereviews.com/starring=mrscritter",
                              "http://www.critterburrowdecor.com" };
            string   url = urls [random.Next(urls.Length)];

            int[] responseCodes = { 200, 202, 400, 404 };
            int   responseCode  = responseCodes [random.Next(responseCodes.Length)];

            Crittercism.LogNetworkRequest(
                method,
                url,
                random.NextDouble(),
                random.Next(10000),
                random.Next(1000),
                responseCode,
                0);
        }
        private static void CommandLogNetworkRequest(string arg)
        {
            Random random = new Random();

            string[] methods   = new string[] { "GET", "POST", "HEAD", "PUT" };
            string   method    = methods[random.Next(0, methods.Length)];
            string   urlString = "";

            if (!arg.Equals(""))
            {
                urlString = urls[random.Next(0, urls.Length)] + "?arg=" + WebUtility.UrlEncode(arg);
            }
            else if (random.Next(0, 2) == 1)
            {
                urlString = randomURLString();
            }
            ;
            // latency in milliseconds
            long latency      = (long)Math.Floor(4000.0 * random.NextDouble());
            long bytesRead    = random.Next(0, 10000);
            long bytesSent    = random.Next(0, 10000);
            long responseCode = 200;

            if (random.Next(0, 5) == 0)
            {
                // Some common response other than 200 == OK .
                long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 };
                responseCode = responseCodes[random.Next(0, responseCodes.Length)];
            }
            ;
            WebExceptionStatus exceptionStatus = WebExceptionStatus.Success;

            if (random.Next(0, 5) == 0)
            {
                // Simulate a network WebException was encountered.
                WebExceptionStatus[] exceptionStatuses = new WebExceptionStatus[] {
                    WebExceptionStatus.NameResolutionFailure,
                    WebExceptionStatus.ConnectFailure,
                    WebExceptionStatus.ReceiveFailure,
                    WebExceptionStatus.SendFailure,
                    WebExceptionStatus.ConnectionClosed,
                    WebExceptionStatus.TrustFailure,
                    WebExceptionStatus.KeepAliveFailure,
                    WebExceptionStatus.Timeout
                };
                exceptionStatus = exceptionStatuses[random.Next(0, exceptionStatuses.Length)];
                // We didn't receive a simulated response, after all.
                responseCode = 0;
            }
            ;
            Crittercism.LogNetworkRequest(
                method,
                urlString,
                latency,
                bytesRead,
                bytesSent,
                (HttpStatusCode)responseCode,
                WebExceptionStatus.Success);
        }
Beispiel #4
0
        public void LogNetworkRequestTest()
        {
            APM.interval = 1;
            TestHelpers.StartApp();
            Assert.IsNull(TestHelpers.TestNetwork().AppLoadResponse);
            Assert.IsTrue(APM.enabled);
            string method       = "GET";
            string uriString    = "http://www.mrscritter.com";
            long   latency      = 4000;
            long   bytesRead    = 10000;
            long   bytesSent    = 10000;
            long   responseCode = 200;

            Crittercism.LogNetworkRequest(
                method,
                uriString,
                latency,
                bytesRead,
                bytesSent,
                (HttpStatusCode)responseCode,
                WebExceptionStatus.Success);
            Trace.WriteLine("Crittercism.LogNetworkRequest returned");
            Trace.WriteLine("APM.enabled == " + APM.enabled);
            MessageReport messageReport = TestHelpers.DequeueMessageType(typeof(APMReport));

            if (messageReport != null)
            {
                Trace.WriteLine("We found an APMReport (YAY)");
            }
            else
            {
                Trace.WriteLine("We didn't find an APMReport (BOO)");
                Trace.WriteLine("APM.enabled == " + APM.enabled);
                Assert.IsNotNull(messageReport, "Expected an APMReport message");
            };
            String asJson = JsonConvert.SerializeObject(messageReport);

            Trace.WriteLine("asJson == " + asJson);
            string[] jsonStrings = new string[] {
                "\"d\":",
                "\"GET\"",
                "\"http://www.mrscritter.com\"",
                "4000",
                "10000",
                "200"
            };
            foreach (String jsonFragment in jsonStrings)
            {
                Trace.WriteLine("jsonFragment == " + jsonFragment);
                Trace.WriteLine("asJson.Contains(jsonFragment) == " + asJson.Contains(jsonFragment));
                Assert.IsTrue(asJson.Contains(jsonFragment));
            }
            ;
        }
        private static void LogNetworkRequest()
        {
            Random random = new Random();

            string[] methods   = new string[] { "GET", "POST", "HEAD", "PUT" };
            string   method    = methods[random.Next(0, methods.Length)];
            string   urlString = randomURLString();
            // latency in milliseconds
            long latency      = (long)Math.Floor(4000.0 * random.NextDouble());
            long bytesRead    = random.Next(0, 10000);
            long bytesSent    = random.Next(0, 10000);
            long responseCode = 200;

            if (random.Next(0, 5) == 0)
            {
                // Some common response other than 200 == OK .
                long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 };
                responseCode = responseCodes[random.Next(0, responseCodes.Length)];
            }
            ;
            WebExceptionStatus exceptionStatus = WebExceptionStatus.Success;

            if (random.Next(0, 5) == 0)
            {
                // Simulate a network WebException was encountered.
                WebExceptionStatus[] exceptionStatuses = new WebExceptionStatus[] {
                    WebExceptionStatus.ConnectFailure,
                    WebExceptionStatus.SendFailure,
                    WebExceptionStatus.RequestCanceled,
                    WebExceptionStatus.UnknownError,
                    WebExceptionStatus.MessageLengthLimitExceeded
                };
                exceptionStatus = exceptionStatuses[random.Next(0, exceptionStatuses.Length)];
                // We didn't receive a simulated response, after all.
                responseCode = 0;
            }
            ;
            Crittercism.LogNetworkRequest(
                method,
                urlString,
                latency,
                bytesRead,
                bytesSent,
                (HttpStatusCode)responseCode,
                WebExceptionStatus.Success);
        }
        private static void CommandLogNetworkRequest(string arg)
        {
            Random random = new Random();

            string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" };
            string   method  = methods[random.Next(0, methods.Length)];
            string   url     = urls[random.Next(0, urls.Length)];

            if (!arg.Equals(""))
            {
                url = url + "?arg=" + WebUtility.UrlEncode(arg);
            }
            else if (random.Next(0, 2) == 1)
            {
                url = url + "?doYouLoveCrittercism=YES";
            }
            // latency in milliseconds
            long latency      = (long)Math.Floor(4000.0 * random.NextDouble());
            long bytesRead    = random.Next(0, 10000);
            long bytesSent    = random.Next(0, 10000);
            long responseCode = 200;

            if (random.Next(0, 5) == 0)
            {
                // Some common response other than 200 == OK .
                long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 };
                responseCode = responseCodes[random.Next(0, responseCodes.Length)];
            }
            Console.WriteLine("LogNetworkRequest: \"" + url + "\"");
            Crittercism.LogNetworkRequest(
                method,
                url,
                latency,
                bytesRead,
                bytesSent,
                (HttpStatusCode)responseCode,
                WebExceptionStatus.Success);
        }
Beispiel #7
0
        protected override void OnCreate(Bundle bundle)
        {
            // Initialize Crittercism
            Crittercism.Init(ApplicationContext, "YOUR APP ID GOES HERE");

            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            Button ButtonLeaveBreadcrumb = FindViewById <Button>(Resource.Id.ButtonBreadcrumb);

            ButtonLeaveBreadcrumb.Click += delegate(object sender, EventArgs e) {
                Crittercism.LeaveBreadcrumb("My Breadcrumb");
            };

            Button ButtonSetUserName = FindViewById <Button>(Resource.Id.ButtonSetUserName);

            ButtonSetUserName.Click += delegate {
                Crittercism.SetUserName("MrsCritter");
            };

            Button ButtonSetMetadata = FindViewById <Button>(Resource.Id.ButtonSetMetadata);

            ButtonSetMetadata.Click += delegate {
                Crittercism.SetMetadata("Game Level", "5");
            };

            Button ButtonCrash = FindViewById <Button>(Resource.Id.ButtonCrash);

            ButtonCrash.Click += delegate(object sender, EventArgs e) {
                CrashInnerException();
                //CrashDivideByZero();
                //CrashNullReference();
                //CrashIndexOutOfRange();
                //CrashCustomException();
            };

            Button ButtonHandledException = FindViewById <Button>(Resource.Id.ButtonHandledException);

            ButtonHandledException.Click += delegate(object sender, EventArgs e) {
                try {
                    CrashInnerException();
                } catch (System.Exception error) {
                    Crittercism.LogHandledException(error);
                }
            };

            Button ButtonLogNetworkRequest = FindViewById <Button>(Resource.Id.ButtonLogNetworkRequest);

            ButtonLogNetworkRequest.Click += delegate(object sender, EventArgs e) {
                Random   random  = new Random();
                string[] methods = { "GET", "POST", "HEAD" };
                string   method  = methods[random.Next(methods.Length)];
                string[] urls    = { "http://www.critterwebservice.com",
                                     "http://www.crittersearchengine.com/?ilove=critters",
                                     "http://www.critterdatingservice.com/nutlovers",
                                     "http://www.crittergourmetfood.com/nutsandberries.htm",
                                     "http://www.critterworldnews.com/summerfun",
                                     "http://www.crittermoviereviews.com/starring=mrscritter",
                                     "http://www.critterburrowdecor.com" };
                string   url           = urls[random.Next(urls.Length)];
                int[]    responseCodes = { 200, 202, 400, 404 };
                int      responseCode  = responseCodes[random.Next(responseCodes.Length)];
                Crittercism.LogNetworkRequest(
                    method,
                    url,
                    (long)(1000 * random.NextDouble()),
                    random.Next(10000),
                    random.Next(1000),
                    responseCode,
                    0);
            };

            Button ButtonBeginTransaction = FindViewById <Button>(Resource.Id.ButtonBeginTransaction);

            ButtonBeginTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.BeginUserflow("Exercise");
            };

            Button ButtonEndTransaction = FindViewById <Button>(Resource.Id.ButtonEndTransaction);

            ButtonEndTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.EndUserflow("Exercise");
            };

            Button ButtonFailTransaction = FindViewById <Button>(Resource.Id.ButtonFailTransaction);

            ButtonFailTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.FailUserflow("Exercise");
            };

            Button ButtonSetTransactionValue = FindViewById <Button>(Resource.Id.ButtonSetTransactionValue);
            Button ButtonGetTransactionValue = FindViewById <Button>(Resource.Id.ButtonGetTransactionValue);

            ButtonSetTransactionValue.Click += delegate(object sender, EventArgs e) {
                Random random = new Random();
                Crittercism.SetUserflowValue("Exercise", random.Next(1000));
            };
            ButtonGetTransactionValue.Click += delegate(object sender, EventArgs e) {
                int value = Crittercism.GetUserflowValue("Exercise");
                ButtonGetTransactionValue.Text = value.ToString();
            };
        }