onlinehandler_test.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // Copyright 2012 The Closure Library Authors. All Rights Reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS-IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. goog.provide('goog.testing.events.OnlineHandlerTest');
  15. goog.setTestOnly('goog.testing.events.OnlineHandlerTest');
  16. goog.require('goog.events');
  17. goog.require('goog.net.NetworkStatusMonitor');
  18. goog.require('goog.testing.events.EventObserver');
  19. goog.require('goog.testing.events.OnlineHandler');
  20. goog.require('goog.testing.jsunit');
  21. var handler;
  22. var observer;
  23. function tearDown() {
  24. handler = null;
  25. observer = null;
  26. }
  27. function testInitialValue() {
  28. createHandler(true);
  29. assertEquals(true, handler.isOnline());
  30. createHandler(false);
  31. assertEquals(false, handler.isOnline());
  32. }
  33. function testStateChange() {
  34. createHandler(true);
  35. assertEventCounts(
  36. 0 /* expectedOnlineEvents */, 0 /* expectedOfflineEvents */);
  37. // Expect no events.
  38. handler.setOnline(true);
  39. assertEquals(true, handler.isOnline());
  40. assertEventCounts(
  41. 0 /* expectedOnlineEvents */, 0 /* expectedOfflineEvents */);
  42. // Expect one offline event.
  43. handler.setOnline(false);
  44. assertEquals(false, handler.isOnline());
  45. assertEventCounts(
  46. 0 /* expectedOnlineEvents */, 1 /* expectedOfflineEvents */);
  47. // Expect no events.
  48. handler.setOnline(false);
  49. assertEquals(false, handler.isOnline());
  50. assertEventCounts(
  51. 0 /* expectedOnlineEvents */, 1 /* expectedOfflineEvents */);
  52. // Expect one online event.
  53. handler.setOnline(true);
  54. assertEquals(true, handler.isOnline());
  55. assertEventCounts(
  56. 1 /* expectedOnlineEvents */, 1 /* expectedOfflineEvents */);
  57. }
  58. function createHandler(initialValue) {
  59. handler = new goog.testing.events.OnlineHandler(initialValue);
  60. observer = new goog.testing.events.EventObserver();
  61. goog.events.listen(
  62. handler,
  63. [
  64. goog.net.NetworkStatusMonitor.EventType.ONLINE,
  65. goog.net.NetworkStatusMonitor.EventType.OFFLINE
  66. ],
  67. observer);
  68. }
  69. function assertEventCounts(expectedOnlineEvents, expectedOfflineEvents) {
  70. assertEquals(
  71. expectedOnlineEvents,
  72. observer.getEvents(goog.net.NetworkStatusMonitor.EventType.ONLINE)
  73. .length);
  74. assertEquals(
  75. expectedOfflineEvents,
  76. observer.getEvents(goog.net.NetworkStatusMonitor.EventType.OFFLINE)
  77. .length);
  78. }