示例#1
0
        private void InitGoedle()
        {
            Guid   user_id     = Guid.NewGuid();
            string app_version = APP_VERSION;
            string app_name    = APP_NAME;

            if (String.IsNullOrEmpty(app_version))
            {
                app_version = Application.version;
            }
            if (String.IsNullOrEmpty(app_name))
            {
                if (String.IsNullOrEmpty(app_name))
                {
                    app_name = Application.productName;
                }
                else
                {
                    app_name = app_version;
                }
            }
            // string locale = Application.systemLanguage.ToString();
            // Build HTTP CLient
            detail.IGoedleWebRequest    goedleWebRequest    = new detail.GoedleWebRequest();
            detail.IGoedleUploadHandler goedleUploadHandler = new detail.GoedleUploadHandler();
            if (gio_interface == null && (!string.IsNullOrEmpty(instance.API_KEY) || !string.IsNullOrEmpty(instance.APP_KEY)))
            {
                gio_interface = new detail.GoedleAnalytics(API_KEY, APP_KEY, user_id.ToString("D"), app_version, GA_TRACKIND_ID, app_name, GA_CD_1, GA_CD_2, GA_CD_EVENT, detail.GoedleHttpClient.instance, goedleWebRequest, goedleUploadHandler, STAGING, TRACKING_DISABLE);
                Debug.Log("goedle.io SDK is initialzied");
            }
        }
示例#2
0
        public void checkBehaviorGoedleWebRequestAnalyticsNoTrackWhenApiKeyIsEmpty()
        {
            _gio_object = new GoedleAnalytics("", _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _tracking);

            string stringContent = null;

            _guh.add(Arg.Do <string>(x => stringContent = x));
            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);

            _gio_object.trackGroup("class", "school", _guh);
            _gio_object.track("event", _guh);
            _gio_object.track("event", "event_id", _guh);
            _gio_object.track("event", "event_id", "50", _guh);
            _gio_object.set_user_id("test_user", _guh);
            _gw.Received(0).SendWebRequest();

            _gio_object = new GoedleAnalytics(" ", _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _tracking);

            stringContent = null;
            _guh.add(Arg.Do <string>(x => stringContent = x));
            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);
            _gio_object.track("event", _guh);

            _gio_object = new GoedleAnalytics(null, _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _tracking);

            stringContent = null;
            _guh.add(Arg.Do <string>(x => stringContent = x));
            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);
            _gio_object.track("event", _guh);
        }
示例#3
0
        public void checkBehaviorGoedleWebRequestPOST()
        {
            _gio_object = new GoedleAnalytics(_api_key, _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _tracking);

            _gw.unityWebRequest.Returns(new UnityWebRequest());
            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);

            string authentification = "12345";

            _gio_http_client.sendPost(_url, authentification, _gw, _guh, _staging);
            _gw.Received(2).SendWebRequest();
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Content-Type"), Arg.Is <string>("application/json"));
            _gw.Received(1).SetRequestHeader(Arg.Is <string>("Authorization"), Arg.Is <string>("12345"));
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Authorization"), Arg.Any <string>());
        }
示例#4
0
        public void checkBehaviorGoedleWebRequestAnalyticsIdentifyPOST()
        {
            _gio_object = new GoedleAnalytics(_api_key, _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _tracking);

            string stringContent = null;

            _guh.add(Arg.Do <string>(x => stringContent = x));

            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);
            _gio_object.track(GoedleConstants.IDENTIFY, null, null, false, null, null, _guh);
            var result = JSON.Parse(stringContent);

            Assert.AreEqual(result["event"].Value, "identify");
            _gw.Received(2).SendWebRequest();
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Content-Type"), Arg.Is <string>("application/json"));
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Authorization"), Arg.Any <string>());
        }
