From cee8528c7c379d7b138af64a65ddf348379a6425 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Tue, 21 Aug 2018 17:35:45 +0530 Subject: [PATCH 01/19] delete messages fix --- .../History/DeleteMessagesRequestBuilder.cs | 7 + .../DeleteMessagesBuildRequestsTests.cs | 197 +++++++++- PubNubUnity/Assets/ExampleScene.unity | Bin 86320 -> 165616 bytes .../InitTestScene636701216939524710.unity | 355 ++++++++++++++++++ ...InitTestScene636701216939524710.unity.meta | 7 + .../Assets/Models/Server/BuildRequests.cs | 19 +- .../Assets/PlayModeTests/PlayModeTests.cs | 14 + .../Assets/PubNubUnity/PubNubUnityBase.cs | 2 +- PubNubUnity/Assets/WebRequest.meta | 8 + .../ProjectSettings/AudioManager.asset | Bin 4140 -> 360 bytes .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | Bin 4282 -> 1044 bytes .../ProjectSettings/EditorBuildSettings.asset | Bin 4104 -> 160 bytes .../ProjectSettings/EditorSettings.asset | Bin 4168 -> 672 bytes .../ProjectSettings/GraphicsSettings.asset | Bin 4442 -> 2152 bytes .../ProjectSettings/InputManager.asset | Bin 5520 -> 5793 bytes .../ProjectSettings/NavMeshAreas.asset | Bin 4460 -> 1308 bytes .../ProjectSettings/NetworkManager.asset | Bin 4112 -> 0 bytes .../ProjectSettings/Physics2DSettings.asset | Bin 4384 -> 1997 bytes .../ProjectSettings/PresetManager.asset | 6 + .../ProjectSettings/ProjectSettings.asset | Bin 56243 -> 17634 bytes .../ProjectSettings/ProjectVersion.txt | 2 +- .../ProjectSettings/QualitySettings.asset | Bin 4976 -> 6208 bytes PubNubUnity/ProjectSettings/TagManager.asset | Bin 4308 -> 378 bytes PubNubUnity/ProjectSettings/TimeManager.asset | Bin 4116 -> 202 bytes .../UnityConnectSettings.asset | Bin 4216 -> 812 bytes 26 files changed, 612 insertions(+), 11 deletions(-) create mode 100644 PubNubUnity/Assets/InitTestScene636701216939524710.unity create mode 100644 PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta create mode 100644 PubNubUnity/Assets/WebRequest.meta create mode 100644 PubNubUnity/ProjectSettings/ClusterInputManager.asset delete mode 100644 PubNubUnity/ProjectSettings/NetworkManager.asset create mode 100644 PubNubUnity/ProjectSettings/PresetManager.asset diff --git a/PubNubUnity/Assets/Builders/History/DeleteMessagesRequestBuilder.cs b/PubNubUnity/Assets/Builders/History/DeleteMessagesRequestBuilder.cs index 4351af71..51c1cf85 100644 --- a/PubNubUnity/Assets/Builders/History/DeleteMessagesRequestBuilder.cs +++ b/PubNubUnity/Assets/Builders/History/DeleteMessagesRequestBuilder.cs @@ -39,6 +39,13 @@ public void Async(Action callback) return; } + if(string.IsNullOrEmpty(this.PubNubInstance.PNConfig.SecretKey)){ + PNStatus pnStatus = base.CreateErrorResponseFromMessage("SecretKey is required", null, PNStatusCategory.PNBadRequestCategory); + Callback(null, pnStatus); + + return; + } + base.Async(this); } diff --git a/PubNubUnity/Assets/Editor/DeleteMessagesBuildRequestsTests.cs b/PubNubUnity/Assets/Editor/DeleteMessagesBuildRequestsTests.cs index 8cad58d9..6148f15f 100644 --- a/PubNubUnity/Assets/Editor/DeleteMessagesBuildRequestsTests.cs +++ b/PubNubUnity/Assets/Editor/DeleteMessagesBuildRequestsTests.cs @@ -2,14 +2,207 @@ using PubNubAPI; using NUnit.Framework; using System.Text; +using System.Linq; namespace PubNubAPI.Tests { [TestFixture] public class DeleteMessagesBuildRequestsTests { - #if DEBUG - + #if DEBUG + + [Test] + public void TestDeleteMessagesBuildRequestsSecretKeyError(){ + PNConfiguration pnConfiguration = new PNConfiguration (); + pnConfiguration.Origin = EditorCommon.Origin; + pnConfiguration.SubscribeKey = EditorCommon.SubscribeKey; + pnConfiguration.PublishKey = EditorCommon.PublishKey; + PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null); + bool statusError = false; + string msg = ""; + pnUnity.DeleteMessages().Channel("test").Async((result, status) => { + statusError = status.Error; + msg = status.ErrorData.Info; + }); + Assert.AreEqual (true, statusError); + Assert.AreEqual ("SecretKey is required", msg); + + } + [Test] + public void TestDeleteMessagesBuildRequestsChannelError(){ + PNConfiguration pnConfiguration = new PNConfiguration (); + pnConfiguration.Origin = EditorCommon.Origin; + pnConfiguration.SubscribeKey = EditorCommon.SubscribeKey; + pnConfiguration.PublishKey = EditorCommon.PublishKey; + PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null); + bool statusError = false; + string msg = ""; + pnUnity.DeleteMessages().Channel("").Async((result, status) => { + statusError = status.Error; + msg = status.ErrorData.Info; + }); + Assert.AreEqual (true, statusError); + Assert.AreEqual ("DeleteHistory Channel is empty", msg); + + } + + [Test] + public void TestDeleteMessagesBuildRequests(){ + long startTime = -1; + long endTime = -1; + string channel = "DeleteMessagesChannel"; + string paramsInOrder = "pnsdk={0}×tamp={1}&uuid=DeleteMessagesTestUUID"; + //uuid=PubNubUnityExample&start=15078932998876451&end=15078933628583256×tamp=1534756366&auth=authKey&pnsdk=PubNub-CSharp-UnityWin%2F4.0.1 + string uriParamString = "uuid={0}{1}{2}×tamp={3}{4}&pnsdk={5}"; + + DeleteMessagesBuildRequestsCommon (true, channel, "", startTime, endTime, paramsInOrder, uriParamString); + } + + [Test] + public void TestDeleteMessagesBuildRequestsStartEnd(){ + long startTime = 15078932998876451; + long endTime = 15078933628583256; + string channel = "DeleteMessagesChannel2"; + string paramsInOrder = "{0}&pnsdk={1}{2}×tamp={3}&uuid=DeleteMessagesTestUUID"; + //uuid=PubNubUnityExample&start=15078932998876451&end=15078933628583256×tamp=1534756366&auth=authKey&pnsdk=PubNub-CSharp-UnityWin%2F4.0.1 + string uriParamString = "uuid={0}{1}{2}×tamp={3}{4}&pnsdk={5}"; + + DeleteMessagesBuildRequestsCommon (true, channel, "", startTime, endTime, paramsInOrder, uriParamString); + } + + [Test] + public void TestDeleteMessagesBuildRequestsEnd(){ + long startTime = 15078932998876451; + long endTime = -1; + string channel = "DeleteMessagesChannel2"; + string paramsInOrder = "pnsdk={0}{1}×tamp={2}&uuid=DeleteMessagesTestUUID"; + //uuid=PubNubUnityExample&start=15078932998876451&end=15078933628583256×tamp=1534756366&auth=authKey&pnsdk=PubNub-CSharp-UnityWin%2F4.0.1 + string uriParamString = "uuid={0}{1}{2}×tamp={3}{4}&pnsdk={5}"; + + DeleteMessagesBuildRequestsCommon (true, channel, "", startTime, endTime, paramsInOrder, uriParamString); + } + + [Test] + public void TestDeleteMessagesBuildRequestsStart(){ + long startTime = -1; + long endTime = 15078933628583256; + string channel = "DeleteMessagesChannel2"; + string paramsInOrder = "{0}&pnsdk={1}×tamp={2}&uuid=DeleteMessagesTestUUID"; + //uuid=PubNubUnityExample&start=15078932998876451&end=15078933628583256×tamp=1534756366&auth=authKey&pnsdk=PubNub-CSharp-UnityWin%2F4.0.1 + string uriParamString = "uuid={0}{1}{2}×tamp={3}{4}&pnsdk={5}"; + + DeleteMessagesBuildRequestsCommon (true, channel, "", startTime, endTime, paramsInOrder, uriParamString); + } + + + public void DeleteMessagesBuildRequestsCommon(bool ssl, string channel, string authKey, long startTime, long endTime, string paramsInOrderVal, string uriParamString){ + PNConfiguration pnConfiguration = new PNConfiguration (); + pnConfiguration.Origin = EditorCommon.Origin; + pnConfiguration.SubscribeKey = EditorCommon.SubscribeKey; + pnConfiguration.PublishKey = EditorCommon.PublishKey; + pnConfiguration.SecretKey = EditorCommon.SecretKey; + pnConfiguration.Secure = ssl; + pnConfiguration.CipherKey = ""; + pnConfiguration.LogVerbosity = PNLogVerbosity.BODY; + pnConfiguration.PresenceTimeout = 60; + pnConfiguration.PresenceInterval= 30; + pnConfiguration.UUID = "DeleteMessagesTestUUID"; + pnConfiguration.AuthKey = authKey; + + PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null); + + string authKeyString = ""; + if (!string.IsNullOrEmpty(authKey)) { + authKeyString = string.Format ("&auth={0}", pnConfiguration.AuthKey); + } + + string startTimeString = ""; + if(startTime!=-1){ + startTimeString = string.Format("&start={0}", startTime); + } + + string endTimeString = ""; + if(endTime!=-1){ + endTimeString = string.Format("&end={0}", endTime); + } + + Uri uri = BuildRequests.BuildDeleteMessagesRequest (channel, startTime, endTime, pnUnity); + + var segments = uri.Segments; + foreach(string seg in segments){ + UnityEngine.Debug.Log(seg); + } + Assert.AreEqual("v3/", segments[1]); + Assert.AreEqual("history/", segments[2]); + Assert.AreEqual("sub-key/", segments[3]); + Assert.AreEqual(EditorCommon.SubscribeKey+"/", segments[4]); + Assert.AreEqual("channel/", segments[5]); + Assert.AreEqual(channel, segments[6]); + + var q = uri.Query; + int index = q.IndexOf('?'); + var query = q.Substring(index + 1) + .Split('&'); + + string timestamp = ""; + string sig = ""; + string version = Utility.EncodeUricomponent(pnUnity.Version, PNOperationType.PNDeleteMessagesOperation, false, true); + + foreach(string qkv in query){ + var kv = qkv.Split('='); + + UnityEngine.Debug.Log(string.Format("key:{0}, value:{1}",kv[0], kv[1])); + switch (kv[0]){ + case "uuid": + Assert.AreEqual(pnConfiguration.UUID,kv[1]); + break; + case "timestamp": + timestamp = kv[1]; + break; + case "pnsdk": + Assert.AreEqual(version,kv[1]); + break; + case "signature": + sig = kv[1]; + break; + } + } + string uriParamStringFormatted = string.Format( + uriParamString, + pnConfiguration.UUID, + startTimeString, + endTimeString, + timestamp, + authKeyString, + version + ); + + Uri uriFormatted = new Uri(string.Format("http{0}://{1}/v3/history/sub-key/{2}/channel/{3}?{4}", ssl?"s":"", pnConfiguration.Origin, EditorCommon.SubscribeKey, channel, uriParamStringFormatted)); + UnityEngine.Debug.Log("uriFormatted: " + uriFormatted); + + + string paramsInOrder = BuildRequests.SetParametersInOrder(uriFormatted); + if((startTime==-1) && (endTime==-1)){ + paramsInOrderVal = string.Format(paramsInOrderVal, version, timestamp); + }else if(startTime==-1){ + paramsInOrderVal = string.Format(paramsInOrderVal, endTimeString.Substring(1), version, timestamp); + }else if(endTime==-1){ + paramsInOrderVal = string.Format(paramsInOrderVal, version, startTimeString, timestamp); + } else { + paramsInOrderVal = string.Format(paramsInOrderVal, endTimeString.Substring(1), version, startTimeString, timestamp); + } + UnityEngine.Debug.Log("paramsInOrder:" + paramsInOrder); + UnityEngine.Debug.Log("paramsInOrderVal:" + paramsInOrderVal); + Assert.AreEqual(paramsInOrderVal, paramsInOrder); + + string sigGenerated = BuildRequests.GenerateSignatureAndAddToURL( + pnUnity, + uriFormatted, + string.Format("/v3/history/sub-key/{0}/channel/{1}", EditorCommon.SubscribeKey, channel)); + UnityEngine.Debug.Log("sigGenerated:" + sigGenerated); + Assert.IsTrue(sigGenerated.Contains(string.Format("&signature={0}",sig))); + + } #endif } } diff --git a/PubNubUnity/Assets/ExampleScene.unity b/PubNubUnity/Assets/ExampleScene.unity index 1b1215f456b72f06567f7a33723898ff2fad96d9..48e4da8e11c408a3c209312039c6c26cee277a79 100644 GIT binary patch literal 165616 zcmeHw>vP+#CPMd%Xa3}*14x#v;<4sP^2$OIq^*G z|GwQoH%00}*|I%?6sBsD5eY#JpaJyb*WLf|Ux#O3dgi|Q?mw;%KlT1?@^8H|8Xip2 zxO}t+`~7VE-ZD({;N9Nd9=^50-Y@36^L{^>6mgawO_C%|hgYI3;h*B*U9UI3IlujH z(Jw#8196f>@UUmV<3i+dl*E6C!S5o+uO9R))tdYI5PcK%j^I1vC`m+7%AXsE{GjK; zSEkQDXNiE`_bv7KHtK)7i~8bvl#61NC4+;WY2a^HHW`SJfxqB6@H-!@H$zHM4O3e&b1eEU&(c`{~oP`m*OsgjShRcKEZP@FGZ0h6Kn=dYXy?t=~q9%diMn!5^8wU7juhwG%3n# zJZ-RGpcD9s+0mb-gE$8=VZQnkn9=5XJD%$YyuqB%bAUmC2h=|Eoxp4?{?|fWMuRv4 ziix!@^6VDZu{sZ2zxRv%?n^uzmE-7sy%WJybMfi)A6fqGF3G;v=l9cTz0;)!D=xg6 z+pB(r$0YWN4|zV$C*}R5oOyYe+=@Z=ASxS?R=hUHN6!*g6+_0_}kv*^chT$IQF)A>2d#`lNkAAj6u zDGYzv^JB?{)6OoU!2o7SU4uv%5Aq_)qp^VV1?H#8%=K0UjzdlHbe-e@faJghsP0&P zcM_*j@+m4|1*as`9-hPro@hwVg0Eaga2rf;Y?kX)bIZHG@q;|gXYmg)n5Pk+e1Llz z?#n417r$R#MdN#vB&I(P57m^(SAu@u=KlFR{KA#@7tRp8sScG|Yc;}aICke&;`htx zOWqz0>ZY&j>;OMhO{QBFflyq^-gQererBuM-FpQe@Nim zs9|CcOSoB!iwr~qIEk;~;W*--R`(4}UDfA;FHDJe;x8aEJg}=#_I~U0l!_^^))C|4eFV4H)qK7k(`s!!Ha*=b9fC?wW zBu)nP4q6V^Xb4*!nMsO+a!bfZYEgkad58CU^5JKJ*8#7Kd~}s$c>g_4|_?#Gs1=L~cCydB+UI?PQ3WfI2j5I>7jb zR%y974cbKra-{`V;3qf*l`7GqR*Y|svK&r3ID7Fly~-wepT9N7LKis*F1ILH^#i5jqabvQ|XMu{t0|ZT{ zUtZ@?THIy%_^(-*@lA~tro&@Kq4~-{%(={PTyheA06V_#p%(PM_lNxZJB+E;mXAW1 zu-Ue?RwN%`6Ofkiypr8fM@J(#F+e0b=>79wa$Zm9hOO4X4{Xo34ck|JUS?T&o=a6$ zEyNcj`{N`L`C&Q)UH5a08)*qehiQM5S%1pRrM(ogk0z zajbWw>H9|D8?NP6n%y0Iblp4CaRz}Cno(f6cSc}1!U+4GZ}wTUqiw8quH+5%lSd$A z7N-L^FXOuyces4FK%XSlu%WKNU1#_KYQa(;o_>_~#`NP|FRZ>a@S6Vgg!w z^1gR5xlQ8!e~QQJ3}nb(Q|Mi7yeuu{ts;9u8;aaVyo{y+BK=z0E)EtuQd92;NaCT?nm`tyeh%@`hsRGM11%uO%|7Md?FSC{q`3E>N|^$n}bs@{`Vf>5K zXjh&Ci)9LGA&;8Y7Ay&@Vj+dt zYeq;>0$StUtdQdR{=O2t_P|2DP*!oAU>~LfCdUoK{Xn&Oip;{SuaV5sWUe)37868H z(9%2yOxVgC{We0&5!^g*+}5O}8BUvCPb_)xrNp1lvInUs+gPQYS^hAKYt@X47dM;WNFs41v6hht@ySAEHEC0YO5_qYIBrw`Bb81%E6 zOl(;o*we;f;DPl=+73Ho zAzSoz(pY#3cHiFr>48gElx%8~Vg+p_S0}NexxH746<{n5?a*|Ct&%H z$R6BFi_MUmNXyM)!y`9ov0hRWmn~^ZhEX@2axI)iaoRfq-)A04iMM8e#8;_Qp`GHu$6z}sBe3~STK_6O6S`XD;AAeb4A5WU`r5K#CDvFN>i z65sdk6Ywoba}qqhn|X==WqcfqWYEj*dJjMhm_ES5Z#W+I1B8vTp>i{;U#~yu6>>h5 zP54;cBQ1N%B7)aH_&(87y<${=35!dBVLBE#55cG&s_v8v6uP(oxJT8k^0A}dy%2@1 zUIStaMop6hepl(2|M&>AKtS%}OEs49&0&Jb->btzw&chM$B$_=j{8$29XCJ80Qm&i zrtI>XAI*koa7R~QR}vYR?;ixf0u+{2t-X44CBTtNKpJqvTNcZA)9cW4-f4mYYHrh4 z(d-q*XV0X)C;NOU5QzF(U#I6Q364qA2^}z$IolLfBU)6B^_I7v^1Lz#x}+pcMN2tksj@3(O+ zPCa0UKVmq5r=R7TvinQD@mmel&i7-I*NxlH|3OEh+W7~^UN?bT!1vb zEeD*$c~M@0m$zSHm{a9

wo=00IEE#zT2c$vscuB;%XoJQ~(w0NwiSMeE}0a(gv* z<*VFY1b9{Z{EhA|6#C%weJU=bc6Whf>%j40Z`a*LRJU1Hs7c%PMorqTH)_(n-jvj- zY$ECa`wRlyZ`pUb3V-bdXGxWq=R+e8k4ZEU@OHsg+EaKV{0Fd8_|IEH!eMP{7%bZg z{V;&P)V7?%UrX(cW-xv6Fv!U=q`xCA%}$8qfd0;S(l zT$)?{q1q~9U}`GxTpI2FGAW7mcGAKQBKVcKmf;R z5gB#H`lrOS6Sy3LTco|AhI0oF!Z<(~g$sWp>I-)blJXgT0^rdjkO^vEF!r0c`0A5{ zu2i4u9U<(ZnCS$O^?-#$s6TFo=||bk^kcmr(B~2D-lS&QbY(}d=alJ(M<|DN2C(-S z;vpISfkVfb?_-R(lJPBoca!IW!lg*iHZOf`j^ddr#{XvU)7*SF0~@ssuuK_-ZEj;YkmOlF}fLS8xY=)i^A-tj4Tw8 zP-AdDcL??hQ4tVYKqjHr2!&8r_21P$vTreXW2{^?B%Sn*S2;?xLdz{Vp?-2W9Hvp& zVmKV{9bYHMH4{Zr?P|}p>jsWzxmy-KOH{Y{oT*6*CeEZLZCV;NVI^T6H>XZ(us#TR zpKL<8;>plSxgweZ2eaZp((P&`%Yz^d+jrgVa$*tHZSE&(A|bg;02tInn*ZCIkgsDwa1uGO z00Wxkj~mmocs_K}vxp}4|Dl7mnO$I$PAt{(cA;2Bm2E zfNz68oEzaa6fIgpUnl9H$yS}B)hSw)ud7qEc0|#lJx+f4olvxRNIQ3wc8XS~XuWN6 z2b1J}}EnwTvPFK*HjWXVl9PGOlhOU3A-?_vY)tZFti zQnQ#Qx+^tvXHl>+`6!a?o2)v9>!SUPD{Gjhmkt;+Wxk^}O?Zk7AW zBC1;efZU`d28)}J2V;S6YLkicm^xP{U5U9xVe1y?N-C^MMOD3VP}R~p8F4Juh@= zw>-muE6+SFg1sR(;JyRE7*~}YA(#wF%`-C0Ix*kORXSz$XPQXRTT_fNyO{4T=DRg` zyo>qXT+BD`aZ(d^!k)_lhfW${^MYRUDDCXIojv!B?YYFKS`|0sGm7MpmD-kVIF>7u zlh*3wN>sfnpFCIPREv_yOm#~*0yk*^(r}ZOa0G6$DjeZ!T1;*WC;)rAvCwZO)ze7V zVwyA!NeBWcT$)60(1PTA^|t+!RSm`}9|NnoOA z^E^S>@@*Tkp!-|p+5(Ct)vaohY!XO8da>V%dudi|s%IzOBzT6Y3$#+6h+CFAst5og zQxb0qJmVNx{M|Kn9XrDuqEjg^rirW*YwAHAcBaG5+{iMMKLK{8W~l2yO(ZVwAd64Z zb_xug0J<}Ke6@^0$>P23k}>Kj?w1G<)TGUzOHDX5Z$74RqcR4MQ70LLXktk7e9jmh zWDHJZOQ4vY#piONhd?I-L6bu|8ACuVM3p}u002-8Q0C7+8b#?4Y7K$s3{Cw|3aXGr zN=pUEm5=d7htK^9WDG8_LzRn^Y(d*dFZ)GvZ?BduLU5OvPOxRN1yS7+*<(|aHraxj zXewLq7_PNU-b_VOU~%iCPfaTZZ7RJajpj~YDQU1(+1e^A22c)%q5No!i@`Z`Fh4muO1Vq)p$VCUl-J zP^LENHLel@=%hR`w`h$_<4`!tue7t4UFHy1r^~y^A#3VE9Wt#$ru{UQU6rt>cP5G= z8j7M})8#F$myFTelI8TjpYm*SzcB+Z&yh|t3Uk|18D*0OUeodcMgc{qX|cqT*!O(1&scU+HkB|hC5(@QxC9Gt5*5Yi0Jt%}i$#9WlkcWX zCYc+#aeTwvB_CPLIA-q`&$3+8cdhLz+r(7M6@EYn=Gm2@VQLZUKb|(1F1mBt9$C{epd5=?Wt6e}@S3}as z1kW_R>?rL_@SO?%ZB6jZr&{T~OcZUN6?!jdVXkS}V20l=lr>W=N4Z1`qk*+p>A4ru zt~EnhGj)ze2qvb9>;jq=&ow`I76w-Fk#v5)`3>Q&tOV8|L>4KX`Txoj~^0aCuUGM-5jiif;TbAOZ zb#U8b#DE!E;5JcYzJcSOAOVMIf0X5w;~u;>;Nxp`+|&Fl^wl@sJ;hJYEMjV88<=5{ zPP*t^^__Gf(aKAG^?y4Y45rDs$_$fpz5823*5I9P>Eywm+3KrhjllMN8z5ENC2J7X zEuLUsHF4U+5$Z)Myi3FpYO*|8sEXzKBudOuBGSH)X@ocBJf>0GzD@!P%^~~bHFF+^ zmK$2;^TW4Hh1Ad~e2Yp)8nSXE`CDGWbIeSoQ#Ny^iI{3lk*4z;cb?mZ1udMNe)@5Zv~bSxTay7TcvL?)h&iwZqnjh<|gb1od@S$M34*nbC$rmZc2k< zA}x(HD5i;x;`18RUufcmh1sk5s;mI&paS|<(pGz68DLbfJtvf_U3*~$f#U;qLKT{< zzkp|9X!P~{JU^fZnYgsQSb{R^%eIG*JaS61ztp6vP;9M=Fq|J)ClCj7Dqxp@fo zQ0obP*7n`m=e+C5{!q0K0@E`bE1Yf5^<`(Do4!oFWBFu)s5)w-Jgbd>(*e#+s*lEX z*YgNrUv(5Zp>KMQJ^O{GJ-+q}W@tkEgab-3+QVxv8uc}5&pCW`mH|v~W5PSznOh#$ z3v9!3oVjmEp7HFt*M2(4`R231)UNBFikWiyC6#%`vHUk`Hlf0n=&R4&MxrHI`4ZD z#}HWHtOx#k-vblW~h^h$=srDP+c*K4G|Hdud}Q?&p}&IQM}`u7g^)$A^9^G{a=kDs2Ery zI}x)j`NGz`+dGV6mkRc$Nd*DLqbj33?bBn zb@q9_B_kd?1LCZ4{RFi-mY&gc?iuTIpX+@piTTMQG{mDrD1e5-w4$XkcwB z8a0tJTYE1gk1wzTEBy=H09wSJR}-U?#>FhQ)H1wDjf-71bg4f><1)3W9cs&9bI67% z(R0>o$DT7&=~VWHX`*n1HEqeAzSZeloxY{5zE!`UA-Xg@O5*-E3^m1I(+iOoP`w*a zVMkGt6zVa)P#+b*2tQ*$!$MhDUEP0I|H!_@;Nt^y_`dfwjmyW6Da0j+{jaC*dr%9e zfZ`;-n)`6L?i=qV4ZR+SSLGxZzoueR=27w+G9Ie@!Pz!Zv#oOZD)v zrBfOYrs-uzX{T>331*DTjPjo*;x7e)lR z%kr6SNkkA!^jhg#P2qN>zQwVi+Xbp&s#`!c+=Rkw7eRKpNek|Vn=HrOu)nLHr76Uu zNf7A-nC`=a+O~cSF{g@AJ!S% zr(13&wg{dtdOsUTJX0XbGJUCek<;fDTwA<^I>C0BCR&(I)hf@^FXFDAEnK?i<-IEs zIF!!Q%Xm1NYXG8X9;IBaR#^{@vLwq%cpcyTmgOLf%Vz+I$M9Mi?+kxKoHP8*Y1;9p zKEqEyWzA732DL9hxzt9+_v(`>p33j)9iic>nCS#_#zRCu1X#;(>*+_?&GcivpX0bd zNvBE8wCT!@U=JFYkzVd59HAW68Hm{NeIjc$;*{ZwlV~80C%LQ_hup_I%%@tFaA2Zn^Q>02NZ{NuRjV#0FLp|?B;BS*Q7_B&C@kP1uZc}4PdrAQlqcqv zrCzGPFu&K*=t$lJq(s&5f3E=l(v$$4zP?JN})PuU*3rdE6vXy>A7F4VUbsUuu z%ko`)D6mGCP^3LMe-Qayl6_bCUQp9mTEXE`u$itN9m$*9)ya^{L_J-)aC|>>ob4(< z8M=zuLqS@ta!XsMhw8byQbdu6mx`QI$)4QKOG6j?IC z#XjimvHj&}Qk2U0;#^wGi`fX`$usUq*v?f|D(YRW#A^SIPCj3C*nP zzLWOIJ1{!xv~?EcJ==E-Nb=|h3gNT|9AZPJ)zE{_e;~s^!b2N8aZu+Hucdu}HA5y@ znrPYIMaFhlTnHt~Lu>qUP2j(R>kT<+x>m9Yb#yd}lL4^z!BX*@`l^ZLYF93IUAT%A z$V0)oqSI8dwYPl6zSWyxgb)O9Sw9Qec@|YW#eem1HEJ zay>Dc+$pPeNX3-$@I!y%OLqvQ;;kh~-r)fJih*@9KQ~#VA)}0MJ`UnC%Rk2h0T=3U zdW}HxwEMa*tJ7eW#L{W7N{VC&4mISf@)0jk6hQFE_#le%BnIZ;2WN3wlRdEs6bV&N zpr(ZS(qR%0)3MC<#$C%tA09u6Y%Izg{rJ@OGVYI5DPopQKWBOT2T-y|PhCTUJxWBB z_P*XTiceNJ=Di(grNA~f_e%44l^cG$%3xGvOGSOLfxK$dqUKg@q@KH?A5!X;hJQez zN=(o2TUN$*U?M?vsQ@1;K>VPVMj@r~4Vc-hA?j2|qavy&k9ty_9#%{c$6T$VPK6IDqKLKDlyADA5V)2*q*8@|nuk1fNTtmom8wln zhuJPbm8N6TNLj3idf92(ft5P2(%XWSDn`}HpIA{v+vh3z7*s`r!fe}R?uBtGvRmxE zRht%rZ`DRmi*H4qPA1=qD1z-S@|-A8k8&<-%I4dsHmIY`7vegU)qF-ZB8^SGd!k;X zc7sl_^0RERre4(9eLK7FPg6DKZ!(e_GOoV+Tf_8Q?Io>jzZF$<5j;WIplYkzCTui| z#4d_5tqRGuWd5nzv5bAB(T)X_@YVh&pxg1J#`%W)0Q2u*SlJtG0Dt(CH6 z7>28|wOZaQMl>)-xmw8xO^)g`u1@3XG%j&^453NtjNO6UtJMuJZ{{6wc=2iK?cQnH zX=CGL#Q!5pU zS!SsU)rg|rR78X8299UBlq|58?+FuAywESDQ5x2YN3;rO;C=Nn6kr$5(1kPnG~o;< zkg~HG$H1FNuQ&##>gkvo-w8a^^R_IBjYVX);$^5!tKpa0EKg9gSrLPWsg;O9M3IAY z0VYNV5yNpUtd?aEl{+kAFbivCDQNP@ns(Pt#OOqfpGL&^+ZU+D+vA*Pz3i@c^l2`7 zlJ7l7FT+N2w?DzKK@nuzhUBdWzAbYTt2PS$v!cy%lrec9AwOOk!7v|7Phhmn|8?FZC zQSc|*T;XF|th&!nzsuEIbgCO(ZBVjNta*=j&g9OS{L?s-p`ca|Q~UH9CADS{Y<#Eb zW#nz%2&<(I8)`bcA$)7QjJ!;Cn~|5>v>9-@&2j_oMx_oW&(ulkV4{{=Znf|wL-lgo zupDRSA#A)JmQJ=i6Q>X<+YWF>c8@9U>(n<(80UP)=KDLs%Wo2 zLFn*&2Qonz-j)d+M0Q)A6Pwz!rK{vN491$zbFx{XgNLb=(7`ODx2YpE-N14zm$IDf zuBoHqVXcIYCX;lgjt;%n8&2W@Y^Y3iD8jS(Ji- z^Sw`bHfdIyH+iS)mHwKkBBbyWWDei6ZQFIX%)Me0*=^YXxJ{dTh1;|t-nh;3aK57` zeTX(uQQnkgzbgW@x^$Salw`8zrDNKLX$PKdf$c;cS$94p8guVV#~B15Ek}Xn-Wh@6 z2qWx!zS-v^i&jgynI*>XBj^!Xew0K-aXJub8Q;YsKj_JKr^7VM#ie)TZ1-~PAgm+)AD+4wQSlojZ?5P2LWa6S%xhmJr|Ip|^ic|18k#P~(W z3Z2mN!6U*NOmhjfa*;4!z05^ohOjzr7}!wI{w-->HAKiB)N_H-&AME7pDik(32c_EbgL7 zQeNHXaVZ)v9@A(X_h*O1{A5{n?-!Goj;rq?dqNT`$-kfDfjCK`Va3NsS)PmHK1&C{ z<5$@v?+exPp!erpoYXUWUF1O4?P&_wg)~a$-+zk6^WUwgS;R;Swv3vZOOXyluBKK^ z;1P75LrUv8qLL^TklwnCV5z68D`yDS{0{akufe70i}*nlA0OZVsP^|cZ2KH$_wQzGQYA#ywRPycaBDJGJrDxH^APM za{|i@9LFu`6r2oOyD5LG=0MXm)CX~pP1}6L6F(KKg+ z=>?%-`|g$nPcGfN^(YA5zfuk0<T7u;qj&|QOd zMkgRGnum^~GU5shbNP&2!G zwYiDW2U~`#VY1tBHQc7nl*Db?us7U>rRI4zn5uAnh<;IoW077_bB@ZRAsSwlxzuL9 zre!o7ihVWWqeapJ*-#IJ?g>)a?N_>)~tQ+^^2|Xx@m>qVWNnc z))Z&DSW1*#@+f6RR+;N$WwL^02W3>LRVzdLAsjjHdk}gEf7ff9)dKHoUoiGV&+s8) zQGT)ZNyaW#@9G_aeX9TiaHA9K0Zdp9^)mf99|9>iG47+T*ct^z&MapYDyeg^HQwap zLfDB|%4$qH`G}aPmz}0vETv8=pmJE$Buvu?4X6yX7;tbmqXn|}jyMAKTa+^KNX4UB zsfoJiz?7L*m>ka5y)uiYIM`WTH!a48p*`%)Jxlq+7fQZW_-ks&D zmU78T)$!vb5&2;{OhoZHmi#q!!o2VO0Y^vOTLWpkfCI6`>u6dt$!knA*vAu;=6lBd zvsV7SY6IvbD9rFxr*?G}*D9r~uD*3@*A}Z?eDaVbY$w#NYD~L#ns#ber*^%u+Qqv^ zuNv1g!pIZUE<1pHp}w_kY8R2+s&=V1cB@K7ZI-K48;$Goc$iu#Qbg2pMT+ntO6Ay4 z#Wl~eT+??g0(aDWQ_6$*B87=DY75*_VEqROB*_V{2#c%hXbor$@rbQeQgUWo;*m9# zq7GWqL2G`Ru&#f<6yxkcsA%&4mp1a){QDHkfF@tw@_J<}pV{-PWe?vBEywjdXS-m% zOmuyo!byVbg9V~vz4b`?>A=gWjbA*1QjNV^AqZ2@eKpO@*AE< zOZyCPjj4^v*EHRIJA^*~Kme)7GNi?qaO$sN@#Q7dswzAaMSQiUaMJ;8I-rfQ--g%$ zzl>o56i8kosA@>)&lyDC#rKJf4@HkLzBqvxuH#7#m`DUr8vDwVtlZsK0F@LBT&jVQ z=A7YD2WD?J0F9P6U{m(u7Kqe~$C8#Uw)pZUr^9R~EWXv4bh7v|Q7=19JBx2;@qJ^9 zFEgrMVGc|cZJ#G-U6vPkp50E>deifZdEg=+0IL|A-%Dt4pz|*wP)0d0#B+I^qJnWGFZLl2lBj- z=~y6(O>~=7U}lvrgc2FmL9l%9?h?wT8q@Bbrk&2!>0EEEbCE2f7s_Tv7yl}hVG(@&9jjc-j! ztI)6{VM3QBkFw-_O^eBG(a+;s(FE@D2G`4+F|)&;B5622#Ht%xR+u3O6xnSV?zoM- zYnDnQs-HFhF!#gQ(`A|RE+)50Tx`yX%yim%i6z8eOKl&UOx0kThG#o4anDEYV!;Ix zvo@QnVFtJhd59%)m*l|L@FFu~X;n3XiK6_KYsxa67rFBycV1*|y~w=DDe`kCkh|5G z^wJC)*YujFY3D`myvT3tMdsb(X;p)lsUl%ywc5p%O1BKT%Vf8Ch^dX&X5i&EZOC12 zvkJMZYA8~6a#cYQCG$-r%d4hGCk>2=VvoIEp_5gCOA5|;4vaU{MFq2^#sx|LRC;pL z3ilD!OQ*qWs9@D*&`D^R;jA@`B6Fms7#ou@?c@U5 z-F$hx9$J;6WTJ>k*3^nRAa4ic{b_)_GWfm+l>v)rD2gV|hPRVmsT!Cn+T<&x4aJ4P6oM1G55gUv@odUdmg6FqmA?&^RF(}-`Qd* z1i&GC`zu&~tA*7GfKw4g+_t8i(^-Ez>u+cM)z$i2ZE`xEcL9Ji9g{}Z--@W0ou-}j zx3m7ft@XEJRILCw6;-r-o}iDpA*L)3jjf8Xva@IS^5_a-AO56|L-wR*KW(T8Z4PPhnnN9+Vq&H}o);L3Zyn?ewrt X4|{7pjCPNsQy@fjPLVLOL=XF46PNq~ literal 86320 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 diff --git a/PubNubUnity/Assets/InitTestScene636701216939524710.unity b/PubNubUnity/Assets/InitTestScene636701216939524710.unity new file mode 100644 index 00000000..9921f9d6 --- /dev/null +++ b/PubNubUnity/Assets/InitTestScene636701216939524710.unity @@ -0,0 +1,355 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &913135205 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913135208} + - component: {fileID: 913135207} + - component: {fileID: 913135206} + m_Layer: 0 + m_Name: Code-based tests runner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &913135206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 913135205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1619214696, guid: 53ebcfaa2e1e4e2dbc85882cd5a73fa1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &913135207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 913135205} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1751138608, guid: 53ebcfaa2e1e4e2dbc85882cd5a73fa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AssembliesWithTests: + - UnityEngine.TestRunner + testStartedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 913135206} + m_MethodName: TestStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 936316123} + m_MethodName: TestStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1762771413} + m_MethodName: TestStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.TestTools.TestRunner.TestStartedEvent, UnityEngine.TestRunner, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + testFinishedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 913135206} + m_MethodName: TestFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 936316123} + m_MethodName: TestFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1762771413} + m_MethodName: TestFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.TestTools.TestRunner.TestFinishedEvent, UnityEngine.TestRunner, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + runStartedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 913135206} + m_MethodName: RunStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 936316123} + m_MethodName: RunStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1762771413} + m_MethodName: RunStarted + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.TestTools.TestRunner.RunStartedEvent, UnityEngine.TestRunner, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + runFinishedEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 913135206} + m_MethodName: RunFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 936316123} + m_MethodName: RunFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 1762771413} + m_MethodName: RunFinished + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.TestTools.TestRunner.RunFinishedEvent, UnityEngine.TestRunner, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + settings: + filter: + assemblyNames: [] + groupNames: [] + categoryNames: [] + testNames: [] + testsToSkip: [] + sceneBased: 0 + originalScene: + bootstrapScene: Assets/InitTestScene636701216939524710.unity + resultFilePath: + isBatchModeRun: 0 +--- !u!4 &913135208 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 913135205} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &936316123 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1026517869, guid: 4113173d5e95493ab8765d7b08371de4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1762771413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1703293177, guid: 4113173d5e95493ab8765d7b08371de4, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta b/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta new file mode 100644 index 00000000..ae8e02e0 --- /dev/null +++ b/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bc1c1270a57aa4500b518fb06b27fcf1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PubNubUnity/Assets/Models/Server/BuildRequests.cs b/PubNubUnity/Assets/Models/Server/BuildRequests.cs index 4c401286..8ac507fd 100644 --- a/PubNubUnity/Assets/Models/Server/BuildRequests.cs +++ b/PubNubUnity/Assets/Models/Server/BuildRequests.cs @@ -158,7 +158,7 @@ public static Uri BuildPublishRequest (string channel, string message, bool stor return BuildRestApiRequest (url, PNOperationType.PNPublishOperation, parameterBuilder.ToString (), pnInstance); } - internal static Uri BuildDeleteMessagesRequest (string channel, long start, long end, PubNubUnity pnInstance){ + public static Uri BuildDeleteMessagesRequest (string channel, long start, long end, PubNubUnity pnInstance){ StringBuilder parameterBuilder = new StringBuilder (); if (start != -1) { parameterBuilder.AppendFormat ("&start={0}", start.ToString ().ToLowerInvariant ()); @@ -181,7 +181,7 @@ internal static Uri BuildDeleteMessagesRequest (string channel, long start, long return BuildRestApiRequest (url, PNOperationType.PNDeleteMessagesOperation, parameterBuilder.ToString(), pnInstance); } - internal static Uri BuildFetchRequest (string[] channels, long start, long end, uint count, bool reverse, bool includeToken, PubNubUnity pnInstance) + public static Uri BuildFetchRequest (string[] channels, long start, long end, uint count, bool reverse, bool includeToken, PubNubUnity pnInstance) { StringBuilder parameterBuilder = new StringBuilder (); @@ -639,8 +639,11 @@ static StringBuilder AddSSLAndOrigin(bool ssl, string origin, StringBuilder url) return url; } - static string SetParametersInOrder(Uri uri){ + public static string SetParametersInOrder(Uri uri){ string query = uri.Query; + #if (ENABLE_PUBNUB_LOGGING) + UnityEngine.Debug.Log(string.Format("query: {0}", query)); + #endif if(query.Contains("?")) { query = query.Substring(query.IndexOf('?') + 1); @@ -658,7 +661,7 @@ static string SetParametersInOrder(Uri uri){ return string.Join("&", lstQuery.ToArray()); } - static string GenerateSignatureAndAddToURL(PubNubUnity pnInstance, Uri uri, string url){ + public static string GenerateSignatureAndAddToURL(PubNubUnity pnInstance, Uri uri, string url){ if (!string.IsNullOrEmpty(pnInstance.PNConfig.SecretKey) && (pnInstance.PNConfig.SecretKey.Length > 0)) { string signature = ""; string parameters = SetParametersInOrder(uri); @@ -760,12 +763,14 @@ private static Uri BuildRestApiRequest (List urlComponents, PNOperati url = AppendAuthKeyToURL(url, authenticationKey, type); url = AppendPNSDKVersionToURL(url, pnsdkVersion, type); string urlPath = string.Format("/{0}", string.Join( "/", urlComponents.ToArray())); + + string sig = GenerateSignatureAndAddToURL(pnInstance, new Uri (url.ToString ()), urlComponentsEncoded); #if (ENABLE_PUBNUB_LOGGING) - UnityEngine.Debug.Log(string.Format("urlComponentsString {0}", urlPath)); + UnityEngine.Debug.Log(string.Format("urlComponentsString : {0}\nsig: {1}\nurlPath: {2},\nurlComponentsEncoded: {3}", url, sig, urlPath, urlComponentsEncoded)); #endif - - url = url.Append(GenerateSignatureAndAddToURL(pnInstance, new Uri (urlPath.ToString ()), urlComponentsEncoded)); + url = url.Append(sig); break; + case PNOperationType.PNHistoryOperation: case PNOperationType.PNFetchMessagesOperation: url.Append (parameters); diff --git a/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs b/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs index e0491691..18441d82 100644 --- a/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs +++ b/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs @@ -988,6 +988,20 @@ public IEnumerator TestSubscribeWithTT() { } + // [UnityTest] + // public IEnumerator TestDeleteMessagesBuildRequestsSecretKeyError(){ + // PNConfiguration pnConfiguration = new PNConfiguration (); + // pnConfiguration.SubscribeKey = "demo"; + // pnConfiguration.PublishKey = "demo"; + // PubNubUnity pnUnity = new PubNubUnity(pnConfiguration, null, null); + // pnUnity.DeleteMessages().Channel("test").Async((result, status) => { + // bool statusError = status.Error; + // Debug.Log("statusError:" + statusError); + // Assert.IsTrue (expected.Equals (received), expNRec); + // }); + // yield return new WaitForSeconds (PlayModeCommon.WaitTimeBetweenCalls3); + // } + [UnityTest] public IEnumerator TestCG() { diff --git a/PubNubUnity/Assets/PubNubUnity/PubNubUnityBase.cs b/PubNubUnity/Assets/PubNubUnity/PubNubUnityBase.cs index 06631a9d..11422f44 100644 --- a/PubNubUnity/Assets/PubNubUnity/PubNubUnityBase.cs +++ b/PubNubUnity/Assets/PubNubUnity/PubNubUnityBase.cs @@ -7,7 +7,7 @@ namespace PubNubAPI public class PubNubUnityBase { protected Counter publishMessageCounter; - private const string build = "4.0.1"; + private const string build = "4.0.2"; private string pnsdkVersion = string.Format ("PubNub-CSharp-Unity/{0}", build); public string Version { diff --git a/PubNubUnity/Assets/WebRequest.meta b/PubNubUnity/Assets/WebRequest.meta new file mode 100644 index 00000000..d1972e1b --- /dev/null +++ b/PubNubUnity/Assets/WebRequest.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d39810d6cc7b646a692c0fe68d890c12 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PubNubUnity/ProjectSettings/AudioManager.asset b/PubNubUnity/ProjectSettings/AudioManager.asset index 825ca080928058396683a7908f7322d444bf0ef4..4f31e74482c3d4d56765906783bd5e3145a44679 100644 GIT binary patch literal 360 zcmY+AF>iw~5QTSs#brpR5@FIV-e^hMp{Nm5NS&&~9OzPmk+FyN*Vln`$awEPeedbE zpIPw+Vke^QNA?06zX6B6^dq~UeY;a;xK9%yWE98o#T5eXM3niKO@Sl!WMu>}e7!ek zQtp*oI%@1^3CSYYM*D#zh;WrgYtwa5Db!afH`Aoa!V#4-c8%rKq1O(oiSRpkg=s@N zU2qi+Azz{k%36?DrzhWaWGnu?K$G-gEoSRH>e{fPXX8gF;ZdxRl5X|=l|7+j)B$5p q+V?z4SV-B>@N7m_IjJz^*35avM$__-|4H>)9YBXLOu6t35&Z$V&2R4j literal 4140 zcmeH~y-wUf6os#M1BCG3q)Fofr9vyM5Kywf5+M{MSc`38Fk@tx-C23<0xH+r(}L2Z zOG8V=14Ma)yg^<8bB1yu%bZ5r*$jykC8KVG>f-@)$2 z^*mOJ_mclAbCCtYmdI9i9@_)eR~I^w-bvS*tf!@8jj>VW2ca@r+IBE7I`O}$Ftv%a zb)+(r`oTb}E8qiruCX;xJ#=+c%Ay?{Zf8-XlOVof-HnqpQ>JUXe2b=@%?LfYXXJr}HTfDphgTadTxN?6yJ#+$gEDE9aP8+j2%t8=X3Tc4j!u3 z3T}6xphS}djMdNg`=7|&t;q34LTM8gk=ddVAjK=@k7%sWDq&wedSl>7Arkicg^&|Q zf75T_RXky@bbs@hH5SlFw*%){2wMn=+w}lg>PB(QDucGtGEdmdze^?JVPuWMD4LHM zS6VsX?!G82I${f>cBi?AkkrMM^S5mubt0^qX*Qn76iyX9kolw5f+N{$*Av zIww?VGhLSQePaCzK7cTGr}M$SG#c_l1s1dRFj#+RBlB+CbK8lnliLcrjTq~PRCLx( h2e^K51nB{@c`q@45{S-TVxBl{_PIFv#iBy4fft0_0MOTl58d6yt;N0-R_Ja|L>W8fP%#{G{%Xms8GjJM+(_eD{D` zbRO|VIM?4}IImrxPpDtVm}~5XC;b$tf_|1U-j{mTC-<`g#`*i!Xx^~zQzF3orx_7QAvEk|-ZBmaOP_wDkOp?Fdsy|E!!O>!%pC>VyfjyxxN#mWom)1g{_wzCzN_vy%l&HQY~Ut zq20g_|D3rcy}(ARzh&Hv(4-8nyLw*O_Z?wNes4(I%3Z@o8D90pT~E%figoR7$awarmqb2e7miLA3A~RhUSctzf@@c&~wWb z$Q8&H$Q8&H$Q8&H$Q8&H$QAg%71;WI_U&I3m@RETy;RyBpWzEMU-H diff --git a/PubNubUnity/ProjectSettings/EditorBuildSettings.asset b/PubNubUnity/ProjectSettings/EditorBuildSettings.asset index d767445aac8b60ef4f46ef1aef3576d2724be49c..0147887ef4b113c3a3b8da44ef30e3208f1e9120 100644 GIT binary patch literal 160 zcmXAhy$ZrG6h`+v#qCfhTav0vwhI0XibF*Z5lNG4xzZ-kCWDIaZmi>XzQak+<$ebu z7c4!N8%RO|UNtgU^3R#cwda$gac$YfcbF%3ycgvxv*0xU6$};jPX2ztH?QmJuG2Gg*)EWB#MmMQJU)*;(kBn8HfUAfJ$#Zcu~xsGxBVHf#2s>R zpWk7*k1u8`oY5Y+%!7|r#%q34e@-wJ&*G5T8cW^F(^2X31Mb*lss1tXR6I9wS7LY- z@%+f$332OroN!WiRZsr$EI!DJtfkEqUB>-Zhca{h`?Mf!$oH6w&j`|nyvkgBR**L2 zN6f|N1ZmYUPHyk_dvQCgMM)BOT3y_n*P2l$>cR#@o#3J!g}4inE3|rXh%iWkvtpwk tOM|#Ih}#Vwvo;7emoCnn0!{&^fK$LJ;1qBQI0c*nP64NYQ{aCq@C%#jVbcHr diff --git a/PubNubUnity/ProjectSettings/EditorSettings.asset b/PubNubUnity/ProjectSettings/EditorSettings.asset index a8b166a7b62716ae0f5972fc4b758c41e9464fdd..fc568694b6efe1bc3e4fce0804cf46aa3a897846 100644 GIT binary patch literal 672 zcmZ{i!A{&j42JJ{is3*{-4&rlsL2VoS&GCiQA3e>Lf(wCoia0yJPrh&zLRVyply$1 z|Nd=%p2MGKt1Fex)8z2x>_Q!M2TEX@b>7I+Cq1vpeLOx&(=3_IW8LJxLH1y$@PfQB*{W+> zV#!pr(dg9*1=P}53}aC>xq(Ed6=}@W@tC+W9t*FBVV1;ee5`6Vt;8YHG5-}C=&YRM zFL*G-yV7AkcUQG+1WTyz@xSpB^x$36Bl3%7A@vRR(lIW`wTvMUzxeNKmJsAsx1V1V zJFssRyTx9+oa1|k&*StZ(?Ic88M&k15B RjNl^VOJ7=e+FdA3{s3#d=%D}r literal 4168 zcmeH~yN=U96o!x2-0w?(1|jVe1f_s2(nNcKPy}VMK%zn;&oOv$JkfZ=(;O7BlfTRC+GDn{m088-I{x1sd>i-gW9jpCc{=*yn zkFtjT70F%t@UKfBPq9m19&pPW{m-(7{&mS+`aRT-aAwv28{l=U_J6bGyE=8oM(kXg zzbt6>Vt47-<|=!}wn$CBZE|N#7A@v;W1Z|rY*Uq`hsw$B#Ap__!--mCZi`>3H>t5L zjpjCWJXP^)?m|{7Qn6OhD57LZ_znaB;5BE^Fbi?H=8z#9M#`>h_H(V0MYybcN diff --git a/PubNubUnity/ProjectSettings/GraphicsSettings.asset b/PubNubUnity/ProjectSettings/GraphicsSettings.asset index a7d5b6c5c1c68ed468ed2a0ac4f27b982e6c5208..74d7b532b092680d2b87092007e38f2cbc6b3a00 100644 GIT binary patch literal 2152 zcmbtWQE%EX5Ps)ZxDVYER0#~CVODi{Tx)%C3l|v7ZTM^Imil%Cy~eT-R@PI-SDXbI2RF zb*HIHSZD&UmWkN-Eke@er`2}|?LCX&mQyqm2h9dFqntfK^a$E8DSYB~%jIKOgVqog zn~Uu;838(XUqM16&^~!yGY*rnPX_PWB+gibVNag*$#0Oh*OAZnEz`_dkyOwgR;p-sZ+{pSJrKaHIv1WJ>tnp zT^G#jHw2rqII;JX%bJ(cbs8gqFgPX}Y9lpm;E-=8 z&ZsT<^@t~3Ouha|lx+KoE=QTMGJODn^gCw?I1|XF2O8dy>Oxat6kcBu=7H32hDBT%iVBT(MxF4ddu|^8rB3Ic0@(m2r+8W2Q$kU15_@nJ&0uvom;wl(~z$qlEH@B sFqw$8#FN|Iys~QZ*+3O_A}mrE{wD0Zd+?7WmwExI0!?j(42SLi1(G*o;s5{u literal 4442 zcmZ{nONp_!dweDvI)26c7<+A1u4Dg9E#u;$y9usoiPl=^nd#++B^a zxtN&f!J9Ffz{P{{WP&G6Nc7;ri;2c~P)~Z&yV1n;|F5d<>FHU&O-)z*>Z|WxkFOsq z#JazPxaEStj}YtE<0=OC?mM`9|L(oB`^CRYOG}Oeb}u`YmOl9D!>iY-6GwM^xwL&| z_R5(U^u2x|*0LLRP>2LWmUJT#!olCiD@5{{BNDiwl@^D3Vh0K}`%q{OYQG@HAnNpA zK?oy%0@pDVYO#;zz=QrzqfR!US)%!F=st_~YLt~3H@XsS>aIee6?Hj=R@7Z%aF6Z{ z+P7Et#*7=?d9ffy*=Yb_an5adj|@wsC%cuJ-T;gyj%Bf9ivzGo{SsaPtm6CMig36cay>`9YqQC3D-mO`pd4B)*WZcZ>545Sf7uV(HgLy4GA3kqroDUyf>3sHU z+B=`ev~TZx9?!TVj`xXVGah(c*MTgKdA_C3D?Bfu$vAyod37k`j+jQA12zu#ik6;l z8t1TPy>Xt*xTE*8j5yr?BPcXJAAZA`)NTByG~J@(U&Ri-ZvBrI_#2iVEATfhFJ;{5 zUbcKlbEC`W_WPC(=Q#7~8aU5!ggl{tcV3N>Une*BOPW{5$zcQFUn2(3aVy$2$9e6Qt`1%Al# za*o3%IRy@Rak{`SSDTl5$MW+TH~Fv%FLv(RGvqMlA@c#}s5#%;w3P3({5gX)=Xy)v+#i0w(CAM-ZTa&C zXWX~^g#v%u@)ryI6U$#J@UJYNDe#{yf4RW_v|JYW-9p%Aab< zn&Q}Co^Vpl$=YH%0AN(L;>PJ9Y)X&)<$%M_BT5ize|N4Ck4rDmWBq8%lc7R=$eWjo z(S%>~+I3YobEAJHR9=9EWhl3b^D=a$ACCl{ouyt@D|BNOVMem;#bp^QIC+RP(vISw zc~<$@rHb29p6gS1I+T9Y!X*6K;#3gEdaHWz(1II@1+gez!x$Uf#KIYH<2tw;RI#JQ z&S^JyI9-kA3{S8=EyFn#b4KtK{3)LF@w$s$ghzJBQ7rws4DIHeX-m(I7X{XWHKy}w z)I+_dP)VdoQ=OO?shm3($vGw35vG|QaU~3@YB*TH^`bfS<@!CuMr3x4kDldaRK?Qu z%!!v}i)chfwe-w_dB8}tLT2Os!C^Nx$)lHn+@uchLf{~57 z;YiS|B0qTVmC)@bJzCcedNkz@Kxc1YT9J_b!6nfYk!v^yU|hVf-WOULV%6xwSn>-=*L yz%N;t_RZD%a&>2C$7e&Xp4f?SY-70Nb2*)$joW9(7?0(ClVj;zi@i>2S;v0>4cprQ diff --git a/PubNubUnity/ProjectSettings/InputManager.asset b/PubNubUnity/ProjectSettings/InputManager.asset index 5342fb7f6bee4d48624dff0508f686c868478b6e..17c8f538e2152c0a0310b4870979eeecece2153c 100644 GIT binary patch literal 5793 zcmd^@!E)0u5Qgu03iVJNfVhc@ zr@ij3Z28l_t6iU7O{O1MI0^@+pC@nGNp->uPoqi-vl=I(xX53g1z{KshQnd)4ae+7 zICv+^%1pWBDX3_`SpNOv{2F3&Ard&xc&Z~7ShEHtcqZ;3`2tFdLPqQiqbIkZ>vh9j zA!F;PA35VWMC_ta;;xW}XJ}49$4Zn&EP?!6R!F(ym5u3jWlX(?41O3~Ru)>+v8_Xi zbU_}TnVGYS;}Yxmc7|orP{hd_-_baU*e4F1V_sy>3&}t;3~ugN`0jI~NM* zP>!Lsow#ZNve+n+^bW2430huM8X94&(S<=kQu(Xq)=?xoTH!@@HNZN}8S@L!a%(xc zx!T%Y(Gfp7-Cpx+i^$={4pF%IiUQON(bU1t3Z&!hEy4FyP6f%E0CmY@XjQha`Y^t? z(56^hzTqalaXSpzMw!D$ZCtB??PBV(^REg=Q3qVCgzD;un4wS&y|aDbd`wz_Q^+SggR?p&Wwf9n#YlYVer>mxzW9j;5T z$(yI5LH`}D3y{w1$w=_Bn&*P%M{mup0#hmaVbXz{3!a*i-d4lM01487YA=g@r>);3 cT5s9C;WGB!5!?TzyzD%xx+0_t=zoCx1tJE>g8%>k literal 5520 zcmeI0%Wl&^6ow}>E%#fY7g`GCepyr$1V~7LTS`?Btw0qw2?@E$v~@}B$aZ=Yi%4v` zf^K*KgwzdU(+xYGpokS)gv5@AApHM0jx&kV?vYP4nmPZ>`DT1Pjyx8kH6=vHsu1F! z5C>2RadqI@z~J}eE<_0- zW#yEFNa45EB1-EiQA$H3Dkv%O13IxBuj1ACZK**pSg5z4Unspr{6wo4G32n&TJSrJ zdJcUY-%7E>InrVbV?SYD>TOlMRpW1mo-#PTP2=yNu1cGD1S0wLcUJX)e+)kPyHE%7 z>ipdtZ#44vP*+9gGarE-@CV?NzYldBe?P|?jeOq4I6iK$#vg@Gemm+o{vnPx8u`q5 z9KWNg2kUH&Wq zKKZ=Qas1;PZ#44zsjH&%PgM1^_yFPx{4~l*6dLy}bv}&LPf>)0`g^pgpQZ?-{s7|< zqvkuK)JR{e=x3=LfzIdXGhA}cq0q>ozK%Ba^AusB{snF77bwE+*@dD%ZrbLIbVdH< z(4zDLZD`T*L{@qk*DCndyqqxeQuF1ES=H@|GhFn2#})<0v)EU0&741>4}kJeA2Z{c z^OnDa8O*Hkq^$rHJliY?%bu66FZ`u~6ebro=PXSW^D0xkw#Zi1A4lXTtt10U29gXU z8AvjaWFW~vl7S=x|8oX-{^J>T%yF${$M(%!bhUi%&&g?@ugI=7GwY+~yR%uTv#4>n zFr4-`H(1xcSF?v_=_hy(w=xlx%&fCu^W0x71UwII#x9_2#^X9hEmz_jfo43LbDjMe z-wl_~^L^eadb0l#TFWEB8ka}3KsX`ua$N`4u9!G_uq)zm_N{qW7*u1-vEq5N*0dtl zGC6y5CUbVbm`AoEA(~bjA2Rs; zA(($M<2t$A(^)CQd!+@}IkhbHtqA?i_G?|Ja$md~zJ=rMZ8~8*+i`o7dc9TSaUqNk zuP59$^?Q-miNmIcP5-KYN*!<24ve_X?@`FC--~ffecr8^_4_f7sn6S-8Mhzfc>0{p zdHhBSKm$bMi45CGS>5e6-K`OSy|aZv6Jxx2Vo%*S zZ{DPD^QQe8&u1*?1YUa`-?3KNViwY<%!J+FBpt5Rb=VDp$n$;QRfBNAt^#iXA9FOj zr$WCWw=1+(WT}Zf#?#(Uv@KyqWtV^)LLVy%sm^@=)gw7%s5)1`G)#kGd6h`a? zK`wz)jH${L|=*C;#J#+RVV%IK|Aa_c`8A zBIb`q!(J~O^oR5aYSRpt|67hINlgitxFfWLM3gRso&Fh|qDXfXEfZzXk3`Rg@U zV=2_ubq)`p#3aQ@q4T=^Fh;?r%UsM0ZOlX%3mGS+V^L&FOeya%CA}V~AS*$RQOXr< zgqq6F_f9aVj&p!KsOW1Uu}Qb5d)OZw{)6+f0Ej2(~<^ik$B(It5-$< literal 4460 zcmeH~OKTKC5XWn>yNU1jD-TV497He>iFz}yJtU$bCIL?(o!xdbab{=PnH3)(;|K8W zK@br<=s_^xK|FYsoJG8N^d$NXvi|=)J!@t^f=q=@SN*!Wr>eRR+aks9BKtkTKaqWy zL@thA8XdbcCY$Yc+i?IMleXKxKW)^0eHgm+;@$YiN6$Y8XF$(ly@$(?%OWwhw2cvq zIQV;AkodhLaS@P5CBu=g;74K8-|RR3J}Ii-r+@g33dTCW7&a0VZMwL zbufIVp$TWcbFdlDt`5)UySu})`R=j22l*~TXFTJW_jde?=DRLz#*^G4znjF_vK$v| zB;`*mKhVXWT7IyLKePN$7k_2>;V!;z`H?RE#d6+1h4HX%-=H)8V}y`2&Y#f9`w1bb z{~ze&1B8&2Z$c*@B!r~A50^+jWGH#khyCEZ7xt3GU(c#&9877CY57}>NAC3^l z=DV4GI|-chTPf3Tr^wAHW%}*3<@4&^bserQG=nu=iI#K}x%FBos;N~dc5wZU){gj@*7i?W)OyDH;h!hqQ!UXi@N3pbw(?`s<)IkqdjlQ zeTbM-CE?4irwxx%MO7-Tri%1}rz+Yd{m0f{I6_j!1IU}MWO jg85F0j89{-xtj`riM)Mt?uxPO22QN&Yzt4Cz^(oTvoRh= diff --git a/PubNubUnity/ProjectSettings/NetworkManager.asset b/PubNubUnity/ProjectSettings/NetworkManager.asset deleted file mode 100644 index eef089ee975c36cb94ff81349ee780e719ed4d1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4112 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 u4;A-wNmZfH7jzFw7~$qO>P5cH*Me literal 56243 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 z

wn(p9aFVL=!VUr?&GEl0nRFCvSg=*4S1!sQlom|s|c0W>Ao@f$_pFoP=}-8eX` zM>aMuc6B3^!`;}ZIwIWN&u_-O>)uS!4){w0?hBrJS-!A(&&xCVe9E)I8^fh^W4D8J z)_%8|dB*@W(RfVQ{y2EMcEKy&&OCRZtx;lpV1;nNuLeD=!3e=`E4U?qn+}$1m`JdC ztd)jJBMlSVU;#}I%{E-BDQrd{p z2fz4mDq{4e6F*5FtS=HR%&*{W7ru4#s~d#)iI>LY0U)<0PfA>rR-n6m#&05B0rTfl zd305S8ema5haSqCGaAv4UVzv}L^vgy!_AhB@B2F%@43Y9t%gU|jU!>gZXtrfCFx6K z6-%bVax9UPzSiMo4u-+Cax==4=A{g{saqTy!Q&6Osj1&b8htV zEYASC9*gmH@j`tBB>bhSRh1ZU&!+OSs6LOXkDK!Ry)mlciA{M5mAEk;@hOe5Tt6O+ z#V<=$!!t8ptr;wpRz@DuOPt7LZxoU<2byD9-nsfKRaT&F$peh|%B2(f^X`tR{Juii z`$ zdp^*0=r@i%t7qopw{srhrrBR^SyiTE8+yq1Oq z0b*MEyLpjddCTwk%cbEK2DHc)euPAF?*QN8|2yGBnYSK?rew?I$y{#mS16{eKrgN~ z_O!AxOH8kMYfxm}Z4J_h4q5m!l)0=TjQdWTg1>GT*(^4~_?A5ByO8a!@%+4e`T7~= zeFMDO=)pMT_!8{cn-7oOd&O~!Lt zc(N9Ed-Bzzr%j!X-}z45UIXQS2$X3Z7AYG)AI{Iw=z#E zG|M}2bOWd0KNgCPMyj>j*1`dlWU{^^s@)Wf9n2jzwjS~H8%dn zJn~s@kkof{^Ckbp!tk5@bs&zt>~q{W=1yIMRGIq@&HOa?)&KwJ|EU_-@*Ud(|JDoU zfXGOhUP0_uoWuTiw*Rd*sZ%KXFSki}W$<$S03Bi@ygd*v=8MBRyHvQbzwCq8oX%;p zXUv$qpl|8YS<`0Bp1y4A)X8Cg41aPT*27d(1p9LIJ--XLItC2B)`Z}H_>*gfa2MB~ z!w=D)9Aq$9O~Q{^eG8_aI=bZ4_K_0~Uwy(UhaX<7o^aYoZgJPFlg8#P9h}2?JlvIa z#4+IiWQ*3{|HLy1!Alk%KWpLe!lk*6+`L)Ed9$*o3c5ScWCl=&S_s1rhqRKHs+5n_9M3ln>_O!$ASMQmQL331?O*g z%q?G=ddyQ#z6b01AUNmj*2rhB*PA!)o3yd-xbN@}>tpH~chK=}LNH;2U?RH>&xYM; v6y8hB+_^L6y5<1#&RaNtG94bbJbtU|o%j0hBG?8GopSgTPQzh3kv;zxX}2{Q diff --git a/PubNubUnity/ProjectSettings/ProjectVersion.txt b/PubNubUnity/ProjectSettings/ProjectVersion.txt index e6cd1f97..20147cb8 100644 --- a/PubNubUnity/ProjectSettings/ProjectVersion.txt +++ b/PubNubUnity/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 2017.3.0f3 +m_EditorVersion: 2018.2.3f1 diff --git a/PubNubUnity/ProjectSettings/QualitySettings.asset b/PubNubUnity/ProjectSettings/QualitySettings.asset index 50e78adadce926b088dff7930adcb260488b82f0..e3cf3536baa65899c221483562c98547e1ad4e5f 100644 GIT binary patch literal 6208 zcmeHLQE%He5PtWsU?1A2B(M}G!TjdLa9hBxT`O%i3`0SSXNMalY9y7|9roXM(n&Jo zDlOV>s596vwob?M$GiJ@$9w+EU@~UGNzi$IJ$T8U<cFju}+S{ZV>c4 z$H<+uj9x5p>?>T%ke)&dGFT`yIxT57Wi(5W81Wz({cvvM!1(7>T+cLA(cJrB3_o ztkk~Bje*ovmTGB>;o~+NA=+Rp~y z%gRz1W#~r4cydag-lsafO6RY2q1QbxKNm-AQ#^)8>|^oWtHghM>l1GOm}r5xXm1Mz zskni{HO&qjtX*!P2?Fhlr_yR?bSC3#QfM5k{)EL|&y}yG>LaNd>Q`bNDj{TgJ2-QUYaFH0FF0 zbL(n&^pacj-@8m{F0L^Yk&;F3(w}(mF7xFQOoYtsGg@dGx>NzjA8{)XB4MKA@ig}`bkyx3+VQ6EsONOU6udWWUdSLUR7lRG%ycNg68C6g#iZ)dY_bX%N* zvjd&CSD7C{XNvBD%&lbZb${B2@|=9Y8DKpW8^V(3s+ob86dt6)XesK-`$nb?r-z!I z4kH?pGuFtWd+FlaT0Dz-+n=+rwh-ZTT5zRP9OTh)e*=q`<9Z-{BhmW3Wf6|>fDN(? abC}eAUg-67yGqV(OBIipP$&iB@_q&qrywCUI8Kys2#uR{5^mMlJ5Hur?^^pvogR?6 zpd$4E7o@@gdf`wwRpP_}I3lG-#0d~WTwD4NV1D1(*|pc?05=YvcC<5}`Mu`1GtSHs zjc*c7HHqjxqGS9ZIz98+%xry@{_1o(xg3L6Ks%j}?tD8v^3CLxH%?ru+$hW)JI(ay z5YZ@xxx7x)W|fZaw25;3?~7q--^fvWgdt4DHAla&EWClU30)xnBg>!S9_$Q*wxKhW zo8=ZNICNq@tnHj+9k3*hAsVIv_b(Xvu~dG9-eTDj_hDx|<)az<6U=i(_#MmGzYAQ~ zF*?V#VITb?DId}DtK3ICN4cWpxQF>}a~pgTkW0ePa~u3_KrRW#O98(JkW0ef<2Lxc zfLy?@5w$<$HhBCNyZkf5`338e$bW74{XP5-&d(3rM~qXN=h^A41XNF*o`w_4!_gjT#|ggYj|GMuKfFkpX%cu8~#Ke|H|+u`}p^UKLuWl z?PI_E#2oASY4CQN}9a=l&;WMbXu%vnvIfsr(9K4vZ2r%P0Iq-$?W1Q$>!TVdqOWOl+;ffxE- zQ`IW*NI=33)uN+BzzLzitA}ObhpOfvI__=B9T^H8yDxAM{$OFU@5BCrEjTAl4PsqM7Fdm!e>p+U0C=023~JjB9*$kEbAh2 z(l^a38*8Oon);7dw?AkNGBC)%AOnL83^Fjtz#s$vrwriUj5{*!!z+Abl0ldW59gZr zY|~uii%0Rx>(>`PxP1A{&4aat+qZ5lbjLGl^vTt$3m`Z%51D7uhaa?)(zWsVp+2C0 zSh;y{pnc%Z+v@}Ku~eh!$T)V`NBOsY68S`@P$;~Kc9CnZAIxpl^K3BG#6H?Y`4VgV zBVX}Yl2a&g(eiEW14bYN+bH<%P?CZ#0rkk?Hjb7UM}=N&?@Ead@s-#}qs@Ga)Cy>S3Q{`Rl MGnsF=w{D^RH!SJ_(f|Me diff --git a/PubNubUnity/ProjectSettings/TagManager.asset b/PubNubUnity/ProjectSettings/TagManager.asset index 2c3af945792a3c72fe52ddee61a8ab85d0399611..1c92a7840ec11895c76785f65d949a3d20d53355 100644 GIT binary patch literal 378 zcmc&wyAHxI4BYz_W`K!S1O`wxBm}C|E>K=V2wAO(BH9F!bSPg>8W#S5#XjFzmhXn= zWu5^`STrn_8yK_$a42}Ir0Zr?QtDw)|9@f}-rQeNVMR#m#7jR)v*(VxOZhZ<&DwH+^TkJ}--=)AG(UA#g opN97D(%g31IH^ST<4s{h{Kp}H5AxMgy5cbLANwS9`Jk$wKKn^k?f?J) literal 4308 zcmeHKyG|QH6uoP&4GHf@c!&nk&>$oifRLid1tGCSK)eJU8o_#nvB$7p7w+~uD4?U@ zGg9#Zq)CzgNR!Puvv|dVYZ~UR?#|pZckZ4!v&|LB{S_H~6p=BE7(`ZoGlKhL~ z*l_@C6OH5B``XWi-+JkK=Vr0``C)4IX(`8L*qTU$EwKqA5eLt&yhH;4h_jR!Jm-`! zqZ2p#4W5@jz~->WMQR>Sb1?f3toD@8wWN-lsZ(HXnfZlGog#7L1=+<;)?wV2;t5Zl zo_zW-_Tu>=#j`v=5{JFy$#eJOImq1dYo0^Ijc0idr+C718Zmi}VC==y++vjQd9Eie z*cf>(V%F7joM^;+*XX>Cko6~0ypYj(5_rPDn9=zYapT2|&QmGw${p_U3t|_}bI|zR zEim|I<{~o$%aI%?|A*4b_W}u(-;%oOctJ}VC;QDHJlFnK5M-btRt-_ZO%rCXOO@N~F&jF>%W#n;Wio8MENQ`HIqz}RyisSqui2>bZM3SMty-5$QnyZhPy D3J0i~ diff --git a/PubNubUnity/ProjectSettings/TimeManager.asset b/PubNubUnity/ProjectSettings/TimeManager.asset index 0838e4ef1c2c998181d97129fe863478076acdef..558a017e1f50b2db73414a1abad3c033922774f8 100644 GIT binary patch literal 202 zcmZ9Eu?~VT6h-%b#bdxp2nAibbwLLkO=NL0&+9Ra)v?PFk?M^s&qb>bD7wiS>3_F(q literal 4116 zcmZQzV62p*h(nLs)uGdI;YF)uMawTQtjvm!M` z0VGmfl3Kvvn^=*VTbirjn3I!Vjx3QI4^k7HoS2geR}_#~RFavTlZwy|ay`TkU=3m1lple$9ul_ z?%neZUy}JFiGs)*u9GPllmmivAD2?#Y0Lwr^4q&n6vdwJ`|fodjmS;pZQT1rNeK*B zfGFhN#2z8}>tg$6u?NB7KBE>SqY6$X-Dbegsw2}wJ!o*=%fZqAwCYgX`s^mdu)sPkguz%VPUwlE zIKp4$%qichOfZVj==5T6!V_9xsUhV8l}_Io6eyImu|<|qrMxUPJ5ck}cHK;!SU=T@ zok*IUP%v{9%_Z68DrhD?U?EpXHI_x~;#&EPw0Sh^UH@5ag8%#YnKDzF!^~b(Gdq!7 dE5R?&y0m$Iel>lahNV3QrE@A7{C+}hPT%cs1Rwwa literal 4216 zcmeH}yKdA#6o!v?mxOz`-@+x_Z^@bk5fBXy_(XMUTvnW9nt|@r| zBnqf#=;$br=->?y??8!!IseSsv5B7md8Cs$=kxgY%s*adh=wMJcC8Z8Ztl4wy55{@ zwia9TCrJ{+U@(b4N%FyTS}Sk9v|fJu`u=w^{Q4@>alVABXg7#rz9msb3~tc7I>jFi ziW>|uPKQBvdF&JBsB0W(7!ST*J{uYdHZ`9ukuA->FE#roo&uy+TpY0s!y6$s| zz;kzi$Iz;&`G^7EnelpIy(7%^d>V!IVi)y%8in=p1`l|x;Qt=zbHj7tf1q-ry@2hQ zxk0ZuMPRS?aisIi?<4jNE!9c)@c>{O+@QCdBCy_r+?VMb0_T?Md{Q~lVMW(@s(%E$ zt$F@E83m8Qi@qIYT;|&`a1}-0j%Qr&OZuLiU{0Sm>W?ul(?1EWqNsl=;|6`_907k$ zb6@7q8E|g@`g2y}jHmvb18?i`_&xsQvcYkl0}VRx?HA{G?ghXYyy)9S#%1fe1g@gE zuFDzM`uH$Ff1LX=ef|)Y>Nmkv6!ozWnj1922?F&M4y|8&&-pu{d|2>Yxi;;4p0MS- zkka**BI-STEFyW&cf=s=JQto^2)l!l$1l1|>-8*)sL|7*6)is!fgeIBrxcHT73FVMe9E)BYtpr&oF<;?T3z>rc;L-TE0p~}i%dEB zVI9wU))mfN*OH5V*u&~({pgO>6SEHIQ=Sw0t~03TM2JC_XN!%?(Eh?W-SCg1YLx?( z1C;}n1C;}n1C;}n1OJx;H+ebBQU=j2(+v1o&tPS4kzrtSAkD{xJH Y(X??47LhuD!wwuA)5bZ@{b`B*FEb=R&j0`b From 602d75c39fca8bbabcd3eac9c4c0fd33875abb43 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 10:30:57 +0530 Subject: [PATCH 02/19] version bump --- README.md | 4 ++-- TravisScripts/build.sh | 1 + VERSION | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6aaa0028..b0bcd470 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Please direct all Support Questions and Concerns to Support@PubNub.com -[![Build Status](https://travis-ci.org/pubnub/unity.svg?branch=CE-2968-UnityV4)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm?svg=true)](https://ci.appveyor.com/project/PubNub/unity) +[![Build Status](https://travis-ci.org/pubnub/unity.svg)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm?svg=true)](https://ci.appveyor.com/project/PubNub/unity) -## PubNub 4.0.1 Web Data Push Cloud-Hosted API for Unity 5+ +## PubNub 4.0.2 Web Data Push Cloud-Hosted API for Unity 5+ ### Supports PC, Mac, Linux, iOS, Android, Windows Store Universal 10 and WebGL ## All new PubNub Unity SDK diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 1ca31f79..1b20bac1 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -21,6 +21,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} editmode" rc0=$? echo "Unit test logs" +cat $(pwd)/editor1.log cat $(pwd)/test1.xml #exit if tests failed if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi diff --git a/VERSION b/VERSION index 1454f6ed..4d54dadd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.1 +4.0.2 From 4eb208d2446e55fc25c2b9541ed1bb2959ce2fb6 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 11:16:34 +0530 Subject: [PATCH 03/19] travis svg file update --- README.md | 2 +- TravisScripts/build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0bcd470..798d2620 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Please direct all Support Questions and Concerns to Support@PubNub.com -[![Build Status](https://travis-ci.org/pubnub/unity.svg)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm?svg=true)](https://ci.appveyor.com/project/PubNub/unity) +[![Build Status](https://api.travis-ci.org/pubnub/unity.svg?branch=master)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm?svg=true)](https://ci.appveyor.com/project/PubNub/unity) ## PubNub 4.0.2 Web Data Push Cloud-Hosted API for Unity 5+ ### Supports PC, Mac, Linux, iOS, Android, Windows Store Universal 10 and WebGL diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 1b20bac1..babd683c 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -21,7 +21,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} editmode" rc0=$? echo "Unit test logs" -cat $(pwd)/editor1.log +#cat $(pwd)/editor1.log cat $(pwd)/test1.xml #exit if tests failed if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi From 1356f3bd99aa690fbfd51a918cf256115762ab3b Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 12:24:23 +0530 Subject: [PATCH 04/19] enable editor logs --- TravisScripts/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index babd683c..55dca7a1 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -40,6 +40,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" rc1=$? echo "Unit test logs 2" +cat $(pwd)/editor2.log cat $(pwd)/test2.xml #exit if tests failed if [ $rc1 -ne 0 ]; then { echo "Failed unit tests playmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc1; } fi From 7197b1e03e361eb57d8b18c7cbe812465fb371ac Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 13:47:39 +0530 Subject: [PATCH 05/19] increase travis wait --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc3af924..0b916712 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ notifications: install: - sudo -E sh ./TravisScripts/install.sh script: -- sudo -E sh ./TravisScripts/build.sh +- travis_wait 20 sudo -E sh ./TravisScripts/build.sh env: global: - UNITYCI_PROJECT_NAME="PubNubUnity" From 32245d26fb17872bf632276eed465b375466c0d4 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 15:45:05 +0530 Subject: [PATCH 06/19] remove travis wait --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0b916712..fc3af924 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ notifications: install: - sudo -E sh ./TravisScripts/install.sh script: -- travis_wait 20 sudo -E sh ./TravisScripts/build.sh +- sudo -E sh ./TravisScripts/build.sh env: global: - UNITYCI_PROJECT_NAME="PubNubUnity" From 95320830db2a1303c89a8d53b55d7f42560f733f Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 16:51:29 +0530 Subject: [PATCH 07/19] add travis_wait --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc3af924..4ec581a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ notifications: install: - sudo -E sh ./TravisScripts/install.sh script: -- sudo -E sh ./TravisScripts/build.sh +- travis_wait sudo -E sh ./TravisScripts/build.sh env: global: - UNITYCI_PROJECT_NAME="PubNubUnity" From 3aecbc96b88ba4d1a3570dae5dabb66d51d2e33f Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 17:18:24 +0530 Subject: [PATCH 08/19] remove travis_wait --- .travis.yml | 2 +- TravisScripts/build.sh | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4ec581a2..fc3af924 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ notifications: install: - sudo -E sh ./TravisScripts/install.sh script: -- travis_wait sudo -E sh ./TravisScripts/build.sh +- sudo -E sh ./TravisScripts/build.sh env: global: - UNITYCI_PROJECT_NAME="PubNubUnity" diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 55dca7a1..4cbb0fa0 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -6,25 +6,6 @@ # -projectPath argument to point to the right location. ## Run the editor unit tests -echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} editmode" - -/Applications/Unity/Unity.app/Contents/MacOS/Unity \ - -batchmode \ - -logFile $(pwd)/editor1.log \ - -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ - -runTests \ - -testResults $(pwd)/test1.xml \ - -testPlatform editmode \ - -username ${UNITYCI_USER_NAME} \ - -password ${UNITYCI_PASS} \ - -serial ${UNITYCI_SERIAL} - -rc0=$? -echo "Unit test logs" -#cat $(pwd)/editor1.log -cat $(pwd)/test1.xml -#exit if tests failed -if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" /Applications/Unity/Unity.app/Contents/MacOS/Unity \ From ef4191dbe13206e7f173c5c82dfcc69c1f9ad69f Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 19:06:29 +0530 Subject: [PATCH 09/19] playmode tests --- TravisScripts/build.sh | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 4cbb0fa0..602353cd 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -6,6 +6,25 @@ # -projectPath argument to point to the right location. ## Run the editor unit tests +echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} editmode" + +/Applications/Unity/Unity.app/Contents/MacOS/Unity \ + -batchmode \ + -logFile $(pwd)/editor1.log \ + -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ + -runTests \ + -testResults $(pwd)/test1.xml \ + -testPlatform editmode \ + -username ${UNITYCI_USER_NAME} \ + -password ${UNITYCI_PASS} \ + -serial ${UNITYCI_SERIAL} + +rc0=$? +echo "Unit test logs" +#cat $(pwd)/editor1.log +cat $(pwd)/test1.xml +#exit if tests failed +if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" /Applications/Unity/Unity.app/Contents/MacOS/Unity \ @@ -21,7 +40,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" rc1=$? echo "Unit test logs 2" -cat $(pwd)/editor2.log +#cat $(pwd)/editor2.log cat $(pwd)/test2.xml #exit if tests failed if [ $rc1 -ne 0 ]; then { echo "Failed unit tests playmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc1; } fi From 4a994fe8232ac0afafb3e53d6221b00547a56f13 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 19:23:45 +0530 Subject: [PATCH 10/19] update unity version --- TravisScripts/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TravisScripts/install.sh b/TravisScripts/install.sh index 4772c29d..aa2a499c 100644 --- a/TravisScripts/install.sh +++ b/TravisScripts/install.sh @@ -2,12 +2,12 @@ # Downloads echo 'Downloading Unity-2017.3.0f3 pkg:' -curl --retry 5 -o Unity.pkg https://netstorage.unity3d.com/unity/a9f86dcd79df/MacEditorInstaller/Unity-2017.3.0f3.pkg +curl --retry 5 -o Unity.pkg https://netstorage.unity3d.com/unity/cb262d9ddeaf/MacEditorInstaller/Unity-2018.2.4f1.pkg if [ $? -ne 0 ]; then { echo "Unity Download failed"; exit $?; } fi echo 'Downloading StandardAssets-2017.2.0f3.pkg:' #curl --retry 5 -o Unity_StandardAssets.pkg https://download.unity3d.com/download_unity/46dda1414e51/MacStandardAssetsInstaller/StandardAssets-2017.2.0f3.pkg -curl --retry 5 -o Unity_StandardAssets.pkg https://download.unity3d.com/download_unity/a9f86dcd79df/MacStandardAssetsInstaller/StandardAssets-2017.3.0f3.pkg +curl --retry 5 -o Unity_StandardAssets.pkg https://netstorage.unity3d.com/unity/cb262d9ddeaf/MacStandardAssetsInstaller/StandardAssets-2018.2.4f1.pkg if [ $? -ne 0 ]; then { echo "Unity StandardAssets Download failed"; exit $?; } fi # Install From 01cd3ae118bae166cfbc029edda95304747d1c39 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 20:47:46 +0530 Subject: [PATCH 11/19] update unity version --- TravisScripts/install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TravisScripts/install.sh b/TravisScripts/install.sh index aa2a499c..4a814469 100644 --- a/TravisScripts/install.sh +++ b/TravisScripts/install.sh @@ -1,17 +1,17 @@ #! /bin/sh # Downloads -echo 'Downloading Unity-2017.3.0f3 pkg:' -curl --retry 5 -o Unity.pkg https://netstorage.unity3d.com/unity/cb262d9ddeaf/MacEditorInstaller/Unity-2018.2.4f1.pkg +echo 'Downloading Unity pkg:' +curl --retry 5 -o Unity.pkg https://download.unity3d.com/download_unity/24bbd83e8b9e/MacEditorInstaller/Unity-2018.1.9f1.pkg if [ $? -ne 0 ]; then { echo "Unity Download failed"; exit $?; } fi -echo 'Downloading StandardAssets-2017.2.0f3.pkg:' +echo 'Downloading StandardAssets pkg:' #curl --retry 5 -o Unity_StandardAssets.pkg https://download.unity3d.com/download_unity/46dda1414e51/MacStandardAssetsInstaller/StandardAssets-2017.2.0f3.pkg -curl --retry 5 -o Unity_StandardAssets.pkg https://netstorage.unity3d.com/unity/cb262d9ddeaf/MacStandardAssetsInstaller/StandardAssets-2018.2.4f1.pkg +curl --retry 5 -o Unity_StandardAssets.pkg https://download.unity3d.com/download_unity/24bbd83e8b9e/MacStandardAssetsInstaller/StandardAssets-2018.1.9f1.pkg if [ $? -ne 0 ]; then { echo "Unity StandardAssets Download failed"; exit $?; } fi # Install -echo 'Installing Unity.pkg' +echo 'Installing Unity pkg' sudo installer -dumplog -package Unity.pkg -target / echo "Verify firewall" @@ -24,7 +24,7 @@ mkdir ~/Library/Unity/Certificates cp "./TravisScripts/CACerts.pem" ~/Library/Unity/Certificates/ echo === Done === -echo 'Installing StandardAssets-2017.2.0f3.pkg' +echo 'Installing StandardAssets pkg' sudo installer -dumplog -package Unity_StandardAssets.pkg -target / From bbdbe561db1db2ac8de0f41196727f130ad05b6e Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 21:15:33 +0530 Subject: [PATCH 12/19] replace runTests with runEditorTests --- TravisScripts/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 602353cd..febc57bc 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -24,14 +24,14 @@ echo "Unit test logs" #cat $(pwd)/editor1.log cat $(pwd)/test1.xml #exit if tests failed -if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi +#if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" /Applications/Unity/Unity.app/Contents/MacOS/Unity \ -batchmode \ -logFile $(pwd)/editor2.log \ -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ - -runTests \ + -runEditorTests \ -testResults $(pwd)/test2.xml \ -testPlatform playmode \ -username ${UNITYCI_USER_NAME} \ From 08d817b72a778e39a31fda35686ac24dad37e9fa Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 21:24:27 +0530 Subject: [PATCH 13/19] replace runEditorTests with runTests --- TravisScripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index febc57bc..685e7cad 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -31,7 +31,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" -batchmode \ -logFile $(pwd)/editor2.log \ -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ - -runEditorTests \ + -runTests \ -testResults $(pwd)/test2.xml \ -testPlatform playmode \ -username ${UNITYCI_USER_NAME} \ From 8f8996bc425fe99ba759a51f7d713fe84842ac38 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 21:56:43 +0530 Subject: [PATCH 14/19] yml fixes --- .pubnub.yml | 203 +++++++++++++++++++++-------------------- TravisScripts/build.sh | 5 +- 2 files changed, 109 insertions(+), 99 deletions(-) diff --git a/.pubnub.yml b/.pubnub.yml index 85d685a6..457fb5af 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,181 +1,188 @@ ---- -changelog: +--- +changelog: - - changes: - - + changes: + - + text: "Delete Messages Fix " + type: bug + date: Aug 23, 18 + version: v4.0.2 + - + changes: + - text: "Integration tests fixes" type: improvement date: Mar 8, 18 version: v4.0.1 - - changes: - - + changes: + - text: "Here Now Refresh" type: improvement date: Feb 28, 18 version: v4.0-rc2 - - changes: - - + changes: + - text: "Cleanup" type: improvement date: Jan 22, 18 version: v4.0-beta6 - - changes: - - + changes: + - text: "Logging enhancements" type: improvement date: Jan 18, 18 version: v4.0-beta5 - - changes: - - + changes: + - text: "Cleanup" type: improvement date: Jan 16, 18 version: v4.0-beta4 - - changes: - - + changes: + - text: "Windows Universal compatibility" type: improvement date: Jan 11, 18 version: v4.0-beta3 - - changes: - - + changes: + - text: "Leave fixes" type: improvement date: Dec 26, 17 version: v4.0-beta2 - - - changes: - - + - + changes: + - text: "All new PubNub Unity SDK" type: improvement date: Dec 11, 17 version: v4.0-beta1 - - + - changes: - - + - text: "Presence delta intervals" type: improvement date: Dec 18, 17 version: v3.7.10 - - - changes: - - + - + changes: + - text: "Unity UWP compatibility" type: improvement date: Aug 8, 17 version: v3.7.9 - - - changes: - - + - + changes: + - text: "Presence delta intervals" type: improvement date: Mar 31, 17 version: v3.7.8 - - - changes: - - + - + changes: + - text: "Region check in Timetoken dictionary" type: bug - - + - text: "Prefix UUID with 'pn-'" type: improvement date: Feb 20, 17 version: v3.7.7 - - - changes: - - + - + changes: + - text: "Fixed user state issue for other UUID" type: bug date: Jan 12, 17 version: v3.7.6.2 - - - changes: - - + - + changes: + - text: "Changed origin to ps.pndsn.com" type: feature date: Dec 21, 16 version: v3.7.6.1 - - - changes: - - + - + changes: + - text: "Offers the ability to set a per message time to live in storage." type: feature - - + - text: "Find out which UUID sent the message (only avialable when debug symbol `PUBNUB_PS_V2_RESPONSE` is used)." type: feature date: Dec 9, 16 version: v3.7.6 - - - changes: - - + - + changes: + - text: "Windows Store Universal 10 store compatibility" type: improvement - - + - text: "Changed the JSON lib to use: https://github.com/MarkerMetro/MarkerMetro.Unity.JsonFx, as it is compatible with Windows store." type: improvement - - + - text: "BouncyCastle(http://www.bouncycastle.org/csharp/) is used for crypto functionality." type: improvement date: ~ version: v3.7.5 - - - changes: - - + - + changes: + - text: "Added a debug symbol `PUBNUB_PS_V2_RESPONSE` to enable v4 subscribe" type: feature date: Sep 24, 16 version: v3.7.4 - - - changes: - - + - + changes: + - text: "Fixed SetGameObject" type: feature date: ~ version: v3.7.3 - - - changes: - - + - + changes: + - text: "PubSub v2" type: feature - - + - text: "Channel Groups" type: feature - - + - text: "Message Filtering" type: feature - - + - text: "Wildcard Subscribe" type: feature - - + - text: "Code optimizations" type: improvement date: Aug 2, 16 version: v3.7.2 - - - changes: - - + - + changes: + - text: "A new debug symbol to reduce the usage of coroutines. Set REDUCE_PUBNUB_COROUTINES, to use the alternate logic for www coroutines used by the PubNub's SDK. When using this option it is recommended that you call TerminateCurrentSubscriberRequest when the app comes back to the foreground else an ongoing long request will wait till the timeout value to abort and reinit the request." type: improvement - - + - text: "For iOS if the value of NonSubscribeTimeout and SubscribeTimeout is greater than 59 secs, the SDK will force the value to be 59 secs." type: improvement date: Jun 21, 16 version: v3.6.9.1 - - - changes: - - + - + changes: + - text: "Refactored code." type: improvement - - + - text: "JSON library: the pre-compiler directives to choose between MiniJSON and JSONFx have been moved to the class JSONSerializer.cs." type: improvement - - + - text: | `Logging: In addition to setting the variables PubnubLogLevel = LoggingMethod.Level.Info and PubnubErrorLevel = PubnubErrorFilter.Level.Info you also need to add a "define symbol": ENABLE_PUBNUB_LOGGING for each of the platform you want to enable logging. @@ -183,22 +190,22 @@ changelog: After you type ENABLE_PUBNUB_LOGGING in it do remember to press return with the focus still in the text box or your setting will not be saved. ` type: improvement - - + - text: "Add mobile push methods." type: feature - - + - text: "Default value of SSL is now true." type: improvement date: ~ version: v3.6.9.0 - - - changes: - - + - + changes: + - text: "some fixes for subscribe request timeouts." type: bug date: ~ version: v3.6.8.8 - - + - changes: - text: "removes forceful garbage collection." @@ -206,56 +213,56 @@ changelog: date: ~ version: v3.6.8.7 - - changes: - - + changes: + - text: "Fix for \"null\" message in callback when a message contains multiple messages, one of which is of type System.Collections.Generic.Dictionary`2[System.String,System.Object]." type: bug date: ~ version: v3.6.8.6 - - - changes: - - + - + changes: + - text: "Duplicate messages on some occasions." type: bug date: ~ version: v3.6.8.4 - - - changes: - - + - + changes: + - text: "Non subscribe callbacks were not fired when called from within a callback of an earlier request." type: bug date: ~ version: v3.6.8.3 - - - changes: - - + - + changes: + - text: "Missed messages when adding a channel to multiplexed." type: bug - - + - text: "Sub timeout gets fired when in app goes in background and the request is not complete." type: bug - - + - text: "User State didn't change in some cases." type: bug - - + - text: "Multiple requests heartbeats were running." type: bug date: ~ version: v3.6.8.1 -features: - channel-groups: +features: + channel-groups: - CHANNEL-GROUPS-ADD-CHANNELS - CHANNEL-GROUPS-REMOVE-CHANNELS - CHANNEL-GROUPS-REMOVE-GROUPS - CHANNEL-GROUPS-LIST-CHANNELS-IN-GROUP - presence: + presence: - PRESENCE-HERE-NOW - PRESENCE-WHERE-NOW - PRESENCE-SET-STATE - PRESENCE-GET-STATE - PRESENCE-HEARTBEAT - PRESENCE-HERE-NOW-REFRESH - publish: + publish: - PUBLISH-STORE-FLAG - PUBLISH-WITH-METADATA - PUBLISH-GET @@ -263,18 +270,18 @@ features: - PUBLISH-ASYNC - PUBLISH-MESSAGE-TTL - PUBLISH-FIRE - push: + push: - PUSH-ADD-DEVICE-TO-CHANNELS - PUSH-REMOVE-DEVICE-FROM-CHANNELS - PUSH-LIST-CHANNELS-FROM-DEVICE - PUSH-REMOVE-DEVICE - storage: + storage: - STORAGE-REVERSE - STORAGE-INCLUDE-TIMETOKEN - STORAGE-START-END - STORAGE-COUNT - STORAGE-DELETE-MESSAGES - subscribe: + subscribe: - SUBSCRIBE-CHANNELS - SUBSCRIBE-CHANNEL-GROUPS - SUBSCRIBE-PRESENCE-CHANNELS @@ -285,12 +292,12 @@ features: - SUBSCRIBE-PUBSUB-V2 - SUBSCRIBE-PUBLISHER-UUID - REQUEST-MESSAGE-COUNT-EXCEEDED - time: + time: - TIME-TIME others: - TELEMETRY supported-platforms: - - + - version: PubNub Unity SDK platforms: - iOS player, will require iOS 7.0 or higher. @@ -307,4 +314,4 @@ supported-platforms: name: unity schema: 1 scm: github.com/pubnub/unity -version: "v4.0.1" +version: "v4.0.2" diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 685e7cad..bd4b993e 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -24,7 +24,10 @@ echo "Unit test logs" #cat $(pwd)/editor1.log cat $(pwd)/test1.xml #exit if tests failed -#if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi +if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi +# returning license +echo "returning license" +/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" /Applications/Unity/Unity.app/Contents/MacOS/Unity \ From f15c5d87304b6c55c59082d50c54db3449f907a8 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 22:00:56 +0530 Subject: [PATCH 15/19] yml fixes --- .pubnub.yml | 306 ++++++++++++++++++++++++++-------------------------- 1 file changed, 153 insertions(+), 153 deletions(-) diff --git a/.pubnub.yml b/.pubnub.yml index 457fb5af..7eb45c42 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,211 +1,211 @@ ---- -changelog: - - - changes: - - - text: "Delete Messages Fix " - type: bug - date: Aug 23, 18 +--- +changelog: + - + changes: + - + text: "Delete Messages Fix" + type: improvement + date: "Aug 23, 18" version: v4.0.2 - - - changes: - - + - + changes: + - text: "Integration tests fixes" type: improvement - date: Mar 8, 18 + date: "Mar 8, 18" version: v4.0.1 - - - changes: - - + - + changes: + - text: "Here Now Refresh" type: improvement - date: Feb 28, 18 + date: "Feb 28, 18" version: v4.0-rc2 - - - changes: - - - text: "Cleanup" + - + changes: + - + text: Cleanup type: improvement - date: Jan 22, 18 + date: "Jan 22, 18" version: v4.0-beta6 - - - changes: - - + - + changes: + - text: "Logging enhancements" type: improvement - date: Jan 18, 18 - version: v4.0-beta5 - - - changes: - - - text: "Cleanup" + date: "Jan 18, 18" + version: v4.0-beta5 + - + changes: + - + text: Cleanup type: improvement - date: Jan 16, 18 - version: v4.0-beta4 - - - changes: - - + date: "Jan 16, 18" + version: v4.0-beta4 + - + changes: + - text: "Windows Universal compatibility" type: improvement - date: Jan 11, 18 - version: v4.0-beta3 - - - changes: - - + date: "Jan 11, 18" + version: v4.0-beta3 + - + changes: + - text: "Leave fixes" type: improvement - date: Dec 26, 17 - version: v4.0-beta2 - - - changes: - - + date: "Dec 26, 17" + version: v4.0-beta2 + - + changes: + - text: "All new PubNub Unity SDK" type: improvement - date: Dec 11, 17 + date: "Dec 11, 17" version: v4.0-beta1 - - + - changes: - - + - text: "Presence delta intervals" type: improvement - date: Dec 18, 17 + date: "Dec 18, 17" version: v3.7.10 - - - changes: - - + - + changes: + - text: "Unity UWP compatibility" type: improvement - date: Aug 8, 17 + date: "Aug 8, 17" version: v3.7.9 - - - changes: - - + - + changes: + - text: "Presence delta intervals" type: improvement - date: Mar 31, 17 + date: "Mar 31, 17" version: v3.7.8 - - - changes: - - + - + changes: + - text: "Region check in Timetoken dictionary" type: bug - - + - text: "Prefix UUID with 'pn-'" type: improvement - date: Feb 20, 17 + date: "Feb 20, 17" version: v3.7.7 - - - changes: - - + - + changes: + - text: "Fixed user state issue for other UUID" type: bug - date: Jan 12, 17 + date: "Jan 12, 17" version: v3.7.6.2 - - - changes: - - + - + changes: + - text: "Changed origin to ps.pndsn.com" type: feature - date: Dec 21, 16 + date: "Dec 21, 16" version: v3.7.6.1 - - - changes: - - + - + changes: + - text: "Offers the ability to set a per message time to live in storage." type: feature - - + - text: "Find out which UUID sent the message (only avialable when debug symbol `PUBNUB_PS_V2_RESPONSE` is used)." type: feature - date: Dec 9, 16 + date: "Dec 9, 16" version: v3.7.6 - - - changes: - - + - + changes: + - text: "Windows Store Universal 10 store compatibility" type: improvement - - + - text: "Changed the JSON lib to use: https://github.com/MarkerMetro/MarkerMetro.Unity.JsonFx, as it is compatible with Windows store." type: improvement - - + - text: "BouncyCastle(http://www.bouncycastle.org/csharp/) is used for crypto functionality." type: improvement date: ~ version: v3.7.5 - - - changes: - - + - + changes: + - text: "Added a debug symbol `PUBNUB_PS_V2_RESPONSE` to enable v4 subscribe" type: feature - date: Sep 24, 16 + date: "Sep 24, 16" version: v3.7.4 - - - changes: - - + - + changes: + - text: "Fixed SetGameObject" type: feature date: ~ version: v3.7.3 - - - changes: - - + - + changes: + - text: "PubSub v2" type: feature - - + - text: "Channel Groups" type: feature - - + - text: "Message Filtering" type: feature - - + - text: "Wildcard Subscribe" type: feature - - + - text: "Code optimizations" type: improvement - date: Aug 2, 16 + date: "Aug 2, 16" version: v3.7.2 - - - changes: - - + - + changes: + - text: "A new debug symbol to reduce the usage of coroutines. Set REDUCE_PUBNUB_COROUTINES, to use the alternate logic for www coroutines used by the PubNub's SDK. When using this option it is recommended that you call TerminateCurrentSubscriberRequest when the app comes back to the foreground else an ongoing long request will wait till the timeout value to abort and reinit the request." type: improvement - - + - text: "For iOS if the value of NonSubscribeTimeout and SubscribeTimeout is greater than 59 secs, the SDK will force the value to be 59 secs." type: improvement - date: Jun 21, 16 + date: "Jun 21, 16" version: v3.6.9.1 - - - changes: - - + - + changes: + - text: "Refactored code." type: improvement - - + - text: "JSON library: the pre-compiler directives to choose between MiniJSON and JSONFx have been moved to the class JSONSerializer.cs." type: improvement - - + - text: | - `Logging: In addition to setting the variables PubnubLogLevel = LoggingMethod.Level.Info and PubnubErrorLevel = PubnubErrorFilter.Level.Info you also need to add a "define symbol": ENABLE_PUBNUB_LOGGING for each of the platform you want to enable logging. + `Logging: In addition to setting the variables PubnubLogLevel = LoggingMethod.Level.Info and PubnubErrorLevel = PubnubErrorFilter.Level.Info you also need to add a "define symbol": ENABLE_PUBNUB_LOGGING for each of the platform you want to enable logging. - This setting is available in the Unity Editor: File-> Build Settings -> Player Settings -> Other Settings -> Configuration -> Scripting define symbols. + This setting is available in the Unity Editor: File-> Build Settings -> Player Settings -> Other Settings -> Configuration -> Scripting define symbols. After you type ENABLE_PUBNUB_LOGGING in it do remember to press return with the focus still in the text box or your setting will not be saved. ` type: improvement - - + - text: "Add mobile push methods." type: feature - - + - text: "Default value of SSL is now true." type: improvement date: ~ version: v3.6.9.0 - - - changes: - - + - + changes: + - text: "some fixes for subscribe request timeouts." type: bug date: ~ version: v3.6.8.8 - - + - changes: - text: "removes forceful garbage collection." @@ -213,56 +213,58 @@ changelog: date: ~ version: v3.6.8.7 - - changes: - - + changes: + - text: "Fix for \"null\" message in callback when a message contains multiple messages, one of which is of type System.Collections.Generic.Dictionary`2[System.String,System.Object]." type: bug date: ~ version: v3.6.8.6 - - - changes: - - + - + changes: + - text: "Duplicate messages on some occasions." type: bug date: ~ version: v3.6.8.4 - - - changes: - - + - + changes: + - text: "Non subscribe callbacks were not fired when called from within a callback of an earlier request." type: bug date: ~ version: v3.6.8.3 - - - changes: - - + - + changes: + - text: "Missed messages when adding a channel to multiplexed." type: bug - - + - text: "Sub timeout gets fired when in app goes in background and the request is not complete." type: bug - - + - text: "User State didn't change in some cases." type: bug - - + - text: "Multiple requests heartbeats were running." type: bug date: ~ version: v3.6.8.1 -features: - channel-groups: +features: + channel-groups: - CHANNEL-GROUPS-ADD-CHANNELS - CHANNEL-GROUPS-REMOVE-CHANNELS - CHANNEL-GROUPS-REMOVE-GROUPS - CHANNEL-GROUPS-LIST-CHANNELS-IN-GROUP - presence: + others: + - TELEMETRY + presence: - PRESENCE-HERE-NOW - PRESENCE-WHERE-NOW - PRESENCE-SET-STATE - PRESENCE-GET-STATE - PRESENCE-HEARTBEAT - PRESENCE-HERE-NOW-REFRESH - publish: + publish: - PUBLISH-STORE-FLAG - PUBLISH-WITH-METADATA - PUBLISH-GET @@ -270,18 +272,18 @@ features: - PUBLISH-ASYNC - PUBLISH-MESSAGE-TTL - PUBLISH-FIRE - push: + push: - PUSH-ADD-DEVICE-TO-CHANNELS - PUSH-REMOVE-DEVICE-FROM-CHANNELS - PUSH-LIST-CHANNELS-FROM-DEVICE - PUSH-REMOVE-DEVICE - storage: + storage: - STORAGE-REVERSE - STORAGE-INCLUDE-TIMETOKEN - STORAGE-START-END - STORAGE-COUNT - STORAGE-DELETE-MESSAGES - subscribe: + subscribe: - SUBSCRIBE-CHANNELS - SUBSCRIBE-CHANNEL-GROUPS - SUBSCRIBE-PRESENCE-CHANNELS @@ -292,26 +294,24 @@ features: - SUBSCRIBE-PUBSUB-V2 - SUBSCRIBE-PUBLISHER-UUID - REQUEST-MESSAGE-COUNT-EXCEEDED - time: + time: - TIME-TIME - others: - - TELEMETRY -supported-platforms: - - - version: PubNub Unity SDK - platforms: - - iOS player, will require iOS 7.0 or higher. - - Android, OS 2.3.1 or later; ARMv7 (Cortex) CPU with NEON support or Atom CPU; OpenGL ES 2.0 or later. - - Windows Phone, 8.1 or later. - - Windows Store Apps, 8.1 or later. - - WebGL, Any recent desktop version of Firefox, Chrome, Edge or Safari. - - Windows 7+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support. - - Ubuntu 12.04+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support. - - Mac OS X 10.8+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support. - editors: - - Unity 5.5.1 - - Unity 2017.3.0f3 name: unity schema: 1 scm: github.com/pubnub/unity -version: "v4.0.2" +supported-platforms: + - + editors: + - "Unity 5.5.1" + - "Unity 2017.3.0f3" + platforms: + - "iOS player, will require iOS 7.0 or higher." + - "Android, OS 2.3.1 or later; ARMv7 (Cortex) CPU with NEON support or Atom CPU; OpenGL ES 2.0 or later." + - "Windows Phone, 8.1 or later." + - "Windows Store Apps, 8.1 or later." + - "WebGL, Any recent desktop version of Firefox, Chrome, Edge or Safari." + - "Windows 7+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support." + - "Ubuntu 12.04+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support." + - "Mac OS X 10.8+, with Graphics card DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities; and CPU SSE2 instruction set support." + version: "PubNub Unity SDK" +version: v4.0.2 From 3609dfae9813347f358f18b347c2f0ffd16cd77f Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Wed, 22 Aug 2018 22:46:45 +0530 Subject: [PATCH 16/19] show status of master branch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 798d2620..78500e15 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Please direct all Support Questions and Concerns to Support@PubNub.com -[![Build Status](https://api.travis-ci.org/pubnub/unity.svg?branch=master)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm?svg=true)](https://ci.appveyor.com/project/PubNub/unity) +[![Build Status](https://api.travis-ci.org/pubnub/unity.svg?branch=master)](https://travis-ci.org/pubnub/unity) [![Build status](https://ci.appveyor.com/api/projects/status/1p3494pnt6rgqdsm/branch/master?svg=true)](https://ci.appveyor.com/project/PubNub/unity) ## PubNub 4.0.2 Web Data Push Cloud-Hosted API for Unity 5+ ### Supports PC, Mac, Linux, iOS, Android, Windows Store Universal 10 and WebGL From d96c1c08eaf59b5fd4be017c3ea55a75be59fb8d Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Thu, 23 Aug 2018 06:59:25 +0530 Subject: [PATCH 17/19] playmode tests update --- TravisScripts/build.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index bd4b993e..26d9bcba 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -23,12 +23,15 @@ rc0=$? echo "Unit test logs" #cat $(pwd)/editor1.log cat $(pwd)/test1.xml -#exit if tests failed -if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi + # returning license echo "returning license" /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense +#exit if tests failed +#if [ $rc0 -ne 0 ]; then { echo "Failed unit tests editmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc0; } fi +if [ $rc1 -ne 0 ]; then { echo "Failed unit tests editmode"; exit $rc1; } fi + echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" /Applications/Unity/Unity.app/Contents/MacOS/Unity \ -batchmode \ @@ -36,7 +39,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ -runTests \ -testResults $(pwd)/test2.xml \ - -testPlatform playmode \ + -testPlatform StandaloneOSXIntel64 \ -username ${UNITYCI_USER_NAME} \ -password ${UNITYCI_PASS} \ -serial ${UNITYCI_SERIAL} @@ -45,11 +48,14 @@ rc1=$? echo "Unit test logs 2" #cat $(pwd)/editor2.log cat $(pwd)/test2.xml -#exit if tests failed -if [ $rc1 -ne 0 ]; then { echo "Failed unit tests playmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc1; } fi # returning license echo "returning license" /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense +#exit if tests failed +#if [ $rc1 -ne 0 ]; then { echo "Failed unit tests playmode"; /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense; exit $rc1; } fi +if [ $rc1 -ne 0 ]; then { echo "Failed unit tests playmode"; exit $rc1; } fi + + exit \ No newline at end of file From c3cb0dbcb3bc1d7301e95f054fa47ca2896f0fd9 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Thu, 23 Aug 2018 14:47:56 +0530 Subject: [PATCH 18/19] playmode tests update --- TravisScripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TravisScripts/build.sh b/TravisScripts/build.sh index 26d9bcba..43b81471 100644 --- a/TravisScripts/build.sh +++ b/TravisScripts/build.sh @@ -39,7 +39,7 @@ echo "Running editor unit tests for ${UNITYCI_PROJECT_NAME} playmode" -projectPath $(pwd)/${UNITYCI_PROJECT_NAME} \ -runTests \ -testResults $(pwd)/test2.xml \ - -testPlatform StandaloneOSXIntel64 \ + -testPlatform playmode \ -username ${UNITYCI_USER_NAME} \ -password ${UNITYCI_PASS} \ -serial ${UNITYCI_SERIAL} From dd5e0d111ae34acff5d8af2e9cd271d2ccc3d462 Mon Sep 17 00:00:00 2001 From: Rajat Kalsy Date: Thu, 23 Aug 2018 16:05:58 +0530 Subject: [PATCH 19/19] playmode tests update --- .../InitTestScene636701216939524710.unity | 355 ------------------ ...InitTestScene636701216939524710.unity.meta | 7 - .../Assets/PlayModeTests/PlayModeTests.cs | 190 +++++----- 3 files changed, 95 insertions(+), 457 deletions(-) delete mode 100644 PubNubUnity/Assets/InitTestScene636701216939524710.unity delete mode 100644 PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta diff --git a/PubNubUnity/Assets/InitTestScene636701216939524710.unity b/PubNubUnity/Assets/InitTestScene636701216939524710.unity deleted file mode 100644 index 9921f9d6..00000000 --- a/PubNubUnity/Assets/InitTestScene636701216939524710.unity +++ /dev/null @@ -1,355 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 11 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 1 - m_LightmapEditorSettings: - serializedVersion: 10 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 - m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &913135205 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 913135208} - - component: {fileID: 913135207} - - component: {fileID: 913135206} - m_Layer: 0 - m_Name: Code-based tests runner - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &913135206 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 913135205} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1619214696, guid: 53ebcfaa2e1e4e2dbc85882cd5a73fa1, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &913135207 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 913135205} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1751138608, guid: 53ebcfaa2e1e4e2dbc85882cd5a73fa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_AssembliesWithTests: - - UnityEngine.TestRunner - testStartedEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 913135206} - m_MethodName: TestStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 936316123} - m_MethodName: TestStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1762771413} - m_MethodName: TestStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: UnityEngine.TestTools.TestRunner.TestStartedEvent, UnityEngine.TestRunner, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - testFinishedEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 913135206} - m_MethodName: TestFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 936316123} - m_MethodName: TestFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1762771413} - m_MethodName: TestFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: UnityEngine.TestTools.TestRunner.TestFinishedEvent, UnityEngine.TestRunner, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - runStartedEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 913135206} - m_MethodName: RunStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 936316123} - m_MethodName: RunStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1762771413} - m_MethodName: RunStarted - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: UnityEngine.TestTools.TestRunner.RunStartedEvent, UnityEngine.TestRunner, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - runFinishedEvent: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 913135206} - m_MethodName: RunFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 936316123} - m_MethodName: RunFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - - m_Target: {fileID: 1762771413} - m_MethodName: RunFinished - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - m_TypeName: UnityEngine.TestTools.TestRunner.RunFinishedEvent, UnityEngine.TestRunner, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - settings: - filter: - assemblyNames: [] - groupNames: [] - categoryNames: [] - testNames: [] - testsToSkip: [] - sceneBased: 0 - originalScene: - bootstrapScene: Assets/InitTestScene636701216939524710.unity - resultFilePath: - isBatchModeRun: 0 ---- !u!4 &913135208 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 913135205} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &936316123 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1026517869, guid: 4113173d5e95493ab8765d7b08371de4, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1762771413 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1703293177, guid: 4113173d5e95493ab8765d7b08371de4, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta b/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta deleted file mode 100644 index ae8e02e0..00000000 --- a/PubNubUnity/Assets/InitTestScene636701216939524710.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bc1c1270a57aa4500b518fb06b27fcf1 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs b/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs index 18441d82..806befa1 100644 --- a/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs +++ b/PubNubUnity/Assets/PlayModeTests/PlayModeTests.cs @@ -1324,7 +1324,7 @@ public IEnumerator TestCGRemove() { } - [UnityTest] + //[UnityTest] public IEnumerator TestPush() { PNConfiguration pnConfiguration = PlayModeCommon.SetPNConfig(false); System.Random r = new System.Random (); @@ -2347,36 +2347,36 @@ public IEnumerator TestHistory() { yield return new WaitForSeconds (PlayModeCommon.WaitTimeBetweenCalls2); Assert.True(tresult, "history test didnt return"); - testCount = 2; - testStart = 2; - pubnub.History().Channel(channel).Start(timetoken2).End(timetoken3).Async((result, status) => { - Assert.True(status.Error.Equals(false)); - if(!status.Error){ - - if((result.Messages!=null) && (result.Messages.Count.Equals(testCount))){ - List listPNHistoryItemResult = result.Messages as List; - for(int i=0; i { + // Assert.True(status.Error.Equals(false)); + // if(!status.Error){ + + // if((result.Messages!=null) && (result.Messages.Count.Equals(testCount))){ + // List listPNHistoryItemResult = result.Messages as List; + // for(int i=0; i { - Assert.True(status.Error.Equals(false)); - if(!status.Error){ - - if((result.Messages!=null) && (result.Messages.Count.Equals(testCount+testStart))){ - List listPNHistoryItemResult = result.Messages as List; - for(int i=0; i { - Assert.True(status.Error.Equals(false)); - if(!status.Error){ - - if((result.Messages!=null) && (result.Messages.Count.Equals(testCount+testStart))){ - List listPNHistoryItemResult = result.Messages as List; - for(int i=0; i { + // Assert.True(status.Error.Equals(false)); + // if(!status.Error){ + + // if((result.Messages!=null) && (result.Messages.Count.Equals(testCount+testStart))){ + // List listPNHistoryItemResult = result.Messages as List; + // for(int i=0; i { + // Assert.True(status.Error.Equals(false)); + // if(!status.Error){ + + // if((result.Messages!=null) && (result.Messages.Count.Equals(testCount+testStart))){ + // List listPNHistoryItemResult = result.Messages as List; + // for(int i=0; i