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

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