示例#5
0
        /*
         * Returns an JSONNode object this can be accessed via:
         * CoroutineWithData cd = new CoroutineWithData(this, LoadSomeStuff( ) );
         * yield return cd.coroutine;
         * Debug.Log("result is " + cd.result);  //  'JSONNode'
         * CoroutineWithData is in GoedleUtils
         */
        public IEnumerator getJSONResponse(string url, GoedleAnalytics ga, IGoedleWebRequest gwr, IGoedleDownloadBuffer gdb, bool staging)
        {
            if (staging)
            {
                Debug.Log("Staging is on your get request would look like this:\n" + url);
            }
            else
            {
                gwr.unityWebRequest = new UnityWebRequest();
                using (gwr.unityWebRequest)
                {
                    gwr.method          = "GET";
                    gwr.url             = url;
                    gwr.downloadHandler = gdb.downloadHandlerBuffer;
                    yield return(gwr.SendWebRequest());

                    JSONNode strategy_json = null;
                    if (gwr.isNetworkError || gwr.isHttpError)
                    {
                        Debug.Log("{\"error\": {  \"isHttpError\": \"" + gwr.isHttpError + "\",  \"isNetworkError\": \"" + gwr.isNetworkError + "\" } }");
                        strategy_json = null;
                    }
                    else
                    {
                        // Show results as text
                        try
                        {
                            Debug.Log("The following strategy was received: " + gdb.text);
                            strategy_json = JSON.Parse(gdb.text);
                        }
                        catch (Exception e)
                        {
                            Debug.Log("{\"error\": \" " + e.Message + " \"}");
                            strategy_json = null;
                        }
                        // Or retrieve results as binary data
                        //byte[] results = client.downloadHandler.data;
                    }
                    ga.strategy = strategy_json;
                    yield break;
                }
            }
        }
        public void SetUp()
        {
            _app_key        = "test_app_key";
            _user_id        = "u1";
            _app_version    = "v_test";
            _ts             = 0;
            _app_name       = "test_app";
            _timezone       = 360000;
            _event_name     = "test_event";
            _event_id       = null;
            _event_value    = null;
            _ga_active      = false;
            _anonymous_id   = null;
            _trait_key      = null;
            _trait_value    = null;
            _api_key        = "test_api_key";
            _GA_TRACKIND_ID = null;
            _GA_CD_1        = 0;
            _GA_CD_2        = 0;
            _GA_CD_EVENT    = "group";
            _url            = "test_url";
            _staging        = false;
            _content        = true;

            _gw         = Substitute.For <IGoedleWebRequest>();
            _guh        = Substitute.For <IGoedleUploadHandler>();
            _gdb        = Substitute.For <IGoedleDownloadBuffer>();
            _gio_object = new GoedleAnalytics(
                _api_key,
                _app_key,
                _user_id,
                _app_version,
                _GA_TRACKIND_ID,
                _app_name,
                _GA_CD_1,
                _GA_CD_2,
                _GA_CD_EVENT,
                _gio_http_client,
                _gw,
                _guh,
                _staging,
                _content);
        }
示例#7
0
        public void checkBehaviorGoedleWebRequestAnalyticsGroupPOST()
        {
            _gio_object = new GoedleAnalytics(_api_key, _app_key, _user_id, _app_version, _GA_TRACKIND_ID, _app_name, _GA_CD_1, _GA_CD_2, _GA_CD_EVENT, _gio_http_client, _gw, _guh, _staging, _content_adaptation);

            string stringContent = null;

            _guh.add(Arg.Do <string>(x => stringContent = x));

            _gw.isHttpError.Returns(false);
            _gw.isNetworkError.Returns(false);
            _gio_object.trackGroup("class", "school", _guh);
            var result = JSON.Parse(stringContent);

            Assert.AreEqual(result["event"].Value, "group");
            Assert.AreEqual(result["event_id"].Value, "class");
            Assert.AreEqual(result["event_value"].Value, "school");

            _gw.Received(2).SendWebRequest();
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Content-Type"), Arg.Is <string>("application/json"));
            _gw.Received(2).SetRequestHeader(Arg.Is <string>("Authorization"), Arg.Any <string>());
        }
示例#8
0
 public void requestStrategy(string url, GoedleAnalytics ga, IGoedleWebRequest gwr, IGoedleDownloadBuffer gdb, bool staging)
 {
     StartCoroutine(getJSONResponse(url, ga, gwr, gdb, staging));
 }