|
| 1 | +/* eslint-disable func-names */ |
| 2 | +var assert = require('assert'); |
| 3 | +var isBrowserSupported = require('.'); |
| 4 | + |
| 5 | +describe('isBrowserSupported()', function () { |
| 6 | + var tests = [ |
| 7 | + { |
| 8 | + userAgent: 'Mozilla/5.0 (Linux; U; Android 6.0; en-US; iris 870 4G Build/MRA58K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/11.0.5.850 U3/0.8.0 Mobile Safari/534.30', |
| 9 | + selections: 'and_uc >= 11', |
| 10 | + expected: true |
| 11 | + }, |
| 12 | + { |
| 13 | + userAgent: 'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', |
| 14 | + selections: 'android >= 4', |
| 15 | + expected: true |
| 16 | + }, |
| 17 | + { |
| 18 | + userAgent: 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+', |
| 19 | + selections: 'bb >= 6', |
| 20 | + expected: true |
| 21 | + }, |
| 22 | + { |
| 23 | + userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', |
| 24 | + selections: 'chrome >= 40', |
| 25 | + expected: true |
| 26 | + }, |
| 27 | + { |
| 28 | + userAgent: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2769.0 Mobile Safari/537.36', |
| 29 | + selections: 'and_chr >= 53', |
| 30 | + expected: true |
| 31 | + }, |
| 32 | + { |
| 33 | + userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246', |
| 34 | + selections: 'edge >= 12', |
| 35 | + expected: true |
| 36 | + }, |
| 37 | + { |
| 38 | + userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1', |
| 39 | + selections: 'firefox >= 40', |
| 40 | + expected: true |
| 41 | + }, |
| 42 | + { |
| 43 | + userAgent: 'Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/49.0', |
| 44 | + selections: 'and_ff >= 49', |
| 45 | + expected: true |
| 46 | + }, |
| 47 | + { |
| 48 | + userAgent: 'Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))', |
| 49 | + selections: 'ie >= 10', |
| 50 | + expected: false |
| 51 | + }, |
| 52 | + { |
| 53 | + userAgent: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)', |
| 54 | + selections: 'ie >= 10', |
| 55 | + expected: true |
| 56 | + }, |
| 57 | + { |
| 58 | + userAgent: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; HTC; Windows Phone 8X by HTC)', |
| 59 | + selections: 'ie_mob >= 10', |
| 60 | + expected: true |
| 61 | + }, |
| 62 | + { |
| 63 | + userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/8.0 Mobile/11A465 Safari/9537.53', |
| 64 | + selections: 'ios_saf >= 8.1', |
| 65 | + expected: false |
| 66 | + }, |
| 67 | + { |
| 68 | + userAgent: 'Mozilla/5.0 (iPad; CPU OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) GSA/8.0.57838 Mobile/12B410 Safari/600.1.4', |
| 69 | + selections: 'ios_saf >= 8.1', |
| 70 | + expected: true |
| 71 | + }, |
| 72 | + { |
| 73 | + userAgent: 'Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16', |
| 74 | + selections: 'opera >= 9', |
| 75 | + expected: true |
| 76 | + }, |
| 77 | + { |
| 78 | + userAgent: 'Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02', |
| 79 | + selections: 'op_mob >= 12', |
| 80 | + expected: true |
| 81 | + }, |
| 82 | + { |
| 83 | + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A', |
| 84 | + selections: 'safari >= 7', |
| 85 | + expected: true |
| 86 | + }, |
| 87 | + { |
| 88 | + userAgent: 'Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36', |
| 89 | + selections: 'samsung >= 4', |
| 90 | + expected: true |
| 91 | + }, |
| 92 | + { |
| 93 | + userAgent: 'Googlebot/2.1 (+http://www.google.com/bot.html)', |
| 94 | + expected: false |
| 95 | + } |
| 96 | + ]; |
| 97 | + |
| 98 | + tests.forEach(function (test) { |
| 99 | + var description = |
| 100 | + JSON.stringify(test.userAgent) + |
| 101 | + (test.expected ? ' matches with ' : ' does not match with ') + |
| 102 | + JSON.stringify(test.selections); |
| 103 | + |
| 104 | + it(description, function () { |
| 105 | + var actual = isBrowserSupported(test.userAgent, test.selections); |
| 106 | + assert.equal(test.expected, actual); |
| 107 | + }); |
| 108 | + }); |
| 109 | +}); |
0 commit comments