pingerchips-js 1.0.1-a → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/README.md +53 -655
  2. package/index.js +169 -0
  3. package/package.json +20 -59
  4. package/.editorconfig +0 -14
  5. package/.github/ISSUE_TEMPLATE.md +0 -11
  6. package/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  7. package/.github/dependabot.yml +0 -14
  8. package/.github/stale.yml +0 -26
  9. package/.github/workflows/release.yml +0 -112
  10. package/.github/workflows/release_pr.yml +0 -43
  11. package/.github/workflows/run-tests.yml +0 -62
  12. package/.gitmodules +0 -3
  13. package/.prettierrc +0 -2
  14. package/CHANGELOG.md +0 -924
  15. package/LICENCE +0 -19
  16. package/Makefile +0 -78
  17. package/bower.json +0 -28
  18. package/dist/node/pingerchips.js +0 -10870
  19. package/dist/node/pingerchips.js.map +0 -1
  20. package/dist/node/pusher.js +0 -10870
  21. package/dist/node/pusher.js.map +0 -1
  22. package/dist/react-native/pingerchips.js +0 -9
  23. package/dist/react-native/pingerchips.js.map +0 -1
  24. package/dist/react-native/pusher.js +0 -9
  25. package/dist/react-native/pusher.js.map +0 -1
  26. package/dist/web/json2.js +0 -486
  27. package/dist/web/json2.min.js +0 -1
  28. package/dist/web/pingerchips-with-encryption.js +0 -7009
  29. package/dist/web/pingerchips-with-encryption.js.map +0 -1
  30. package/dist/web/pingerchips-with-encryption.min.js +0 -9
  31. package/dist/web/pingerchips-with-encryption.min.js.map +0 -1
  32. package/dist/web/pingerchips.js +0 -4587
  33. package/dist/web/pingerchips.js.map +0 -1
  34. package/dist/web/pingerchips.min.js +0 -9
  35. package/dist/web/pingerchips.min.js.map +0 -1
  36. package/dist/web/pusher-with-encryption.js +0 -7009
  37. package/dist/web/pusher-with-encryption.js.map +0 -1
  38. package/dist/web/pusher-with-encryption.min.js +0 -9
  39. package/dist/web/pusher-with-encryption.min.js.map +0 -1
  40. package/dist/web/pusher.js +0 -4587
  41. package/dist/web/pusher.js.map +0 -1
  42. package/dist/web/pusher.min.js +0 -9
  43. package/dist/web/pusher.min.js.map +0 -1
  44. package/dist/web/sockjs.js +0 -2435
  45. package/dist/web/sockjs.min.js +0 -89
  46. package/dist/worker/pingerchips-with-encryption.worker.js +0 -6622
  47. package/dist/worker/pingerchips-with-encryption.worker.js.map +0 -1
  48. package/dist/worker/pingerchips-with-encryption.worker.min.js +0 -9
  49. package/dist/worker/pingerchips-with-encryption.worker.min.js.map +0 -1
  50. package/dist/worker/pingerchips.worker.js +0 -4200
  51. package/dist/worker/pingerchips.worker.js.map +0 -1
  52. package/dist/worker/pingerchips.worker.min.js +0 -9
  53. package/dist/worker/pingerchips.worker.min.js.map +0 -1
  54. package/dist/worker/pusher-with-encryption.worker.js +0 -6622
  55. package/dist/worker/pusher-with-encryption.worker.js.map +0 -1
  56. package/dist/worker/pusher-with-encryption.worker.min.js +0 -9
  57. package/dist/worker/pusher-with-encryption.worker.min.js.map +0 -1
  58. package/dist/worker/pusher.worker.js +0 -4200
  59. package/dist/worker/pusher.worker.js.map +0 -1
  60. package/dist/worker/pusher.worker.min.js +0 -9
  61. package/dist/worker/pusher.worker.min.js.map +0 -1
  62. package/index.d.ts +0 -29
  63. package/integration_tests_server/index.js +0 -176
  64. package/integration_tests_server/package-lock.json +0 -1177
  65. package/integration_tests_server/package.json +0 -15
  66. package/node.js +0 -1
  67. package/pusher-with-encryption/index.js +0 -1
  68. package/react-native/index.d.ts +0 -29
  69. package/react-native/index.js +0 -1
  70. package/spec/config/jasmine/helpers/reporter.js +0 -14
  71. package/spec/config/jasmine/integration.json +0 -13
  72. package/spec/config/jasmine/unit.json +0 -13
  73. package/spec/config/jasmine/webpack.integration.js +0 -33
  74. package/spec/config/jasmine/webpack.unit.js +0 -30
  75. package/spec/config/karma/available_browsers.json +0 -4957
  76. package/spec/config/karma/config.ci.js +0 -25
  77. package/spec/config/karma/config.common.js +0 -50
  78. package/spec/config/karma/config.integration.js +0 -26
  79. package/spec/config/karma/config.unit.js +0 -10
  80. package/spec/config/karma/config.worker.js +0 -34
  81. package/spec/config/karma/integration.js +0 -24
  82. package/spec/config/karma/unit.js +0 -20
  83. package/spec/javascripts/helpers/mocks.js +0 -274
  84. package/spec/javascripts/helpers/node/integration.js +0 -33
  85. package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +0 -1
  86. package/spec/javascripts/helpers/pusher_integration.js +0 -1
  87. package/spec/javascripts/helpers/pusher_integration_class.ts +0 -11
  88. package/spec/javascripts/helpers/timers/promises.js +0 -9
  89. package/spec/javascripts/helpers/waitsFor.js +0 -37
  90. package/spec/javascripts/helpers/web/integration.js +0 -44
  91. package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +0 -1
  92. package/spec/javascripts/integration/core/cluster_config_spec.js +0 -153
  93. package/spec/javascripts/integration/core/falling_back_spec.js +0 -195
  94. package/spec/javascripts/integration/core/pusher_spec/index.js +0 -68
  95. package/spec/javascripts/integration/core/pusher_spec/test_builder.js +0 -715
  96. package/spec/javascripts/integration/core/timeout_configuration_spec.js +0 -200
  97. package/spec/javascripts/integration/core/transport_lists_spec.js +0 -103
  98. package/spec/javascripts/integration/index.node.js +0 -12
  99. package/spec/javascripts/integration/index.web.js +0 -63
  100. package/spec/javascripts/integration/index.worker.js +0 -13
  101. package/spec/javascripts/integration/web/dom/jsonp_spec.js +0 -97
  102. package/spec/javascripts/integration/web/dom/script_request_spec.js +0 -90
  103. package/spec/javascripts/polyfills/index.js +0 -105
  104. package/spec/javascripts/unit/core/channels/channel_spec.js +0 -355
  105. package/spec/javascripts/unit/core/channels/channels_spec.js +0 -94
  106. package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +0 -343
  107. package/spec/javascripts/unit/core/channels/presence_channel_spec.js +0 -553
  108. package/spec/javascripts/unit/core/channels/private_channel_spec.js +0 -182
  109. package/spec/javascripts/unit/core/config_spec.js +0 -507
  110. package/spec/javascripts/unit/core/connection/connection_manager_spec.js +0 -656
  111. package/spec/javascripts/unit/core/connection/connection_spec.js +0 -286
  112. package/spec/javascripts/unit/core/connection/handshake_spec.js +0 -160
  113. package/spec/javascripts/unit/core/connection/protocol_spec.js +0 -420
  114. package/spec/javascripts/unit/core/defaults_spec.js +0 -26
  115. package/spec/javascripts/unit/core/events_dispatcher_spec.js +0 -385
  116. package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +0 -60
  117. package/spec/javascripts/unit/core/http/http_request_spec.js +0 -185
  118. package/spec/javascripts/unit/core/http/http_socket_spec.js +0 -370
  119. package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +0 -56
  120. package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +0 -164
  121. package/spec/javascripts/unit/core/logger_spec.js +0 -133
  122. package/spec/javascripts/unit/core/pusher_spec.js +0 -613
  123. package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +0 -18
  124. package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +0 -104
  125. package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +0 -95
  126. package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +0 -68
  127. package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +0 -165
  128. package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +0 -213
  129. package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +0 -250
  130. package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +0 -400
  131. package/spec/javascripts/unit/core/timeline/timeline_spec.js +0 -153
  132. package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +0 -223
  133. package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +0 -85
  134. package/spec/javascripts/unit/core/transports/transport_connection_spec.js +0 -585
  135. package/spec/javascripts/unit/core/transports/transport_manager_spec.js +0 -64
  136. package/spec/javascripts/unit/core/user_spec.js +0 -303
  137. package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +0 -74
  138. package/spec/javascripts/unit/core/utils/timers_spec.js +0 -157
  139. package/spec/javascripts/unit/core/utils/url_store_spec.js +0 -14
  140. package/spec/javascripts/unit/core/watchlist_spec.js +0 -48
  141. package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +0 -137
  142. package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +0 -48
  143. package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +0 -128
  144. package/spec/javascripts/unit/core_with_runtime/readme.md +0 -5
  145. package/spec/javascripts/unit/index.node.js +0 -11
  146. package/spec/javascripts/unit/index.web.js +0 -12
  147. package/spec/javascripts/unit/index.worker.js +0 -11
  148. package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +0 -82
  149. package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +0 -202
  150. package/spec/javascripts/unit/node/timeline_sender_spec.js +0 -83
  151. package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +0 -249
  152. package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +0 -130
  153. package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +0 -68
  154. package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +0 -222
  155. package/spec/javascripts/unit/web/pusher_authorizer_spec.js +0 -64
  156. package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +0 -131
  157. package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +0 -127
  158. package/spec/javascripts/unit/web/transports/transports_spec.js +0 -444
  159. package/spec/javascripts/unit/worker/channel_authorizer_spec.js +0 -156
  160. package/spec/javascripts/unit/worker/timeline_sender_spec.js +0 -76
  161. package/src/core/auth/auth_transports.ts +0 -18
  162. package/src/core/auth/channel_authorizer.ts +0 -64
  163. package/src/core/auth/deprecated_channel_authorizer.ts +0 -58
  164. package/src/core/auth/options.ts +0 -78
  165. package/src/core/auth/user_authenticator.ts +0 -62
  166. package/src/core/base64.ts +0 -49
  167. package/src/core/channels/channel.ts +0 -163
  168. package/src/core/channels/channel_table.ts +0 -7
  169. package/src/core/channels/channels.ts +0 -85
  170. package/src/core/channels/encrypted_channel.ts +0 -149
  171. package/src/core/channels/members.ts +0 -80
  172. package/src/core/channels/metadata.ts +0 -5
  173. package/src/core/channels/presence_channel.ts +0 -113
  174. package/src/core/channels/private_channel.ts +0 -25
  175. package/src/core/config.ts +0 -189
  176. package/src/core/connection/callbacks.ts +0 -21
  177. package/src/core/connection/connection.ts +0 -160
  178. package/src/core/connection/connection_manager.ts +0 -371
  179. package/src/core/connection/connection_manager_options.ts +0 -14
  180. package/src/core/connection/handshake/handshake_payload.ts +0 -10
  181. package/src/core/connection/handshake/index.ts +0 -90
  182. package/src/core/connection/protocol/action.ts +0 -8
  183. package/src/core/connection/protocol/message-types.ts +0 -8
  184. package/src/core/connection/protocol/protocol.ts +0 -154
  185. package/src/core/defaults.ts +0 -66
  186. package/src/core/errors.ts +0 -69
  187. package/src/core/events/callback.ts +0 -6
  188. package/src/core/events/callback_registry.ts +0 -75
  189. package/src/core/events/callback_table.ts +0 -7
  190. package/src/core/events/dispatcher.ts +0 -84
  191. package/src/core/http/ajax.ts +0 -24
  192. package/src/core/http/http_factory.ts +0 -16
  193. package/src/core/http/http_polling_socket.ts +0 -24
  194. package/src/core/http/http_request.ts +0 -81
  195. package/src/core/http/http_socket.ts +0 -220
  196. package/src/core/http/http_streaming_socket.ts +0 -19
  197. package/src/core/http/request_hooks.ts +0 -9
  198. package/src/core/http/socket_hooks.ts +0 -11
  199. package/src/core/http/state.ts +0 -7
  200. package/src/core/http/url_location.ts +0 -6
  201. package/src/core/logger.ts +0 -53
  202. package/src/core/options.ts +0 -59
  203. package/src/core/pingerchips-licence.js +0 -7
  204. package/src/core/pingerchips-with-encryption.js +0 -1
  205. package/src/core/pingerchips-with-encryption.ts +0 -14
  206. package/src/core/pingerchips.js +0 -2
  207. package/src/core/pingerchips.ts +0 -249
  208. package/src/core/reachability.ts +0 -7
  209. package/src/core/socket.ts +0 -14
  210. package/src/core/strategies/best_connected_ever_strategy.ts +0 -81
  211. package/src/core/strategies/delayed_strategy.ts +0 -48
  212. package/src/core/strategies/first_connected_strategy.ts +0 -28
  213. package/src/core/strategies/if_strategy.ts +0 -34
  214. package/src/core/strategies/sequential_strategy.ts +0 -129
  215. package/src/core/strategies/strategy.ts +0 -8
  216. package/src/core/strategies/strategy_builder.ts +0 -67
  217. package/src/core/strategies/strategy_options.ts +0 -18
  218. package/src/core/strategies/strategy_runner.ts +0 -6
  219. package/src/core/strategies/transport_strategy.ts +0 -144
  220. package/src/core/strategies/websocket_prioritized_cached_strategy.ts +0 -157
  221. package/src/core/timeline/level.ts +0 -7
  222. package/src/core/timeline/timeline.ts +0 -90
  223. package/src/core/timeline/timeline_sender.ts +0 -33
  224. package/src/core/timeline/timeline_transport.ts +0 -11
  225. package/src/core/transports/assistant_to_the_transport_manager.ts +0 -104
  226. package/src/core/transports/ping_delay_options.ts +0 -7
  227. package/src/core/transports/transport.ts +0 -54
  228. package/src/core/transports/transport_connection.ts +0 -241
  229. package/src/core/transports/transport_connection_options.ts +0 -8
  230. package/src/core/transports/transport_hooks.ts +0 -16
  231. package/src/core/transports/transport_manager.ts +0 -52
  232. package/src/core/transports/transports_table.ts +0 -12
  233. package/src/core/transports/url_scheme.ts +0 -13
  234. package/src/core/transports/url_schemes.ts +0 -47
  235. package/src/core/user.ts +0 -186
  236. package/src/core/util.ts +0 -34
  237. package/src/core/utils/collections.ts +0 -353
  238. package/src/core/utils/factory.ts +0 -75
  239. package/src/core/utils/flat_promise.ts +0 -10
  240. package/src/core/utils/timers/abstract_timer.ts +0 -39
  241. package/src/core/utils/timers/index.ts +0 -39
  242. package/src/core/utils/timers/scheduling.ts +0 -11
  243. package/src/core/utils/timers/timed_callback.ts +0 -5
  244. package/src/core/utils/url_store.ts +0 -48
  245. package/src/core/watchlist.ts +0 -31
  246. package/src/d.ts/constants/index.d.ts +0 -5
  247. package/src/d.ts/faye-websocket/faye-websocket.d.ts +0 -21
  248. package/src/d.ts/global/global.d.ts +0 -1
  249. package/src/d.ts/module/module.d.ts +0 -12
  250. package/src/d.ts/tweetnacl-util/index.d.ts +0 -6
  251. package/src/d.ts/window/events.d.ts +0 -4
  252. package/src/d.ts/window/sockjs.d.ts +0 -3
  253. package/src/d.ts/window/websocket.d.ts +0 -4
  254. package/src/d.ts/window/xmlhttprequest.d.ts +0 -3
  255. package/src/runtimes/interface.ts +0 -59
  256. package/src/runtimes/isomorphic/auth/xhr_auth.ts +0 -90
  257. package/src/runtimes/isomorphic/default_strategy.ts +0 -155
  258. package/src/runtimes/isomorphic/http/http.ts +0 -32
  259. package/src/runtimes/isomorphic/http/http_xhr_request.ts +0 -35
  260. package/src/runtimes/isomorphic/runtime.ts +0 -62
  261. package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +0 -50
  262. package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +0 -19
  263. package/src/runtimes/isomorphic/transports/transports.ts +0 -81
  264. package/src/runtimes/node/net_info.ts +0 -10
  265. package/src/runtimes/node/runtime.ts +0 -68
  266. package/src/runtimes/react-native/net_info.ts +0 -42
  267. package/src/runtimes/react-native/runtime.ts +0 -65
  268. package/src/runtimes/web/auth/jsonp_auth.ts +0 -51
  269. package/src/runtimes/web/browser.ts +0 -24
  270. package/src/runtimes/web/default_strategy.ts +0 -201
  271. package/src/runtimes/web/dom/dependencies.ts +0 -16
  272. package/src/runtimes/web/dom/dependency_loader.ts +0 -93
  273. package/src/runtimes/web/dom/json2.js +0 -486
  274. package/src/runtimes/web/dom/jsonp_request.ts +0 -52
  275. package/src/runtimes/web/dom/script_receiver.ts +0 -8
  276. package/src/runtimes/web/dom/script_receiver_factory.ts +0 -57
  277. package/src/runtimes/web/dom/script_request.ts +0 -85
  278. package/src/runtimes/web/dom/sockjs/COPYING +0 -11
  279. package/src/runtimes/web/dom/sockjs/Changelog +0 -147
  280. package/src/runtimes/web/dom/sockjs/LICENSE-MIT-SockJS +0 -19
  281. package/src/runtimes/web/dom/sockjs/Makefile +0 -109
  282. package/src/runtimes/web/dom/sockjs/README.md +0 -388
  283. package/src/runtimes/web/dom/sockjs/VERSION-GEN +0 -17
  284. package/src/runtimes/web/dom/sockjs/bin/render.coffee +0 -111
  285. package/src/runtimes/web/dom/sockjs/bin/run_testling.sh +0 -135
  286. package/src/runtimes/web/dom/sockjs/lib/all.js +0 -9
  287. package/src/runtimes/web/dom/sockjs/lib/dom.js +0 -185
  288. package/src/runtimes/web/dom/sockjs/lib/dom2.js +0 -280
  289. package/src/runtimes/web/dom/sockjs/lib/eventemitter.js +0 -57
  290. package/src/runtimes/web/dom/sockjs/lib/heartbeater.js +0 -70
  291. package/src/runtimes/web/dom/sockjs/lib/index.js +0 -41
  292. package/src/runtimes/web/dom/sockjs/lib/info.js +0 -117
  293. package/src/runtimes/web/dom/sockjs/lib/json2.min.js +0 -1
  294. package/src/runtimes/web/dom/sockjs/lib/reventtarget.js +0 -55
  295. package/src/runtimes/web/dom/sockjs/lib/simpleevent.js +0 -28
  296. package/src/runtimes/web/dom/sockjs/lib/sockjs.js +0 -288
  297. package/src/runtimes/web/dom/sockjs/lib/test-hooks.js +0 -16
  298. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-eventsource.js +0 -29
  299. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-htmlfile.js +0 -35
  300. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-within.js +0 -100
  301. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-xhr-polling.js +0 -30
  302. package/src/runtimes/web/dom/sockjs/lib/trans-iframe.js +0 -103
  303. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-polling.js +0 -106
  304. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-receiver.js +0 -116
  305. package/src/runtimes/web/dom/sockjs/lib/trans-polling.js +0 -44
  306. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-eventsource.js +0 -41
  307. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-htmlfile.js +0 -65
  308. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-xhr.js +0 -42
  309. package/src/runtimes/web/dom/sockjs/lib/trans-sender.js +0 -138
  310. package/src/runtimes/web/dom/sockjs/lib/trans-xhr.js +0 -29
  311. package/src/runtimes/web/dom/sockjs/lib/utils.js +0 -297
  312. package/src/runtimes/web/dom/sockjs/package.json +0 -18
  313. package/src/runtimes/web/dom/sockjs/version +0 -1
  314. package/src/runtimes/web/http/http.ts +0 -8
  315. package/src/runtimes/web/http/http_xdomain_request.ts +0 -37
  316. package/src/runtimes/web/net_info.ts +0 -50
  317. package/src/runtimes/web/runtime.ts +0 -174
  318. package/src/runtimes/web/timeline/jsonp_timeline.ts +0 -34
  319. package/src/runtimes/web/transports/transport_connection_initializer.ts +0 -39
  320. package/src/runtimes/web/transports/transports.ts +0 -65
  321. package/src/runtimes/worker/auth/fetch_auth.ts +0 -69
  322. package/src/runtimes/worker/net_info.ts +0 -10
  323. package/src/runtimes/worker/runtime.ts +0 -75
  324. package/src/runtimes/worker/timeline/fetch_timeline.ts +0 -39
  325. package/tsconfig.json +0 -26
  326. package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +0 -1
  327. package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +0 -4
  328. package/types/src/core/auth/auth_transports.d.ts +0 -9
  329. package/types/src/core/auth/channel_authorizer.d.ts +0 -3
  330. package/types/src/core/auth/deprecated_channel_authorizer.d.ts +0 -18
  331. package/types/src/core/auth/options.d.ts +0 -48
  332. package/types/src/core/auth/user_authenticator.d.ts +0 -3
  333. package/types/src/core/base64.d.ts +0 -1
  334. package/types/src/core/channels/channel.d.ts +0 -23
  335. package/types/src/core/channels/channel_table.d.ts +0 -5
  336. package/types/src/core/channels/channels.d.ts +0 -12
  337. package/types/src/core/channels/encrypted_channel.d.ts +0 -15
  338. package/types/src/core/channels/members.d.ts +0 -14
  339. package/types/src/core/channels/metadata.d.ts +0 -4
  340. package/types/src/core/channels/presence_channel.d.ts +0 -13
  341. package/types/src/core/channels/private_channel.d.ts +0 -5
  342. package/types/src/core/config.d.ts +0 -31
  343. package/types/src/core/connection/callbacks.d.ts +0 -18
  344. package/types/src/core/connection/connection.d.ts +0 -16
  345. package/types/src/core/connection/connection_manager.d.ts +0 -50
  346. package/types/src/core/connection/connection_manager_options.d.ts +0 -11
  347. package/types/src/core/connection/handshake/handshake_payload.d.ts +0 -8
  348. package/types/src/core/connection/handshake/index.d.ts +0 -12
  349. package/types/src/core/connection/protocol/action.d.ts +0 -7
  350. package/types/src/core/connection/protocol/message-types.d.ts +0 -7
  351. package/types/src/core/connection/protocol/protocol.d.ts +0 -10
  352. package/types/src/core/defaults.d.ts +0 -26
  353. package/types/src/core/errors.d.ts +0 -28
  354. package/types/src/core/events/callback.d.ts +0 -5
  355. package/types/src/core/events/callback_registry.d.ts +0 -11
  356. package/types/src/core/events/callback_table.d.ts +0 -5
  357. package/types/src/core/events/dispatcher.d.ts +0 -14
  358. package/types/src/core/http/ajax.d.ts +0 -16
  359. package/types/src/core/http/http_factory.d.ts +0 -13
  360. package/types/src/core/http/http_polling_socket.d.ts +0 -3
  361. package/types/src/core/http/http_request.d.ts +0 -17
  362. package/types/src/core/http/http_socket.d.ts +0 -32
  363. package/types/src/core/http/http_streaming_socket.d.ts +0 -3
  364. package/types/src/core/http/request_hooks.d.ts +0 -6
  365. package/types/src/core/http/socket_hooks.d.ts +0 -8
  366. package/types/src/core/http/state.d.ts +0 -6
  367. package/types/src/core/http/url_location.d.ts +0 -5
  368. package/types/src/core/logger.d.ts +0 -11
  369. package/types/src/core/options.d.ts +0 -34
  370. package/types/src/core/pingerchips-with-encryption.d.ts +0 -5
  371. package/types/src/core/pingerchips.d.ts +0 -49
  372. package/types/src/core/reachability.d.ts +0 -5
  373. package/types/src/core/socket.d.ts +0 -12
  374. package/types/src/core/strategies/best_connected_ever_strategy.d.ts +0 -10
  375. package/types/src/core/strategies/delayed_strategy.d.ts +0 -15
  376. package/types/src/core/strategies/first_connected_strategy.d.ts +0 -8
  377. package/types/src/core/strategies/if_strategy.d.ts +0 -10
  378. package/types/src/core/strategies/sequential_strategy.d.ts +0 -16
  379. package/types/src/core/strategies/strategy.d.ts +0 -6
  380. package/types/src/core/strategies/strategy_builder.d.ts +0 -5
  381. package/types/src/core/strategies/strategy_options.d.ts +0 -16
  382. package/types/src/core/strategies/strategy_runner.d.ts +0 -5
  383. package/types/src/core/strategies/transport_strategy.d.ts +0 -15
  384. package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +0 -20
  385. package/types/src/core/timeline/level.d.ts +0 -6
  386. package/types/src/core/timeline/timeline.d.ts +0 -25
  387. package/types/src/core/timeline/timeline_sender.d.ts +0 -13
  388. package/types/src/core/timeline/timeline_transport.d.ts +0 -6
  389. package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +0 -14
  390. package/types/src/core/transports/ping_delay_options.d.ts +0 -6
  391. package/types/src/core/transports/transport.d.ts +0 -8
  392. package/types/src/core/transports/transport_connection.d.ts +0 -35
  393. package/types/src/core/transports/transport_connection_options.d.ts +0 -6
  394. package/types/src/core/transports/transport_hooks.d.ts +0 -13
  395. package/types/src/core/transports/transport_manager.d.ts +0 -14
  396. package/types/src/core/transports/transports_table.d.ts +0 -10
  397. package/types/src/core/transports/url_scheme.d.ts +0 -11
  398. package/types/src/core/transports/url_schemes.d.ts +0 -4
  399. package/types/src/core/user.d.ts +0 -21
  400. package/types/src/core/util.d.ts +0 -8
  401. package/types/src/core/utils/collections.d.ts +0 -18
  402. package/types/src/core/utils/factory.d.ts +0 -29
  403. package/types/src/core/utils/flat_promise.d.ts +0 -6
  404. package/types/src/core/utils/timers/abstract_timer.d.ts +0 -10
  405. package/types/src/core/utils/timers/index.d.ts +0 -9
  406. package/types/src/core/utils/timers/scheduling.d.ts +0 -8
  407. package/types/src/core/utils/timers/timed_callback.d.ts +0 -4
  408. package/types/src/core/utils/url_store.d.ts +0 -4
  409. package/types/src/core/watchlist.d.ts +0 -8
  410. package/types/src/runtimes/interface.d.ts +0 -43
  411. package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +0 -3
  412. package/types/src/runtimes/isomorphic/default_strategy.d.ts +0 -5
  413. package/types/src/runtimes/isomorphic/http/http.d.ts +0 -3
  414. package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +0 -3
  415. package/types/src/runtimes/isomorphic/runtime.d.ts +0 -2
  416. package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +0 -6
  417. package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +0 -1
  418. package/types/src/runtimes/isomorphic/transports/transports.d.ts +0 -5
  419. package/types/src/runtimes/node/net_info.d.ts +0 -6
  420. package/types/src/runtimes/node/runtime.d.ts +0 -3
  421. package/types/src/runtimes/react-native/net_info.d.ts +0 -8
  422. package/types/src/runtimes/react-native/runtime.d.ts +0 -3
  423. package/types/src/runtimes/web/auth/jsonp_auth.d.ts +0 -3
  424. package/types/src/runtimes/web/browser.d.ts +0 -19
  425. package/types/src/runtimes/web/default_strategy.d.ts +0 -5
  426. package/types/src/runtimes/web/dom/dependencies.d.ts +0 -4
  427. package/types/src/runtimes/web/dom/dependency_loader.d.ts +0 -10
  428. package/types/src/runtimes/web/dom/jsonp_request.d.ts +0 -10
  429. package/types/src/runtimes/web/dom/script_receiver.d.ts +0 -7
  430. package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +0 -10
  431. package/types/src/runtimes/web/dom/script_request.d.ts +0 -9
  432. package/types/src/runtimes/web/http/http.d.ts +0 -2
  433. package/types/src/runtimes/web/http/http_xdomain_request.d.ts +0 -3
  434. package/types/src/runtimes/web/net_info.d.ts +0 -7
  435. package/types/src/runtimes/web/runtime.d.ts +0 -3
  436. package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +0 -6
  437. package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +0 -1
  438. package/types/src/runtimes/web/transports/transports.d.ts +0 -2
  439. package/types/src/runtimes/worker/auth/fetch_auth.d.ts +0 -3
  440. package/types/src/runtimes/worker/net_info.d.ts +0 -6
  441. package/types/src/runtimes/worker/runtime.d.ts +0 -3
  442. package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +0 -6
  443. package/webpack/config.node.js +0 -26
  444. package/webpack/config.react-native.js +0 -35
  445. package/webpack/config.shared.js +0 -50
  446. package/webpack/config.web.js +0 -36
  447. package/webpack/config.worker.js +0 -42
  448. package/webpack/dev.server.js +0 -17
  449. package/webpack/hosting_config.js +0 -6
  450. package/with-encryption/index.d.ts +0 -29
  451. package/with-encryption/index.js +0 -4
  452. package/worker/index.d.ts +0 -29
  453. package/worker/index.js +0 -1
  454. package/worker/with-encryption/index.d.ts +0 -29
  455. package/worker/with-encryption/index.js +0 -1
