platform_test.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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.platform.
  16. */
  17. goog.provide('goog.labs.userAgent.platformTest');
  18. goog.require('goog.labs.userAgent.platform');
  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.platformTest');
  23. function setUp() {
  24. goog.labs.userAgent.util.setUserAgent(null);
  25. }
  26. function testAndroid() {
  27. var uaString = goog.labs.userAgent.testAgents.ANDROID_BROWSER_233;
  28. goog.labs.userAgent.util.setUserAgent(uaString);
  29. assertTrue(goog.labs.userAgent.platform.isAndroid());
  30. assertVersion('2.3.3');
  31. assertVersionBetween('2.3.0', '2.3.5');
  32. assertVersionBetween('2.3', '2.4');
  33. assertVersionBetween('2', '3');
  34. uaString = goog.labs.userAgent.testAgents.ANDROID_BROWSER_221;
  35. goog.labs.userAgent.util.setUserAgent(uaString);
  36. assertTrue(goog.labs.userAgent.platform.isAndroid());
  37. assertVersion('2.2.1');
  38. assertVersionBetween('2.2.0', '2.2.5');
  39. assertVersionBetween('2.2', '2.3');
  40. assertVersionBetween('2', '3');
  41. uaString = goog.labs.userAgent.testAgents.CHROME_ANDROID;
  42. goog.labs.userAgent.util.setUserAgent(uaString);
  43. assertTrue(goog.labs.userAgent.platform.isAndroid());
  44. assertVersion('4.0.2');
  45. assertVersionBetween('4.0.0', '4.1.0');
  46. assertVersionBetween('4.0', '4.1');
  47. assertVersionBetween('4', '5');
  48. }
  49. function testKindleFire() {
  50. uaString = goog.labs.userAgent.testAgents.KINDLE_FIRE;
  51. goog.labs.userAgent.util.setUserAgent(uaString);
  52. assertTrue(goog.labs.userAgent.platform.isAndroid());
  53. assertVersion('4.0.3');
  54. }
  55. function testIpod() {
  56. var uaString = goog.labs.userAgent.testAgents.SAFARI_IPOD;
  57. goog.labs.userAgent.util.setUserAgent(uaString);
  58. assertTrue(goog.labs.userAgent.platform.isIpod());
  59. assertTrue(goog.labs.userAgent.platform.isIos());
  60. assertVersion('');
  61. }
  62. function testIphone() {
  63. var uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_421;
  64. goog.labs.userAgent.util.setUserAgent(uaString);
  65. assertTrue(goog.labs.userAgent.platform.isIphone());
  66. assertTrue(goog.labs.userAgent.platform.isIos());
  67. assertVersion('4.2.1');
  68. assertVersionBetween('4', '5');
  69. assertVersionBetween('4.2', '4.3');
  70. uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_6;
  71. goog.labs.userAgent.util.setUserAgent(uaString);
  72. assertTrue(goog.labs.userAgent.platform.isIphone());
  73. assertTrue(goog.labs.userAgent.platform.isIos());
  74. assertVersion('6.0');
  75. assertVersionBetween('5', '7');
  76. uaString = goog.labs.userAgent.testAgents.SAFARI_IPHONE_32;
  77. goog.labs.userAgent.util.setUserAgent(uaString);
  78. assertTrue(goog.labs.userAgent.platform.isIphone());
  79. assertTrue(goog.labs.userAgent.platform.isIos());
  80. assertVersion('3.2');
  81. assertVersionBetween('3', '4');
  82. uaString = goog.labs.userAgent.testAgents.WEBVIEW_IPAD;
  83. goog.labs.userAgent.util.setUserAgent(uaString);
  84. assertFalse(goog.labs.userAgent.platform.isIphone());
  85. assertTrue(goog.labs.userAgent.platform.isIpad());
  86. assertTrue(goog.labs.userAgent.platform.isIos());
  87. assertVersion('6.0');
  88. assertVersionBetween('5', '7');
  89. }
  90. function testIpad() {
  91. var uaString = goog.labs.userAgent.testAgents.IPAD_4;
  92. goog.labs.userAgent.util.setUserAgent(uaString);
  93. assertTrue(goog.labs.userAgent.platform.isIpad());
  94. assertTrue(goog.labs.userAgent.platform.isIos());
  95. assertVersion('3.2');
  96. assertVersionBetween('3', '4');
  97. assertVersionBetween('3.1', '4');
  98. uaString = goog.labs.userAgent.testAgents.IPAD_5;
  99. goog.labs.userAgent.util.setUserAgent(uaString);
  100. assertTrue(goog.labs.userAgent.platform.isIpad());
  101. assertTrue(goog.labs.userAgent.platform.isIos());
  102. assertVersion('5.1');
  103. assertVersionBetween('5', '6');
  104. uaString = goog.labs.userAgent.testAgents.IPAD_6;
  105. goog.labs.userAgent.util.setUserAgent(uaString);
  106. assertTrue(goog.labs.userAgent.platform.isIpad());
  107. assertTrue(goog.labs.userAgent.platform.isIos());
  108. assertVersion('6.0');
  109. assertVersionBetween('5', '7');
  110. }
  111. function testMac() {
  112. var uaString = goog.labs.userAgent.testAgents.CHROME_MAC;
  113. var platform = 'IntelMac';
  114. goog.labs.userAgent.util.setUserAgent(uaString, platform);
  115. assertTrue(goog.labs.userAgent.platform.isMacintosh());
  116. assertVersion('10.8.2');
  117. assertVersionBetween('10', '11');
  118. assertVersionBetween('10.8', '10.9');
  119. assertVersionBetween('10.8.1', '10.8.3');
  120. uaString = goog.labs.userAgent.testAgents.OPERA_MAC;
  121. goog.labs.userAgent.util.setUserAgent(uaString, platform);
  122. assertTrue(goog.labs.userAgent.platform.isMacintosh());
  123. assertVersion('10.6.8');
  124. assertVersionBetween('10', '11');
  125. assertVersionBetween('10.6', '10.7');
  126. assertVersionBetween('10.6.5', '10.7.0');
  127. uaString = goog.labs.userAgent.testAgents.SAFARI_MAC;
  128. goog.labs.userAgent.util.setUserAgent(uaString, platform);
  129. assertTrue(goog.labs.userAgent.platform.isMacintosh());
  130. assertVersionBetween('10', '11');
  131. assertVersionBetween('10.6', '10.7');
  132. assertVersionBetween('10.6.5', '10.7.0');
  133. uaString = goog.labs.userAgent.testAgents.FIREFOX_MAC;
  134. goog.labs.userAgent.util.setUserAgent(uaString, platform);
  135. assertTrue(goog.labs.userAgent.platform.isMacintosh());
  136. assertVersion('11.7.9');
  137. assertVersionBetween('11', '12');
  138. assertVersionBetween('11.7', '11.8');
  139. assertVersionBetween('11.7.9', '11.8.0');
  140. }
  141. function testLinux() {
  142. var uaString = goog.labs.userAgent.testAgents.FIREFOX_LINUX;
  143. goog.labs.userAgent.util.setUserAgent(uaString);
  144. assertTrue(goog.labs.userAgent.platform.isLinux());
  145. assertVersion('');
  146. uaString = goog.labs.userAgent.testAgents.CHROME_LINUX;
  147. goog.labs.userAgent.util.setUserAgent(uaString);
  148. assertTrue(goog.labs.userAgent.platform.isLinux());
  149. assertVersion('');
  150. uaString = goog.labs.userAgent.testAgents.OPERA_LINUX;
  151. goog.labs.userAgent.util.setUserAgent(uaString);
  152. assertTrue(goog.labs.userAgent.platform.isLinux());
  153. assertVersion('');
  154. }
  155. function testWindows() {
  156. var uaString = goog.labs.userAgent.testAgents.SAFARI_WINDOWS;
  157. goog.labs.userAgent.util.setUserAgent(uaString);
  158. assertTrue(goog.labs.userAgent.platform.isWindows());
  159. assertVersion('6.1');
  160. assertVersionBetween('6', '7');
  161. uaString = goog.labs.userAgent.testAgents.IE_10;
  162. goog.labs.userAgent.util.setUserAgent(uaString);
  163. assertTrue(goog.labs.userAgent.platform.isWindows());
  164. assertVersion('6.2');
  165. assertVersionBetween('6', '6.5');
  166. uaString = goog.labs.userAgent.testAgents.CHROME_25;
  167. goog.labs.userAgent.util.setUserAgent(uaString);
  168. assertTrue(goog.labs.userAgent.platform.isWindows());
  169. assertVersion('5.1');
  170. assertVersionBetween('5', '6');
  171. uaString = goog.labs.userAgent.testAgents.FIREFOX_WINDOWS;
  172. goog.labs.userAgent.util.setUserAgent(uaString);
  173. assertTrue(goog.labs.userAgent.platform.isWindows());
  174. assertVersion('6.1');
  175. assertVersionBetween('6', '7');
  176. uaString = goog.labs.userAgent.testAgents.IE_11;
  177. goog.labs.userAgent.util.setUserAgent(uaString);
  178. assertTrue(goog.labs.userAgent.platform.isWindows());
  179. assertVersion('6.3');
  180. assertVersionBetween('6', '6.5');
  181. uaString = goog.labs.userAgent.testAgents.IE_10_MOBILE;
  182. goog.labs.userAgent.util.setUserAgent(uaString);
  183. assertTrue(goog.labs.userAgent.platform.isWindows());
  184. assertVersion('8.0');
  185. }
  186. function testChromeOS() {
  187. var uaString = goog.labs.userAgent.testAgents.CHROME_OS_910;
  188. goog.labs.userAgent.util.setUserAgent(uaString);
  189. assertTrue(goog.labs.userAgent.platform.isChromeOS());
  190. assertVersion('9.10.0');
  191. assertVersionBetween('9', '10');
  192. uaString = goog.labs.userAgent.testAgents.CHROME_OS;
  193. goog.labs.userAgent.util.setUserAgent(uaString);
  194. assertTrue(goog.labs.userAgent.platform.isChromeOS());
  195. assertVersion('3701.62.0');
  196. assertVersionBetween('3701', '3702');
  197. }
  198. function assertVersion(version) {
  199. assertEquals(version, goog.labs.userAgent.platform.getVersion());
  200. }
  201. function assertVersionBetween(lowVersion, highVersion) {
  202. assertTrue(goog.labs.userAgent.platform.isVersionOrHigher(lowVersion));
  203. assertFalse(goog.labs.userAgent.platform.isVersionOrHigher(highVersion));
  204. }