You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestVBrowserDetailsUserAgentParser.java 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. package com.vaadin.client;
  2. import junit.framework.TestCase;
  3. import com.vaadin.shared.VBrowserDetails;
  4. public class TestVBrowserDetailsUserAgentParser extends TestCase {
  5. private static final String FIREFOX30_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6";
  6. private static final String FIREFOX30_LINUX = "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.0.12) Gecko/2009070811 Ubuntu/9.04 (jaunty) Firefox/3.0.12";
  7. private static final String FIREFOX35_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 (.NET CLR 3.5.30729) FirePHP/0.4";
  8. private static final String FIREFOX36_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)";
  9. private static final String FIREFOX36B_MAC = "UAString mozilla/5.0 (macintosh; u; intel mac os x 10.6; en-us; rv:1.9.2) gecko/20100115 firefox/3.6";
  10. private static final String FIREFOX_30B5_MAC = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9b5) Gecko/2008032619 Firefox/3.0b5";
  11. private static final String FIREFOX_40B7_WIN = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b7) Gecko/20100101 Firefox/4.0b7";
  12. private static final String FIREFOX_40B11_WIN = "Mozilla/5.0 (Windows NT 5.1; rv:2.0b11) Gecko/20100101 Firefox/4.0b11";
  13. private static final String KONQUEROR_LINUX = "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Exabot-Thumbnails)";
  14. private static final String IE6_WINDOWS = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
  15. private static final String IE7_WINDOWS = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
  16. private static final String IE8_WINDOWS = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
  17. private static final String IE8_IN_IE7_MODE_WINDOWS = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)";
  18. private static final String IE9_IN_IE7_MODE_WINDOWS_7 = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)";
  19. private static final String IE9_BETA_IN_IE8_MODE_WINDOWS_7 = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)";
  20. private static final String IE9_BETA_WINDOWS_7 = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
  21. private static final String IE10_WINDOWS_8 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
  22. private static final String IE11_WINDOWS_7 = "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko";
  23. private static final String IE11_WINDOWS_PHONE_8_1_UPDATE = "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) Like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537";
  24. // "Version/" was added in 10.00
  25. private static final String OPERA964_WINDOWS = "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1";
  26. private static final String OPERA1010_WINDOWS = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10";
  27. private static final String OPERA1050_WINDOWS = "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.5.22 Version/10.50";
  28. private static final String CHROME3_MAC = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.198 Safari/532.0";
  29. private static final String CHROME4_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5";
  30. private static final String SAFARI3_WINDOWS = "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.29";
  31. private static final String SAFARI4_MAC = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; en-us) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7";
  32. private static final String IPHONE_IOS_5_1 = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3";
  33. private static final String IPHONE_IOS_4_0 = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7";
  34. private static final String IPAD_IOS_4_3_1 = "Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5";
  35. // application on the home screen, without Safari in user agent
  36. private static final String IPHONE_IOS_6_1_HOMESCREEN_SIMULATOR = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B141";
  37. private static final String ANDROID_HTC_2_1 = "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; ADR6300 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17";
  38. private static final String ANDROID_GOOGLE_NEXUS_2_2 = "Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
  39. private static final String ANDROID_MOTOROLA_3_0 = "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13";
  40. private static final String ANDROID_GALAXY_NEXUS_4_0_4_CHROME = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19";
  41. public void testSafari3() {
  42. VBrowserDetails bd = new VBrowserDetails(SAFARI3_WINDOWS);
  43. assertWebKit(bd);
  44. assertSafari(bd);
  45. assertBrowserMajorVersion(bd, 3);
  46. assertBrowserMinorVersion(bd, 2);
  47. assertEngineVersion(bd, 525.0f);
  48. assertWindows(bd);
  49. }
  50. public void testSafari4() {
  51. VBrowserDetails bd = new VBrowserDetails(SAFARI4_MAC);
  52. assertWebKit(bd);
  53. assertSafari(bd);
  54. assertBrowserMajorVersion(bd, 4);
  55. assertBrowserMinorVersion(bd, 0);
  56. assertEngineVersion(bd, 531f);
  57. assertMacOSX(bd);
  58. }
  59. public void testIPhoneIOS6Homescreen() {
  60. VBrowserDetails bd = new VBrowserDetails(
  61. IPHONE_IOS_6_1_HOMESCREEN_SIMULATOR);
  62. assertWebKit(bd);
  63. // not identified as Safari, no browser version available
  64. // assertSafari(bd);
  65. // assertBrowserMajorVersion(bd, 6);
  66. // assertBrowserMinorVersion(bd, 1);
  67. assertEngineVersion(bd, 536f);
  68. assertIOS(bd, 6, 1);
  69. }
  70. public void testIPhoneIOS5() {
  71. VBrowserDetails bd = new VBrowserDetails(IPHONE_IOS_5_1);
  72. assertWebKit(bd);
  73. assertSafari(bd);
  74. assertBrowserMajorVersion(bd, 5);
  75. assertBrowserMinorVersion(bd, 1);
  76. assertEngineVersion(bd, 534f);
  77. assertIOS(bd, 5, 1);
  78. }
  79. public void testIPhoneIOS4() {
  80. VBrowserDetails bd = new VBrowserDetails(IPHONE_IOS_4_0);
  81. assertWebKit(bd);
  82. assertSafari(bd);
  83. assertBrowserMajorVersion(bd, 4);
  84. assertBrowserMinorVersion(bd, 0);
  85. assertEngineVersion(bd, 532f);
  86. assertIOS(bd, 4, 0);
  87. }
  88. public void testIPadIOS4() {
  89. VBrowserDetails bd = new VBrowserDetails(IPAD_IOS_4_3_1);
  90. assertWebKit(bd);
  91. assertSafari(bd);
  92. assertBrowserMajorVersion(bd, 5);
  93. assertBrowserMinorVersion(bd, 0);
  94. assertEngineVersion(bd, 533f);
  95. assertIOS(bd, 4, 3);
  96. }
  97. public void testAndroid21() {
  98. VBrowserDetails bd = new VBrowserDetails(ANDROID_HTC_2_1);
  99. assertWebKit(bd);
  100. assertSafari(bd);
  101. assertBrowserMajorVersion(bd, 4);
  102. assertBrowserMinorVersion(bd, 0);
  103. assertEngineVersion(bd, 530f);
  104. assertAndroid(bd, 2, 1);
  105. }
  106. public void testAndroid22() {
  107. VBrowserDetails bd = new VBrowserDetails(ANDROID_GOOGLE_NEXUS_2_2);
  108. assertWebKit(bd);
  109. assertSafari(bd);
  110. assertBrowserMajorVersion(bd, 4);
  111. assertBrowserMinorVersion(bd, 0);
  112. assertEngineVersion(bd, 533f);
  113. assertAndroid(bd, 2, 2);
  114. }
  115. public void testAndroid30() {
  116. VBrowserDetails bd = new VBrowserDetails(ANDROID_MOTOROLA_3_0);
  117. assertWebKit(bd);
  118. assertSafari(bd);
  119. assertBrowserMajorVersion(bd, 4);
  120. assertBrowserMinorVersion(bd, 0);
  121. assertEngineVersion(bd, 534f);
  122. assertAndroid(bd, 3, 0);
  123. }
  124. public void testAndroid40Chrome() {
  125. VBrowserDetails bd = new VBrowserDetails(
  126. ANDROID_GALAXY_NEXUS_4_0_4_CHROME);
  127. assertWebKit(bd);
  128. assertChrome(bd);
  129. assertBrowserMajorVersion(bd, 18);
  130. assertBrowserMinorVersion(bd, 0);
  131. assertEngineVersion(bd, 535f);
  132. assertAndroid(bd, 4, 0);
  133. }
  134. private void assertOSMajorVersion(VBrowserDetails bd, int i) {
  135. assertEquals(i, bd.getOperatingSystemMajorVersion());
  136. }
  137. private void assertOSMinorVersion(VBrowserDetails bd, int i) {
  138. assertEquals(i, bd.getOperatingSystemMinorVersion());
  139. }
  140. public void testChrome3() {
  141. VBrowserDetails bd = new VBrowserDetails(CHROME3_MAC);
  142. assertWebKit(bd);
  143. assertChrome(bd);
  144. assertBrowserMajorVersion(bd, 3);
  145. assertBrowserMinorVersion(bd, 0);
  146. assertEngineVersion(bd, 532.0f);
  147. assertMacOSX(bd);
  148. }
  149. public void testChrome4() {
  150. VBrowserDetails bd = new VBrowserDetails(CHROME4_WINDOWS);
  151. assertWebKit(bd);
  152. assertChrome(bd);
  153. assertBrowserMajorVersion(bd, 4);
  154. assertBrowserMinorVersion(bd, 0);
  155. assertEngineVersion(bd, 532f);
  156. assertWindows(bd);
  157. }
  158. public void testFirefox3() {
  159. VBrowserDetails bd = new VBrowserDetails(FIREFOX30_WINDOWS);
  160. assertGecko(bd);
  161. assertFirefox(bd);
  162. assertBrowserMajorVersion(bd, 3);
  163. assertBrowserMinorVersion(bd, 0);
  164. assertEngineVersion(bd, 1.9f);
  165. assertWindows(bd);
  166. bd = new VBrowserDetails(FIREFOX30_LINUX);
  167. assertGecko(bd);
  168. assertFirefox(bd);
  169. assertBrowserMajorVersion(bd, 3);
  170. assertBrowserMinorVersion(bd, 0);
  171. assertEngineVersion(bd, 1.9f);
  172. assertLinux(bd);
  173. }
  174. public void testFirefox35() {
  175. VBrowserDetails bd = new VBrowserDetails(FIREFOX35_WINDOWS);
  176. assertGecko(bd);
  177. assertFirefox(bd);
  178. assertBrowserMajorVersion(bd, 3);
  179. assertBrowserMinorVersion(bd, 5);
  180. assertEngineVersion(bd, 1.9f);
  181. assertWindows(bd);
  182. }
  183. public void testFirefox36() {
  184. VBrowserDetails bd = new VBrowserDetails(FIREFOX36_WINDOWS);
  185. assertGecko(bd);
  186. assertFirefox(bd);
  187. assertBrowserMajorVersion(bd, 3);
  188. assertBrowserMinorVersion(bd, 6);
  189. assertEngineVersion(bd, 1.9f);
  190. assertWindows(bd);
  191. }
  192. public void testFirefox30b5() {
  193. VBrowserDetails bd = new VBrowserDetails(FIREFOX_30B5_MAC);
  194. assertGecko(bd);
  195. assertFirefox(bd);
  196. assertBrowserMajorVersion(bd, 3);
  197. assertBrowserMinorVersion(bd, 0);
  198. assertEngineVersion(bd, 1.9f);
  199. assertMacOSX(bd);
  200. }
  201. public void testFirefox40b11() {
  202. VBrowserDetails bd = new VBrowserDetails(FIREFOX_40B11_WIN);
  203. assertGecko(bd);
  204. assertFirefox(bd);
  205. assertBrowserMajorVersion(bd, 4);
  206. assertBrowserMinorVersion(bd, 0);
  207. assertEngineVersion(bd, 2.0f);
  208. assertWindows(bd);
  209. }
  210. public void testFirefox40b7() {
  211. VBrowserDetails bd = new VBrowserDetails(FIREFOX_40B7_WIN);
  212. assertGecko(bd);
  213. assertFirefox(bd);
  214. assertBrowserMajorVersion(bd, 4);
  215. assertBrowserMinorVersion(bd, 0);
  216. assertEngineVersion(bd, 2.0f);
  217. assertWindows(bd);
  218. }
  219. public void testKonquerorLinux() {
  220. // Just ensure detection does not crash
  221. VBrowserDetails bd = new VBrowserDetails(KONQUEROR_LINUX);
  222. assertLinux(bd);
  223. }
  224. public void testFirefox36b() {
  225. VBrowserDetails bd = new VBrowserDetails(FIREFOX36B_MAC);
  226. assertGecko(bd);
  227. assertFirefox(bd);
  228. assertBrowserMajorVersion(bd, 3);
  229. assertBrowserMinorVersion(bd, 6);
  230. assertEngineVersion(bd, 1.9f);
  231. assertMacOSX(bd);
  232. }
  233. public void testOpera964() {
  234. VBrowserDetails bd = new VBrowserDetails(OPERA964_WINDOWS);
  235. assertPresto(bd);
  236. assertOpera(bd);
  237. assertBrowserMajorVersion(bd, 9);
  238. assertBrowserMinorVersion(bd, 64);
  239. assertWindows(bd);
  240. }
  241. public void testOpera1010() {
  242. VBrowserDetails bd = new VBrowserDetails(OPERA1010_WINDOWS);
  243. assertPresto(bd);
  244. assertOpera(bd);
  245. assertBrowserMajorVersion(bd, 10);
  246. assertBrowserMinorVersion(bd, 10);
  247. assertWindows(bd);
  248. }
  249. public void testOpera1050() {
  250. VBrowserDetails bd = new VBrowserDetails(OPERA1050_WINDOWS);
  251. assertPresto(bd);
  252. assertOpera(bd);
  253. assertBrowserMajorVersion(bd, 10);
  254. assertBrowserMinorVersion(bd, 50);
  255. assertWindows(bd);
  256. }
  257. public void testIE6() {
  258. VBrowserDetails bd = new VBrowserDetails(IE6_WINDOWS);
  259. assertEngineVersion(bd, -1);
  260. assertIE(bd);
  261. assertBrowserMajorVersion(bd, 6);
  262. assertBrowserMinorVersion(bd, 0);
  263. assertWindows(bd);
  264. }
  265. public void testIE7() {
  266. VBrowserDetails bd = new VBrowserDetails(IE7_WINDOWS);
  267. assertEngineVersion(bd, -1);
  268. assertIE(bd);
  269. assertBrowserMajorVersion(bd, 7);
  270. assertBrowserMinorVersion(bd, 0);
  271. assertWindows(bd);
  272. }
  273. public void testIE8() {
  274. VBrowserDetails bd = new VBrowserDetails(IE8_WINDOWS);
  275. assertTrident(bd);
  276. assertEngineVersion(bd, 4);
  277. assertIE(bd);
  278. assertBrowserMajorVersion(bd, 8);
  279. assertBrowserMinorVersion(bd, 0);
  280. assertWindows(bd);
  281. }
  282. public void testIE8CompatibilityMode() {
  283. VBrowserDetails bd = new VBrowserDetails(IE8_IN_IE7_MODE_WINDOWS);
  284. bd.setIEMode(7);
  285. assertTrident(bd);
  286. assertEngineVersion(bd, 4);
  287. assertIE(bd);
  288. assertBrowserMajorVersion(bd, 7);
  289. assertBrowserMinorVersion(bd, 0);
  290. assertWindows(bd);
  291. }
  292. public void testIE9() {
  293. VBrowserDetails bd = new VBrowserDetails(IE9_BETA_WINDOWS_7);
  294. assertTrident(bd);
  295. assertEngineVersion(bd, 5);
  296. assertIE(bd);
  297. assertBrowserMajorVersion(bd, 9);
  298. assertBrowserMinorVersion(bd, 0);
  299. assertWindows(bd);
  300. }
  301. public void testIE9InIE7CompatibilityMode() {
  302. VBrowserDetails bd = new VBrowserDetails(IE9_IN_IE7_MODE_WINDOWS_7);
  303. // bd.setIE8InCompatibilityMode();
  304. assertTrident(bd);
  305. assertEngineVersion(bd, 5);
  306. assertIE(bd);
  307. assertBrowserMajorVersion(bd, 7);
  308. assertBrowserMinorVersion(bd, 0);
  309. assertWindows(bd);
  310. }
  311. public void testIE9InIE8CompatibilityMode() {
  312. VBrowserDetails bd = new VBrowserDetails(IE9_BETA_IN_IE8_MODE_WINDOWS_7);
  313. // bd.setIE8InCompatibilityMode();
  314. /*
  315. * Trident/4.0 in example user agent string based on beta even though it
  316. * should be Trident/5.0 in real (non-beta) user agent strings
  317. */
  318. assertTrident(bd);
  319. assertEngineVersion(bd, 4);
  320. assertIE(bd);
  321. assertBrowserMajorVersion(bd, 8);
  322. assertBrowserMinorVersion(bd, 0);
  323. assertWindows(bd);
  324. }
  325. public void testIE10() {
  326. VBrowserDetails bd = new VBrowserDetails(IE10_WINDOWS_8);
  327. assertTrident(bd);
  328. assertEngineVersion(bd, 6);
  329. assertIE(bd);
  330. assertBrowserMajorVersion(bd, 10);
  331. assertBrowserMinorVersion(bd, 0);
  332. assertWindows(bd);
  333. }
  334. public void testIE11() {
  335. VBrowserDetails bd = new VBrowserDetails(IE11_WINDOWS_7);
  336. assertTrident(bd);
  337. assertEngineVersion(bd, 7);
  338. assertIE(bd);
  339. assertBrowserMajorVersion(bd, 11);
  340. assertBrowserMinorVersion(bd, 0);
  341. assertWindows(bd);
  342. }
  343. public void testIE11WindowsPhone81Update() {
  344. VBrowserDetails bd = new VBrowserDetails(IE11_WINDOWS_PHONE_8_1_UPDATE);
  345. assertTrident(bd);
  346. assertEngineVersion(bd, 7);
  347. assertIE(bd);
  348. assertBrowserMajorVersion(bd, 11);
  349. assertBrowserMinorVersion(bd, 0);
  350. assertWindows(bd);
  351. }
  352. /*
  353. * Helper methods below
  354. */
  355. private void assertEngineVersion(VBrowserDetails browserDetails,
  356. float version) {
  357. assertEquals(version, browserDetails.getBrowserEngineVersion());
  358. }
  359. private void assertBrowserMajorVersion(VBrowserDetails browserDetails,
  360. int version) {
  361. assertEquals(version, browserDetails.getBrowserMajorVersion());
  362. }
  363. private void assertBrowserMinorVersion(VBrowserDetails browserDetails,
  364. int version) {
  365. assertEquals(version, browserDetails.getBrowserMinorVersion());
  366. }
  367. private void assertGecko(VBrowserDetails browserDetails) {
  368. // Engine
  369. assertTrue(browserDetails.isGecko());
  370. assertFalse(browserDetails.isWebKit());
  371. assertFalse(browserDetails.isPresto());
  372. assertFalse(browserDetails.isTrident());
  373. }
  374. private void assertPresto(VBrowserDetails browserDetails) {
  375. // Engine
  376. assertFalse(browserDetails.isGecko());
  377. assertFalse(browserDetails.isWebKit());
  378. assertTrue(browserDetails.isPresto());
  379. assertFalse(browserDetails.isTrident());
  380. }
  381. private void assertTrident(VBrowserDetails browserDetails) {
  382. // Engine
  383. assertFalse(browserDetails.isGecko());
  384. assertFalse(browserDetails.isWebKit());
  385. assertFalse(browserDetails.isPresto());
  386. assertTrue(browserDetails.isTrident());
  387. }
  388. private void assertWebKit(VBrowserDetails browserDetails) {
  389. // Engine
  390. assertFalse(browserDetails.isGecko());
  391. assertTrue(browserDetails.isWebKit());
  392. assertFalse(browserDetails.isPresto());
  393. assertFalse(browserDetails.isTrident());
  394. }
  395. private void assertFirefox(VBrowserDetails browserDetails) {
  396. // Browser
  397. assertTrue(browserDetails.isFirefox());
  398. assertFalse(browserDetails.isChrome());
  399. assertFalse(browserDetails.isIE());
  400. assertFalse(browserDetails.isOpera());
  401. assertFalse(browserDetails.isSafari());
  402. }
  403. private void assertChrome(VBrowserDetails browserDetails) {
  404. // Browser
  405. assertFalse(browserDetails.isFirefox());
  406. assertTrue(browserDetails.isChrome());
  407. assertFalse(browserDetails.isIE());
  408. assertFalse(browserDetails.isOpera());
  409. assertFalse(browserDetails.isSafari());
  410. }
  411. private void assertIE(VBrowserDetails browserDetails) {
  412. // Browser
  413. assertFalse(browserDetails.isFirefox());
  414. assertFalse(browserDetails.isChrome());
  415. assertTrue(browserDetails.isIE());
  416. assertFalse(browserDetails.isOpera());
  417. assertFalse(browserDetails.isSafari());
  418. }
  419. private void assertOpera(VBrowserDetails browserDetails) {
  420. // Browser
  421. assertFalse(browserDetails.isFirefox());
  422. assertFalse(browserDetails.isChrome());
  423. assertFalse(browserDetails.isIE());
  424. assertTrue(browserDetails.isOpera());
  425. assertFalse(browserDetails.isSafari());
  426. }
  427. private void assertSafari(VBrowserDetails browserDetails) {
  428. // Browser
  429. assertFalse(browserDetails.isFirefox());
  430. assertFalse(browserDetails.isChrome());
  431. assertFalse(browserDetails.isIE());
  432. assertFalse(browserDetails.isOpera());
  433. assertTrue(browserDetails.isSafari());
  434. }
  435. private void assertMacOSX(VBrowserDetails browserDetails) {
  436. assertFalse(browserDetails.isLinux());
  437. assertFalse(browserDetails.isWindows());
  438. assertTrue(browserDetails.isMacOSX());
  439. assertFalse(browserDetails.isAndroid());
  440. }
  441. private void assertAndroid(VBrowserDetails browserDetails,
  442. int majorVersion, int minorVersion) {
  443. assertFalse(browserDetails.isLinux());
  444. assertFalse(browserDetails.isWindows());
  445. assertFalse(browserDetails.isMacOSX());
  446. assertFalse(browserDetails.isIOS());
  447. assertTrue(browserDetails.isAndroid());
  448. assertOSMajorVersion(browserDetails, majorVersion);
  449. assertOSMinorVersion(browserDetails, minorVersion);
  450. }
  451. private void assertIOS(VBrowserDetails browserDetails, int majorVersion,
  452. int minorVersion) {
  453. assertFalse(browserDetails.isLinux());
  454. assertFalse(browserDetails.isWindows());
  455. assertFalse(browserDetails.isMacOSX());
  456. assertTrue(browserDetails.isIOS());
  457. assertFalse(browserDetails.isAndroid());
  458. assertOSMajorVersion(browserDetails, majorVersion);
  459. assertOSMinorVersion(browserDetails, minorVersion);
  460. }
  461. private void assertWindows(VBrowserDetails browserDetails) {
  462. assertFalse(browserDetails.isLinux());
  463. assertTrue(browserDetails.isWindows());
  464. assertFalse(browserDetails.isMacOSX());
  465. assertFalse(browserDetails.isIOS());
  466. assertFalse(browserDetails.isAndroid());
  467. }
  468. private void assertLinux(VBrowserDetails browserDetails) {
  469. assertTrue(browserDetails.isLinux());
  470. assertFalse(browserDetails.isWindows());
  471. assertFalse(browserDetails.isMacOSX());
  472. assertFalse(browserDetails.isIOS());
  473. assertFalse(browserDetails.isAndroid());
  474. }
  475. }