@@ -1,250 +0,0 @@
1
- var TransportStrategy = require('core/strategies/transport_strategy').default;
2
- var Errors = require('core/errors');
3
- var Handshake = require('core/connection/handshake').default;
4
- var Mocks = require('mocks');
5
- var Factory = require('core/utils/factory').default;
6
-
7
- describe("TransportStrategy", function() {
8
- var transport, transportClass, handshake;
9
- var callback;
10
- var strategy;
11
-
12
- beforeEach(function() {
13
- transport = Mocks.getTransport(true);
14
- transportClass = Mocks.getTransportClass(true, transport);
15
-
16
- spyOn(Factory, 'createHandshake').and.callFake(function(transport, callback) {
17
- handshake = Mocks.getHandshake(transport, callback);
18
- return handshake;
19
- });
20
-
21
- strategy = new TransportStrategy(
22
- "name", 1, transportClass, { key: "foo" }
23
- );
24
-
25
- callback = jasmine.createSpy("connectCallback");
26
- });
27
-
28
- describe("#isSupported", function() {
29
- it("should return true when transport is supported", function() {
30
- var transportClass = Mocks.getTransportClass(true);
31
- var strategy = new TransportStrategy("name", 1, transportClass);
32
-
33
- expect(strategy.isSupported()).toBe(true);
34
- });
35
-
36
- it("should return false when transport is not supported", function() {
37
- var strategy = new TransportStrategy(
38
- "name", 1, Mocks.getTransportClass(false)
39
- );
40
- expect(strategy.isSupported()).toBe(false);
41
- });
42
- });
43
-
44
- describe("#connect", function() {
45
- beforeEach(() => {
46
- jasmine.clock().uninstall();
47
- jasmine.clock().install();
48
- });
49
-
50
- afterEach(() => {
51
- jasmine.clock().uninstall();
52
- });
53
-
54
- it("should pass key and options to the transport", function() {
55
- var options = {
56
- key: "asdf",
57
- foo: "bar"
58
- };
59
- var strategy = new TransportStrategy(
60
- "name", 1, transportClass, options
61
- );
62
-
63
- strategy.connect(0, callback);
64
- expect(transportClass.createConnection)
65
- .toHaveBeenCalledWith("name", 1, "asdf", options);
66
- });
67
-
68
- it("should call connect on the transport after initializing", function() {
69
- strategy.connect(0, callback);
70
- expect(transport.initialize).toHaveBeenCalled();
71
- expect(transport.connect).not.toHaveBeenCalled();
72
-
73
- transport.state = "initialized";
74
- transport.emit("initialized");
75
-
76
- expect(transport.connect).toHaveBeenCalled();
77
- });
78
-
79
- it("should not call back before processing a handshake", function() {
80
- strategy.connect(0, callback);
81
-
82
- transport.state = "initialized";
83
- transport.emit("initialized");
84
- transport.state = "connecting";
85
- transport.emit("connecting");
86
- transport.state = "open";
87
- transport.emit("open");
88
-
89
- expect(callback).not.toHaveBeenCalled();
90
- });
91
-
92
- it("should call back with a 'connected' action, the transport and a connection after processing it successfully", function() {
93
- strategy.connect(0, callback);
94
-
95
- transport.state = "initialized";
96
- transport.emit("initialized");
97
- transport.state = "connecting";
98
- transport.emit("connecting");
99
- transport.state = "open";
100
- transport.emit("open");
101
-
102
- var handshakeResult = {
103
- action: "connected",
104
- transport: transport,
105
- connection: Mocks.getConnection()
106
- };
107
- handshake._callback(handshakeResult);
108
-
109
- expect(callback).toHaveBeenCalledWith(null, handshakeResult);
110
- });
111
-
112
- it("should call back with an error after getting an 'error' event", function() {
113
- strategy.connect(0, callback);
114
-
115
- transport.state = "initialized";
116
- transport.emit("initialized");
117
- transport.emit("error", {
118
- type: "WebSocketError",
119
- error: 123
120
- });
121
-
122
- expect(callback).toHaveBeenCalledWith({
123
- type: "WebSocketError",
124
- error: 123
125
- });
126
- });
127
-
128
- it("should call back with an error when transport closes prematurely", function() {
129
- strategy.connect(0, callback);
130
-
131
- transport.state = "initialized";
132
- transport.emit("initialized");
133
- transport.state = "closed";
134
- transport.emit("closed");
135
-
136
- expect(callback)
137
- .toHaveBeenCalledWith(jasmine.any(Errors.TransportClosed));
138
- });
139
-
140
- it("should call back with an error if transport's priority is too low", function() {
141
- strategy.connect(2, callback);
142
-
143
- jasmine.clock().tick(100);
144
-
145
- expect(callback).toHaveBeenCalledWith(jasmine.any(Errors.TransportPriorityTooLow));
146
- });
147
-
148
- it("should call back with an error if transport is not supported", function() {
149
- transportClass.isSupported.and.returnValue(false);
150
-
151
- strategy.connect(0, callback);
152
-
153
- jasmine.clock().tick(100);
154
-
155
- expect(callback.calls.count()).toBeGreaterThan(0);
156
- expect(callback).toHaveBeenCalledWith(jasmine.any(Errors.UnsupportedStrategy));
157
- });
158
- });
159
-
160
- describe("runner.abort", function() {
161
- it("should close transport in 'connecting' state", function() {
162
- var runner = strategy.connect(0, callback);
163
-
164
- transport.state = "initialized";
165
- transport.emit("initialized");
166
- transport.state = "connecting";
167
- transport.emit("connecting");
168
-
169
- runner.abort();
170
-
171
- expect(transport.close).toHaveBeenCalled();
172
- });
173
-
174
- it("should close handshake before processing a it", function() {
175
- var runner = strategy.connect(0, callback);
176
-
177
- transport.state = "initialized";
178
- transport.emit("initialized");
179
- transport.state = "connecting";
180
- transport.emit("connecting");
181
- transport.state = "open";
182
- transport.emit("open");
183
-
184
- runner.abort();
185
-
186
- expect(handshake.close).toHaveBeenCalled();
187
- });
188
-
189
- it("should not close transport after processing a handshake", function() {
190
- var runner = strategy.connect(0, callback);
191
-
192
- transport.state = "initialized";
193
- transport.emit("initialized");
194
- transport.state = "connecting";
195
- transport.emit("connecting");
196
- transport.state = "open";
197
- transport.emit("open");
198
- handshake._callback();
199
-
200
- runner.abort();
201
-
202
- expect(transport.close).not.toHaveBeenCalled();
203
- });
204
- });
205
-
206
- describe("runner.forceMinPriority", function() {
207
- it("should close the transport if transport's priority is too low", function() {
208
- var runner = strategy.connect(0, callback);
209
- runner.forceMinPriority(5);
210
- expect(transport.close).toHaveBeenCalled();
211
- });
212
-
213
- it("should not close the transport if transport's priority is high enough", function() {
214
- var runner = strategy.connect(0, callback);
215
- runner.forceMinPriority(1);
216
- expect(transport.close).not.toHaveBeenCalled();
217
- });
218
-
219
- it("should close the handshake with too low priority before processing it", function() {
220
- var runner = strategy.connect(0, callback);
221
-
222
- transport.state = "initialized";
223
- transport.emit("initialized");
224
- transport.state = "connecting";
225
- transport.emit("connecting");
226
- transport.state = "open";
227
- transport.emit("open");
228
-
229
- runner.forceMinPriority(5);
230
-
231
- expect(handshake.close).toHaveBeenCalled();
232
- });
233
-
234
- it("should not close the transport with too low priority after processing a handshake", function() {
235
- var runner = strategy.connect(0, callback);
236
-
237
- transport.state = "initialized";
238
- transport.emit("initialized");
239
- transport.state = "connecting";
240
- transport.emit("connecting");
241
- transport.state = "open";
242
- transport.emit("open");
243
- handshake._callback();
244
-
245
- runner.forceMinPriority(5);
246
-
247
- expect(transport.close).not.toHaveBeenCalled();
248
- });
249
- });
250
- });
@@ -1,400 +0,0 @@
1
- var Mocks = require("mocks");
2
- var Runtime = require('runtime').default;
3
- var WebSocketPrioritizedCachedStrategy = require('core/strategies/websocket_prioritized_cached_strategy')
4
- .default;
5
- var Util = require('core/util').default;
6
-
7
- describe("WebSocketPrioritizedCachedStrategy", function() {
8
- beforeEach(function() {
9
- jasmine.clock().uninstall();
10
- jasmine.clock().install();
11
- });
12
-
13
- afterEach(function() {
14
- jasmine.clock().uninstall();
15
- });
16
-
17
- describe("after calling isSupported", function() {
18
- it("should return true when the substrategy is supported", function() {
19
- var substrategy = Mocks.getStrategy(true);
20
- var strategy = new WebSocketPrioritizedCachedStrategy(substrategy, {}, {});
21
- expect(strategy.isSupported()).toBe(true);
22
- });
23
-
24
- it("should return false when the substrategy is not supported", function() {
25
- var substrategy = Mocks.getStrategy(false);
26
- var strategy = new WebSocketPrioritizedCachedStrategy(substrategy, {}, {});
27
- expect(strategy.isSupported()).toBe(false);
28
- });
29
- });
30
-
31
- describe("on browsers not supporting localStorage", function() {
32
- beforeEach(function() {
33
- spyOn(Runtime, "getLocalStorage").and.returnValue(undefined);
34
- });
35
-
36
- it("should try the substrategy immediately", function() {
37
- var substrategy = Mocks.getStrategy(false);
38
- var strategy = new WebSocketPrioritizedCachedStrategy(substrategy, {}, {});
39
- var callback = jasmine.createSpy("callback");
40
- strategy.connect(0, callback);
41
- expect(substrategy.connect).toHaveBeenCalled();
42
- });
43
- });
44
-
45
- describe("on browsers supporting localStorage", function() {
46
- var localStorage;
47
-
48
- beforeEach(function() {
49
- localStorage = {};
50
- spyOn(Runtime, "getLocalStorage").and.returnValue(localStorage);
51
- });
52
-
53
- function buildCachedTransportTests(useTLS) {
54
- var TLS_KEY = "pusherTransportTLS";
55
- var NON_TLS_KEY = "pusherTransportNonTLS";
56
-
57
- var usedKey = useTLS ? TLS_KEY : NON_TLS_KEY;
58
- var unusedKey = useTLS ? NON_TLS_KEY : TLS_KEY;
59
-
60
- var substrategy, transports, timeline;
61
- var strategy;
62
- var callback;
63
-
64
- beforeEach(function() {
65
- substrategy = Mocks.getStrategy(true);
66
- transports = {
67
- test: Mocks.getStrategy(true),
68
- ws: Mocks.getStrategy(true)
69
- };
70
- timeline = Mocks.getTimeline();
71
-
72
- strategy = new WebSocketPrioritizedCachedStrategy(substrategy, transports, {
73
- useTLS: useTLS,
74
- timeline: timeline
75
- });
76
- callback = jasmine.createSpy("callback");
77
- });
78
-
79
- describe("without cached transport, useTLS=" + useTLS, function() {
80
- beforeEach(function() {
81
- delete localStorage[usedKey];
82
- localStorage[unusedKey] = "mock";
83
- });
84
-
85
- it("should not report anything to timeline", function() {
86
- strategy.connect(0, callback);
87
- expect(timeline.info).not.toHaveBeenCalled();
88
- });
89
-
90
- it("should try the substrategy immediately when cache is empty", function() {
91
- strategy.connect(0, callback);
92
- expect(substrategy.connect).toHaveBeenCalled();
93
- });
94
-
95
- it("should try the substrategy immediately when cache is stale", function() {
96
- localStorage[usedKey] = JSON.stringify({
97
- timestamp: Util.now() - 1801*1000 // default ttl is 1800s
98
- });
99
-
100
- strategy.connect(0, callback);
101
- expect(substrategy.connect).toHaveBeenCalled();
102
- });
103
-
104
- it("should abort the substrategy when requested", function() {
105
- var runner = strategy.connect(0, callback);
106
- runner.abort();
107
- expect(substrategy._abort).toHaveBeenCalled();
108
- });
109
-
110
- describe("on forceMinPriority", function() {
111
- it("should force the new priority on the substrategy", function() {
112
- var runner = strategy.connect(0, callback);
113
- runner.forceMinPriority(10);
114
- expect(substrategy._forceMinPriority).toHaveBeenCalledWith(10);
115
- });
116
- });
117
-
118
- describe("after connecting successfully", function() {
119
- var transport;
120
- var startTimestamp;
121
-
122
- beforeEach(function() {
123
- startTimestamp = Util.now();
124
- spyOn(Util, "now").and.returnValue(startTimestamp);
125
-
126
- strategy.connect(0, callback);
127
- Util.now.and.returnValue(startTimestamp + 1000);
128
-
129
- transport = Mocks.getTransport(true);
130
- transport.name = "test";
131
- substrategy._callback(null, { transport: transport });
132
- });
133
-
134
- it("should call back with the transport", function() {
135
- expect(callback).toHaveBeenCalledWith(null, {
136
- transport: transport
137
- });
138
- });
139
-
140
- it("should cache the connected transport", function() {
141
- expect(JSON.parse(localStorage[usedKey])).toEqual({
142
- timestamp: Util.now(),
143
- transport: "test",
144
- latency: 1000,
145
- cacheSkipCount: 0
146
- });
147
- expect(localStorage[unusedKey]).toEqual("mock");
148
- });
149
- });
150
-
151
- describe("after receiving an error", function() {
152
- beforeEach(function() {
153
- // set a very low timestamp to have something unused in the cache
154
- localStorage[usedKey] = JSON.stringify({
155
- timestamp: 0
156
- });
157
- strategy.connect(0, callback);
158
- substrategy._callback(1);
159
- });
160
-
161
- it("should call back after receiving an error from the substrategy", function() {
162
- expect(callback).toHaveBeenCalledWith(1);
163
- });
164
-
165
- it("should flush the appropriate transport cache", function() {
166
- expect(localStorage.pusherTransport).toBe(undefined);
167
- expect(localStorage[unusedKey]).toEqual("mock");
168
- });
169
- });
170
- });
171
-
172
- describe("with cached transport, useTLS=" + useTLS, function() {
173
- var t0 = Util.now();
174
-
175
- beforeEach(function() {
176
- cachedStrategy = Mocks.getStrategy(true);
177
- localStorage[usedKey] = JSON.stringify({
178
- timestamp: t0,
179
- transport: "test",
180
- latency: 1000,
181
- cacheSkipCount: 4
182
- });
183
- localStorage[unusedKey] = "mock";
184
- });
185
-
186
- it("should try the cached strategy first", function() {
187
- strategy.connect(0, callback);
188
- expect(transports.test.connect).toHaveBeenCalled();
189
- });
190
-
191
- it("should report to timeline when using cached strategy", function() {
192
- strategy.connect(0, callback);
193
- expect(timeline.info).toHaveBeenCalledWith({
194
- cached: true,
195
- transport: 'test',
196
- latency: 1000
197
- });
198
- });
199
-
200
- it("should abort the cached transport and not call the substrategy", function() {
201
- var runner = strategy.connect(0, callback);
202
- runner.abort();
203
- expect(transports.test._abort).toHaveBeenCalled();
204
- expect(substrategy.connect).not.toHaveBeenCalled();
205
- });
206
-
207
- describe("on forceMinPriority", function() {
208
- it("should force the new priority on the cached strategy", function() {
209
- var runner = strategy.connect(0, callback);
210
- runner.forceMinPriority(1000);
211
- expect(transports.test._forceMinPriority).toHaveBeenCalledWith(1000);
212
- });
213
- });
214
-
215
- describe("after connecting successfully with the cached transport", function() {
216
- var transport;
217
-
218
- beforeEach(function() {
219
- startTimestamp = Util.now();
220
- spyOn(Util, "now").and.returnValue(startTimestamp);
221
-
222
- strategy.connect(0, callback);
223
- Util.now.and.returnValue(startTimestamp + 2000);
224
-
225
- transport = Mocks.getTransport(true);
226
- transport.name = "test";
227
- transport.options = { useTLS: false };
228
- transports.test._callback(null, { transport: transport });
229
- });
230
-
231
- it("should call back with the transport", function() {
232
- expect(callback).toHaveBeenCalledWith(null, { transport: transport });
233
- });
234
-
235
- it("should not try the substrategy", function() {
236
- expect(substrategy.connect).not.toHaveBeenCalled();
237
- });
238
-
239
- it("should cache the connected transport", function() {
240
- expect(JSON.parse(localStorage[usedKey])).toEqual({
241
- timestamp: Util.now(),
242
- transport: 'test',
243
- latency: 2000,
244
- cacheSkipCount: 4
245
- });
246
- expect(localStorage[unusedKey]).toEqual("mock");
247
- });
248
- });
249
-
250
- describe("after double the cached latency + 1s", function() {
251
- beforeEach(function() {
252
- startTimestamp = Util.now();
253
- spyOn(Util, "now").and.returnValue(startTimestamp);
254
-
255
- strategy.connect(0, callback);
256
-
257
- Util.now.and.returnValue(startTimestamp + 3000);
258
- jasmine.clock().tick(3000);
259
- });
260
-
261
- it("should abort the cached strategy", function() {
262
- expect(transports.test._abort).toHaveBeenCalled();
263
- });
264
-
265
- it("should fall back to the substrategy", function() {
266
- expect(substrategy.connect).toHaveBeenCalled();
267
- });
268
-
269
- it("should flush the appropriate transport cache", function() {
270
- expect(localStorage[usedKey]).toBe(undefined);
271
- expect(localStorage[unusedKey]).toEqual("mock");
272
- });
273
- });
274
-
275
- describe("after failing to connect with the cached transport", function() {
276
- var runner;
277
-
278
- beforeEach(function() {
279
- startTimestamp = Util.now();
280
- spyOn(Util, "now").and.returnValue(startTimestamp);
281
-
282
- runner = strategy.connect(0, callback);
283
- runner.forceMinPriority(666);
284
- Util.now.and.returnValue(startTimestamp + 2000);
285
- transports.test._callback("error");
286
- Util.now.and.returnValue(startTimestamp + 2500);
287
- });
288
-
289
- it("should fall back to the substrategy", function() {
290
- expect(substrategy.connect).toHaveBeenCalled();
291
- });
292
-
293
- it("should flush the appropriate transport cache", function() {
294
- expect(localStorage[usedKey]).toBe(undefined);
295
- expect(localStorage[unusedKey]).toEqual("mock");
296
- });
297
-
298
- it("should abort the substrategy when requested", function() {
299
- runner.abort();
300
- expect(cachedStrategy._abort).not.toHaveBeenCalled();
301
- expect(substrategy._abort).toHaveBeenCalled();
302
- });
303
-
304
- describe("on forceMinPriority", function() {
305
- it("should force the previously set priority on the substrategy", function() {
306
- // priority is forced in beforeEach
307
- expect(substrategy.connect)
308
- .toHaveBeenCalledWith(666, jasmine.any(Function));
309
- });
310
-
311
- it("should force the new priority on the substrategy", function() {
312
- runner.forceMinPriority(3);
313
- expect(substrategy._forceMinPriority).toHaveBeenCalledWith(3);
314
- });
315
- });
316
-
317
- describe("and connecting successfully using the substrategy", function() {
318
- var transport;
319
-
320
- beforeEach(function() {
321
- transport = Mocks.getTransport(true);
322
- transport.name = "test";
323
- substrategy._callback(null, { transport: transport });
324
- });
325
-
326
- it("should call back with the connection", function() {
327
- expect(callback).toHaveBeenCalledWith(null, {
328
- transport: transport
329
- });
330
- });
331
-
332
- it("should cache the connected transport", function() {
333
- expect(JSON.parse(localStorage[usedKey])).toEqual({
334
- timestamp: Util.now(),
335
- transport: 'test',
336
- latency: 500,
337
- cacheSkipCount: 4
338
- });
339
- expect(localStorage[unusedKey]).toEqual("mock");
340
- });
341
- });
342
-
343
- describe("and failing to connect using the substrategy", function() {
344
- beforeEach(function() {
345
- substrategy._callback("error again");
346
- });
347
-
348
- it("should call back with the error", function() {
349
- expect(callback).toHaveBeenCalledWith("error again");
350
- });
351
-
352
- it("should flush the appropriate transport cache", function() {
353
- expect(localStorage[usedKey]).toBe(undefined);
354
- expect(localStorage[unusedKey]).toEqual("mock");
355
- });
356
- });
357
- });
358
- });
359
-
360
- describe('websocket prioritized', function() {
361
- beforeEach(function() {
362
- localStorage[unusedKey] = 'mock';
363
- localStorage[usedKey] = JSON.stringify({
364
- timestamp: Util.now(),
365
- transport: 'test',
366
- latency: 1000,
367
- cacheSkipCount: 2
368
- });
369
- localStorage[usedKey] = "{}";
370
- });
371
-
372
- it('should try websocket strategy again', function() {
373
- strategy.connect(0, callback);
374
- expect(substrategy.connect).toHaveBeenCalled();
375
- });
376
-
377
- it('should try cached strategy when already attempted default strategy', function() {
378
- localStorage[usedKey] = JSON.stringify({
379
- timestamp: Util.now(),
380
- transport: 'test',
381
- latency: 1000,
382
- cacheSkipCount: 4
383
- });
384
-
385
- strategy.connect(0, callback);
386
- expect(transports.test.connect).toHaveBeenCalled();
387
- expect(substrategy.connect).not.toHaveBeenCalled();
388
-
389
- expect(JSON.parse(localStorage[usedKey])).toEqual(jasmine.objectContaining({
390
- transport: 'test',
391
- cacheSkipCount: 4,
392
- }));
393
- });
394
- });
395
- }
396
-
397
- buildCachedTransportTests(false);
398
- buildCachedTransportTests(true);
399
- });
400
- });