engine_test.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. // Copyright 2013 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. /**
  15. * @fileoverview Unit tests for goog.labs.userAgent.engine.
  16. */
  17. goog.provide('goog.labs.userAgent.engineTest');
  18. goog.require('goog.labs.userAgent.engine');
  19. goog.require('goog.labs.userAgent.testAgents');
  20. goog.require('goog.labs.userAgent.util');
  21. goog.require('goog.testing.jsunit');
  22. goog.setTestOnly('goog.labs.userAgent.engineTest');
  23. var testAgents = goog.labs.userAgent.testAgents;
  24. function setUp() {
  25. goog.labs.userAgent.util.setUserAgent(null);
  26. }
  27. function assertVersion(version) {
  28. assertEquals(version, goog.labs.userAgent.engine.getVersion());
  29. }
  30. function assertLowAndHighVersions(lowVersion, highVersion) {
  31. assertTrue(goog.labs.userAgent.engine.isVersionOrHigher(lowVersion));
  32. assertFalse(goog.labs.userAgent.engine.isVersionOrHigher(highVersion));
  33. }
  34. function testPresto() {
  35. goog.labs.userAgent.util.setUserAgent(testAgents.OPERA_LINUX);
  36. assertTrue(goog.labs.userAgent.engine.isPresto());
  37. assertFalse(goog.labs.userAgent.engine.isGecko());
  38. assertVersion('2.9.168');
  39. assertLowAndHighVersions('2.9', '2.10');
  40. goog.labs.userAgent.util.setUserAgent(testAgents.OPERA_MAC);
  41. assertTrue(goog.labs.userAgent.engine.isPresto());
  42. assertFalse(goog.labs.userAgent.engine.isGecko());
  43. assertVersion('2.9.168');
  44. assertLowAndHighVersions('2.9', '2.10');
  45. goog.labs.userAgent.util.setUserAgent(testAgents.OPERA_MINI);
  46. assertTrue(goog.labs.userAgent.engine.isPresto());
  47. assertFalse(goog.labs.userAgent.engine.isGecko());
  48. assertVersion('2.8.119');
  49. assertLowAndHighVersions('2.8', '2.9');
  50. }
  51. function testTrident() {
  52. goog.labs.userAgent.util.setUserAgent(testAgents.IE_6);
  53. assertTrue(goog.labs.userAgent.engine.isTrident());
  54. assertFalse(goog.labs.userAgent.engine.isGecko());
  55. assertFalse(goog.labs.userAgent.engine.isEdge());
  56. assertVersion('');
  57. goog.labs.userAgent.util.setUserAgent(testAgents.IE_10);
  58. assertTrue(goog.labs.userAgent.engine.isTrident());
  59. assertFalse(goog.labs.userAgent.engine.isGecko());
  60. assertFalse(goog.labs.userAgent.engine.isEdge());
  61. assertVersion('6.0');
  62. assertLowAndHighVersions('6.0', '7.0');
  63. goog.labs.userAgent.util.setUserAgent(testAgents.IE_8);
  64. assertTrue(goog.labs.userAgent.engine.isTrident());
  65. assertFalse(goog.labs.userAgent.engine.isGecko());
  66. assertFalse(goog.labs.userAgent.engine.isEdge());
  67. assertVersion('4.0');
  68. assertLowAndHighVersions('4.0', '5.0');
  69. goog.labs.userAgent.util.setUserAgent(testAgents.IE_9_COMPATIBILITY);
  70. assertTrue(goog.labs.userAgent.engine.isTrident());
  71. assertFalse(goog.labs.userAgent.engine.isGecko());
  72. assertFalse(goog.labs.userAgent.engine.isEdge());
  73. assertVersion('5.0');
  74. assertLowAndHighVersions('5.0', '6.0');
  75. goog.labs.userAgent.util.setUserAgent(goog.labs.userAgent.testAgents.IE_11);
  76. assertTrue(goog.labs.userAgent.engine.isTrident());
  77. assertFalse(goog.labs.userAgent.engine.isGecko());
  78. assertFalse(goog.labs.userAgent.engine.isEdge());
  79. assertVersion('7.0');
  80. assertLowAndHighVersions('6.0', '8.0');
  81. goog.labs.userAgent.util.setUserAgent(
  82. goog.labs.userAgent.testAgents.IE_10_MOBILE);
  83. assertTrue(goog.labs.userAgent.engine.isTrident());
  84. assertFalse(goog.labs.userAgent.engine.isEdge());
  85. assertVersion('6.0');
  86. }
  87. function testEdge() {
  88. goog.labs.userAgent.util.setUserAgent(testAgents.EDGE_12_0);
  89. assertTrue(goog.labs.userAgent.engine.isEdge());
  90. assertFalse(goog.labs.userAgent.engine.isTrident());
  91. assertFalse(goog.labs.userAgent.engine.isGecko());
  92. assertVersion('12.0');
  93. assertLowAndHighVersions('11.0', '13.0');
  94. }
  95. function testWebKit() {
  96. goog.labs.userAgent.util.setUserAgent(testAgents.ANDROID_BROWSER_235);
  97. assertTrue(goog.labs.userAgent.engine.isWebKit());
  98. assertFalse(goog.labs.userAgent.engine.isGecko());
  99. assertFalse(goog.labs.userAgent.engine.isEdge());
  100. assertVersion('533.1');
  101. assertLowAndHighVersions('533.0', '534.0');
  102. goog.labs.userAgent.util.setUserAgent(testAgents.ANDROID_BROWSER_403_ALT);
  103. assertTrue(goog.labs.userAgent.engine.isWebKit());
  104. assertFalse(goog.labs.userAgent.engine.isGecko());
  105. assertFalse(goog.labs.userAgent.engine.isEdge());
  106. assertVersion('534.30');
  107. assertLowAndHighVersions('533.0', '535.0');
  108. goog.labs.userAgent.util.setUserAgent(testAgents.CHROME_25);
  109. assertTrue(goog.labs.userAgent.engine.isWebKit());
  110. assertFalse(goog.labs.userAgent.engine.isGecko());
  111. assertFalse(goog.labs.userAgent.engine.isEdge());
  112. assertVersion('535.8');
  113. assertLowAndHighVersions('535.0', '536.0');
  114. goog.labs.userAgent.util.setUserAgent(testAgents.SAFARI_6);
  115. assertTrue(goog.labs.userAgent.engine.isWebKit());
  116. assertFalse(goog.labs.userAgent.engine.isGecko());
  117. assertFalse(goog.labs.userAgent.engine.isEdge());
  118. assertVersion('536.25');
  119. assertLowAndHighVersions('536.0', '537.0');
  120. goog.labs.userAgent.util.setUserAgent(testAgents.SAFARI_IPHONE_6);
  121. assertTrue(goog.labs.userAgent.engine.isWebKit());
  122. assertFalse(goog.labs.userAgent.engine.isGecko());
  123. assertFalse(goog.labs.userAgent.engine.isEdge());
  124. assertVersion('536.26');
  125. assertLowAndHighVersions('536.0', '537.0');
  126. }
  127. function testOpera15() {
  128. goog.labs.userAgent.util.setUserAgent(testAgents.OPERA_15);
  129. assertTrue(goog.labs.userAgent.engine.isWebKit());
  130. assertFalse(goog.labs.userAgent.engine.isPresto());
  131. assertVersion('537.36');
  132. }
  133. function testGecko() {
  134. goog.labs.userAgent.util.setUserAgent(testAgents.FIREFOX_LINUX);
  135. assertTrue(goog.labs.userAgent.engine.isGecko());
  136. assertFalse(goog.labs.userAgent.engine.isEdge());
  137. assertVersion('15.0.1');
  138. assertLowAndHighVersions('14.0', '16.0');
  139. goog.labs.userAgent.util.setUserAgent(testAgents.FIREFOX_19);
  140. assertTrue(goog.labs.userAgent.engine.isGecko());
  141. assertFalse(goog.labs.userAgent.engine.isEdge());
  142. assertVersion('19.0');
  143. assertLowAndHighVersions('18.0', '20.0');
  144. goog.labs.userAgent.util.setUserAgent(testAgents.FIREFOX_WINDOWS);
  145. assertTrue(goog.labs.userAgent.engine.isGecko());
  146. assertFalse(goog.labs.userAgent.engine.isEdge());
  147. assertVersion('14.0.1');
  148. assertLowAndHighVersions('14.0', '15.0');
  149. }