|
3 | 3 |
|
4 | 4 | var channelA = "gecA"; |
5 | 5 | var channelB = "gecB"; |
| 6 | +var randomSuffix = ""; |
| 7 | + |
| 8 | +var ssl = false; |
| 9 | +var clientLevel = ""; |
| 10 | +var serverLevel = ""; |
| 11 | + |
| 12 | +var pubKey = ""; |
| 13 | +var subKey = ""; |
| 14 | + |
| 15 | +var listenerUUID = "PN_LISTENER"; |
| 16 | +var actorUUID = "PN_ACTOR"; |
| 17 | + |
| 18 | +var pnLoadedInterval = ""; |
| 19 | +var listener = ""; |
| 20 | +var actor = ""; |
| 21 | +var extraCompat = ""; |
| 22 | + |
| 23 | + |
6 | 24 | var keysets = { |
7 | 25 |
|
8 | 26 | "keyset1": { |
9 | | - "pub": "pub-c-fb5fa283-0d93-424f-bf86-d9aca2366c86", |
10 | | - "sub": "sub-c-d247d250-9dbd-11e3-8008-02ee2ddab7fe", |
11 | | - "sec": "sec-c-MmI2YjRjODAtNWU5My00ZmZjLTg0MzUtZGM1NGExNjJkNjg1", |
| 27 | + "pubKey": "pub-c-fb5fa283-0d93-424f-bf86-d9aca2366c86", |
| 28 | + "subKey": "sub-c-d247d250-9dbd-11e3-8008-02ee2ddab7fe", |
| 29 | + "secKey": "sec-c-MmI2YjRjODAtNWU5My00ZmZjLTg0MzUtZGM1NGExNjJkNjg1", |
12 | 30 | "description": "Compatibility Mode ON" |
13 | 31 | }, |
14 | 32 |
|
15 | 33 | "keyset2": { |
16 | | - "pub": "pub-c-c9b0fe21-4ae1-433b-b766-62667cee65ef", |
17 | | - "sub": "sub-c-d91ee366-9dbd-11e3-a759-02ee2ddab7fe", |
18 | | - "sec": "sec-c-ZDUxZGEyNmItZjY4Ny00MjJmLWE0MjQtZTQyMDM0NTY2MDVk", |
| 34 | + "pubKey": "pub-c-c9b0fe21-4ae1-433b-b766-62667cee65ef", |
| 35 | + "subKey": "sub-c-d91ee366-9dbd-11e3-a759-02ee2ddab7fe", |
| 36 | + "secKey": "sec-c-ZDUxZGEyNmItZjY4Ny00MjJmLWE0MjQtZTQyMDM0NTY2MDVk", |
19 | 37 | "description": "Compatibility Mode OFF" |
20 | 38 | } |
21 | 39 | }; |
22 | 40 |
|
23 | | - |
24 | 41 | var tests = { |
25 | | - // test1 |
26 | | - // 1. actor subscribes to a |
27 | | - // 2. expect a join from actor on UUID PN_ACTOR_UUID within 5s |
28 | 42 |
|
29 | 43 | "35_35_SSL_OFF": { |
30 | 44 |
|
31 | | - "description": "3.5 -> 3.5 Base Compatibility, SSL Off.", |
32 | | - "client": "3.5", |
33 | | - "server": "3.5", |
34 | | - "keyset": keysets.keyset1, |
35 | | - "ssl": false, |
| 45 | + "common": { |
| 46 | + "description": "3.5 -> 3.5 Base Compatibility, SSL Off.", |
| 47 | + "client": "3.5", |
| 48 | + "server": "3.5", |
| 49 | + "keyset": keysets.keyset1, |
| 50 | + "ssl": false, |
| 51 | + "maxSteps": 3 |
| 52 | + }, |
36 | 53 |
|
37 | | - "max_steps": 3, |
| 54 | + "testSpecific": { |
38 | 55 |
|
39 | | - 1: { |
40 | | - "actor": ["subscribe", channelA, 0], |
41 | | - "listener": ["join", channelA, 5] |
42 | 56 | }, |
43 | 57 |
|
44 | | - 2: { |
45 | | - "actor": ["subscribe", channelB, 5], |
46 | | - |
47 | | - "listener": [ |
48 | | - ["leave", channelA, 5], |
49 | | - ["join", channelA, 5], |
50 | | - ["join", channelB, 5] |
51 | | - ] |
| 58 | + "platformSpecific": { |
| 59 | + "JS_WEB": { |
| 60 | + "clientExtraCompatibilityFlag": true // actually doesn't matter for 3.5 -> 3.5 |
| 61 | + } |
52 | 62 | }, |
53 | 63 |
|
54 | | - 3: { |
55 | | - "actor": ["unsubscribe", channelA, 5], |
56 | | - "listener": [ |
57 | | - ["leave", channelA, 5], |
58 | | - ["leave", channelB, 5], |
59 | | - ["join", channelB, 5] |
60 | | - ] |
| 64 | + "steps": { |
| 65 | + 1: { |
| 66 | + "actor": ["subscribe", channelA, 0], |
| 67 | + "listener": ["join", channelA, 5] |
| 68 | + }, |
| 69 | + |
| 70 | + 2: { |
| 71 | + "actor": ["subscribe", channelB, 5], |
| 72 | + |
| 73 | + "listener": [ |
| 74 | + ["leave", channelA, 5], |
| 75 | + ["join", channelA, 5], |
| 76 | + ["join", channelB, 5] |
| 77 | + ] |
| 78 | + }, |
| 79 | + |
| 80 | + 3: { |
| 81 | + "actor": ["unsubscribe", channelA, 5], |
| 82 | + "listener": [ |
| 83 | + ["leave", channelA, 5], |
| 84 | + ["leave", channelB, 5], |
| 85 | + ["join", channelB, 5] |
| 86 | + ] |
| 87 | + } |
61 | 88 | } |
62 | 89 | } |
63 | 90 | }; |
64 | 91 |
|
65 | | -runTest(tests["35_35"]); |
66 | 92 |
|
| 93 | +runTest(tests["35_35_SSL_OFF"]); |
67 | 94 |
|
68 | | -function runTest(testNub){ |
| 95 | +function runTest(testNub) { |
69 | 96 | console.log("Running test: " + testNub.description); |
70 | | - |
| 97 | + ssl = testNub.common.ssl; |
| 98 | + clientLevel = testNub.common.client; |
| 99 | + serverLevel = testNub.common.server; |
| 100 | + pubKey = testNub.common.keyset.pubKey; |
| 101 | + subKey = testNub.common.keyset.subKey; |
| 102 | + extraCompat = testNub.platformSpecific.JS_WEB.clientExtraCompatibilityFlag; |
71 | 103 | } |
72 | 104 |
|
73 | | -var PN_LISTENER_UUID = "PN_LISTENER"; |
74 | | -var PN_ACTOR_UUID = "PN_ACTOR"; |
75 | | - |
76 | | -var compatMode = true; |
77 | | -var ssl = false; |
78 | | -var clientLevel = "3.5"; |
79 | | -var serverLevel = "3.6"; |
80 | 105 | var pnLoading = true; |
81 | | -var pnLoadedInterval = ""; |
82 | | - |
83 | | -var pubKey = (compatMode == true) ? keysets.keyset1.pub : keysets.keyset2.pub; |
84 | | -var subKey = (compatMode == true) ? keysets.keyset1.sub : keysets.keyset2.sub; |
85 | | - |
86 | 106 | loadPNLib(); |
87 | 107 |
|
88 | | -var listener = ""; |
89 | | -var actor = ""; |
90 | | - |
91 | | -function waitForPNLoad() { |
92 | | - if (pnLoading) { |
93 | | - console.log("Waiting for PN to finish loading."); |
94 | | - pnLoadedInterval = setInterval(waitForPNLoad, 1000); |
95 | | - } else { |
96 | | - console.log("Initializing listener and actor instances."); |
97 | | - clearInterval(pnLoadedInterval); |
98 | | - |
99 | | - listener = pnInit(ssl, subKey, true); |
100 | | - actor = pnInit(ssl, subKey, false); |
101 | | - |
102 | | - // Start the Listener. The actor will be spawned after the listener is connected. |
103 | | - subToA(listener, actor); |
104 | | - |
105 | | - |
106 | | - } |
107 | | -} |
108 | | - |
109 | 108 | function loadPNLib() { |
110 | 109 | if (typeof PUBNUB === 'undefined') { |
111 | 110 |
|
|
155 | 154 | } |
156 | 155 |
|
157 | 156 |
|
158 | | -function initLog(compat, ssl, key, extra_compat, origin) { |
159 | | - console.log(key + "\nOrigin: " + origin + "\nClient level: " + clientLevel + "\nServer level: " + serverLevel + "\nCompat: " + compat + "\nClient extra compat flag: " + extra_compat + "\nSSL: " + ssl); |
160 | | -} |
| 157 | +function waitForPNLoad() { |
| 158 | + if (pnLoading) { |
| 159 | + console.log("Waiting for PN to finish loading."); |
| 160 | + pnLoadedInterval = setInterval(waitForPNLoad, 1000); |
| 161 | + } else { |
| 162 | + console.log("Initializing listener and actor instances."); |
| 163 | + clearInterval(pnLoadedInterval); |
| 164 | + |
| 165 | + randomSuffix = Math.floor((Math.random() * 10000) + 1); |
| 166 | + |
| 167 | + actorUUID = actorUUID + randomSuffix; |
| 168 | + listenerUUID = listenerUUID + randomSuffix; |
| 169 | + |
| 170 | + listener = pnInit(ssl, subKey, true); |
| 171 | + actor = pnInit(ssl, subKey, false); |
| 172 | + |
| 173 | + // Start the Listener. The actor will be spawned after the listener is connected. |
| 174 | + subToA(listener, actor); |
161 | 175 |
|
162 | | -function pnInit(ssl, key, isListener, extra_compat) { |
163 | 176 |
|
164 | | - if (extra_compat == null) { |
165 | | - extra_compat = false; |
166 | 177 | } |
| 178 | +} |
167 | 179 |
|
168 | | - var uuid = isListener ? PN_LISTENER_UUID : PN_ACTOR_UUID; |
| 180 | +function pnInit(ssl, key, isListener) { |
| 181 | + |
| 182 | + var uuid = isListener ? listenerUUID : actorUUID; |
169 | 183 | var origin = (clientLevel == "3.6") ? "presence-beta.pubnub.com" : "pubsub.pubnub.com"; |
170 | 184 |
|
171 | 185 | var pubnub = PUBNUB.init({ |
172 | 186 | publish_key: 'demo', |
173 | 187 | subscribe_key: key, |
174 | 188 | origin: origin, |
175 | 189 | ssl: ssl, |
176 | | - "compatible_3.5": extra_compat, |
| 190 | + "compatible_3.5": extraCompat, |
177 | 191 | uuid: uuid |
178 | 192 | }); |
179 | 193 |
|
180 | | - initLog(true, ssl, key, extra_compat, origin); |
| 194 | + console.log(uuid + ": " + key + "\nOrigin: " + origin + "\nClient level: " + clientLevel + "\nServer level: " + serverLevel + "\nCompat: " + true + "\nClient extra compat flag: " + extraCompat + "\nSSL: " + ssl); |
181 | 195 | return pubnub; |
182 | 196 | } |
183 | 197 |
|
|
190 | 204 | console.log("Listener heard: " + m); |
191 | 205 | }, |
192 | 206 | presence: function (msg, e, ch) { |
193 | | - if (msg.uuid != PN_LISTENER_UUID && msg.uuid == PN_ACTOR_UUID) { |
| 207 | + if (msg.uuid != listenerUUID && msg.uuid == actorUUID) { |
194 | 208 | console.log("Presence Listener: " + msg.action + " on " + msg.uuid + ": " + ch); |
195 | 209 | } |
196 | 210 |
|
|
250 | 264 |
|
251 | 265 | </script> |
252 | 266 |
|
253 | | -<style> |
254 | | - div { |
255 | | - margin-bottom: 10 |
256 | | - } |
257 | | -</style> |
258 | | - |
259 | | -<hr/> |
260 | | -INIT |
261 | | -<div onclick="pnInit(true,'sub-c-d247d250-9dbd-11e3-8008-02ee2ddab7fe')">Compat On - SSL ON</div> |
262 | | -<div onclick="pnInit(false,'sub-c-d247d250-9dbd-11e3-8008-02ee2ddab7fe')">Compat On - SSL OFF</div> |
263 | | -<hr/> |
264 | | -<div onclick="compatOff(true, 'sub-c-d91ee366-9dbd-11e3-a759-02ee2ddab7fe')">Compat Off - SSL ON</div> |
265 | | -<div onclick="compatOff(false, 'sub-c-d91ee366-9dbd-11e3-a759-02ee2ddab7fe')">Compat Off - SSL OFF</div> |
266 | | -<hr/> |
267 | | -Test Steps |
268 | | -<div onclick="subToA()">Sub To A</div> |
269 | | -<div onclick="subToB()">Sub To B</div> |
270 | | -<div onclick="unsubToa()">UnSub To A</div> |
271 | | -<hr> |
272 | | -<div onclick="unsubTob()">UnSub To B</div> |
273 | | - |
274 | 267 |
|
275 | 268 | </html> |
0 commit comments