Merge "Update docs/hooks.txt for ShowSearchHitTitle"
[mediawiki.git] / tests / qunit / suites / resources / startup.test.js
blobe6e798b8ed61308f4cbe4ee2386f0b855d955a84
1 /*global isCompatible: true */
2 ( function ( $ ) {
3         var testcases = {
4                 tested: [
5                         /* Grade A */
7                         // Chrome
8                         'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16',
9                         // Firefox 4+
10                         'Mozilla/5.0 (Windows NT 6.1.1; rv:5.0) Gecko/20100101 Firefox/5.0',
11                         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0',
12                         'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 11_7_9; de-LI; rv:1.9b4) Gecko/2012010317 Firefox/10.0a4',
13                         'Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0',
14                         'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120403211507 Firefox/12.0',
15                         'Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1',
16                         // Kindle Fire
17                         'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1',
18                         // Safari 5.0+
19                         'Mozilla/5.0 (Macintosh; I; Intel Mac OS X 10_6_7; ru-ru) AppleWebKit/534.31+ (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1',
20                         // Opera 12+ (Presto-based)
21                         'Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00',
22                         'Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.17',
23                         // Opera 15+ (Chromium-based)
24                         'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 OPR/15.0.1147.153',
25                         'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 OPR/16.0.1196.62',
26                         'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 OPR/23.0.1522.75',
27                         // Internet Explorer 9+
28                         'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)',
29                         'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
30                         'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
31                         // IE Mobile
32                         'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)',
33                         // Edge
34                         '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',
35                         // Edge Mobile
36                         'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166',
37                         // BlackBerry 6+
38                         'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.570 Mobile Safari/534.8+',
39                         'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+',
40                         'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.3+ (KHTML, like Gecko) Version/10.0.9.386 Mobile Safari/537.3+',
41                         // Open WebOS 1.4+ (HP Veer 4G)
42                         'Mozilla/5.0 (webOS/2.1.2; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 P160UNA/1.0',
43                         // Firefox Mobile
44                         'Mozilla/5.0 (Mobile; rv:14.0) Gecko/14.0 Firefox/14.0',
45                         // iOS
46                         'Mozilla/5.0 (ipod: U;CPU iPhone OS 2_2 like Mac OS X: es_es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3',
47                         'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3',
48                         // Android
49                         'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17',
50                         // UC Mini (speed mode off)
51                         'Mozilla/5.0 (Linux; U; Android 6.0.1; en-US; Nexus_5 Build/MMB29S) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 UCBrowser/10.7.6.805 Mobile',
53                         /* Grade C */
55                         // Internet Explorer < 9
56                         'Mozilla/2.0 (compatible; MSIE 3.03; Windows 3.1)',
57                         'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)',
58                         'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98;)',
59                         'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
60                         'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)',
61                         'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; en-US)',
62                         'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)',
63                         // Firefox < 3
64                         'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2',
65                         'Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1.1) Gecko/20070311 Firefox/2.0.0.1',
66                         // Opera < 12
67                         'Mozilla/5.0 (Windows NT 5.0; U) Opera 7.54 [en]',
68                         'Opera/7.54 (Windows NT 5.0; U) [en]',
69                         'Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.0',
70                         'Opera/8.0 (X11; Linux i686; U; cs)',
71                         'Opera/9.00 (X11; Linux i686; U; de)',
72                         'Opera/9.62 (X11; Linux i686; U; en) Presto/2.1.1',
73                         'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00',
74                         'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10',
75                         'Opera/9.80 (Windows NT 6.1; WOW64; U; pt) Presto/2.10.229 Version/11.62',
76                         // BlackBerry < 6
77                         'BlackBerry9300/5.0.0.716 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/133',
78                         'BlackBerry7250/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1',
80                         /* Grade X */
82                         // Firefox 3.6
83                         'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3',
84                         // Gecko
85                         'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060928 (Debian|Debian-1.8.0.7-1) Epiphany/2.14',
86                         'Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.6) Gecko/20070817 IceWeasel/2.0.0.6-g2',
87                         // KHTML
88                         'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.4 (like Gecko)',
89                         'Mozilla/5.0 (compatible; Konqueror/4.3; Linux) KHTML/4.3.5 (like Gecko)',
90                         // Text browsers
91                         'Links (2.1pre33; Darwin 8.11.0 Power Macintosh; x)',
92                         'Links (6.9; Unix 6.9-astral sparc; 80x25)',
93                         'Lynx/2.8.6rel.4 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8g',
94                         'w3m/0.5.1',
95                         // Bots
96                         'Googlebot/2.1 (+http://www.google.com/bot.html)',
97                         'Mozilla/5.0 (compatible; googlebot/2.1; +http://www.google.com/bot.html)',
98                         'Mozilla/5.0 (compatible; YandexBot/3.0)',
99                         // Scripts
100                         'curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5',
101                         'Wget/1.9',
102                         'Wget/1.10.1 (Red Hat modified)',
103                         // Unknown
104                         'I\'m an unknown browser',
105                         'I\'m an unknown Glass browser',
106                         // Empty
107                         ''
108                 ],
109                 blacklisted: [
110                         /* Grade C */
112                         // PlayStation
113                         'Mozilla/5.0 (PLAYSTATION 3; 1.10)',
114                         'Mozilla/5.0 (PLAYSTATION 3; 3.55)',
115                         'Mozilla/5.0 (PLAYSTATION 3 4.21) AppleWebKit/531.22.8 (KHTML, like Gecko)',
116                         'Mozilla/5.0 (PlayStation 4 1.70) AppleWebKit/536.26 (KHTML, like Gecko)',
117                         // Open WebOS < 1.5 (Palm Pre, Palm Pixi)
118                         'Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0',
119                         'Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1 ',
120                         // SymbianOS
121                         'NokiaN95_8GB-3;Mozilla/5.0 SymbianOS/9.2;U;Series60/3.1 NokiaN95_8GB-3/11.2.011 Profile/MIDP-2.0 Configuration/CLDC-1.1 AppleWebKit/413 (KHTML, like Gecko)',
122                         'Nokia7610/2.0 (5.0509.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 ',
123                         'Mozilla/5.0 (SymbianOS/9.1; U; [en]; SymbianOS/91 Series60/3.0) AppleWebKit/413 (KHTML, like Gecko) Safari/413',
124                         'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-2/091.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.34 Mobile Safari/533.4',
125                         // NetFront
126                         'Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 Kindle/1.0 (screen 600x800)',
127                         'Mozilla/4.0 (compatible; Linux 2.6.22) NetFront/3.4 Kindle/2.0 (screen 824x1200; rotate)',
128                         'Mozilla/4.08 (Windows; Mobile Content Viewer/1.0) NetFront/3.2',
129                         // Opera Mini
130                         'Opera/9.80 (J2ME/MIDP; Opera Mini/3.1.10423/22.387; U; en) Presto/2.5.25 Version/10.54',
131                         'Opera/9.50 (J2ME/MIDP; Opera Mini/4.0.10031/298; U; en)',
132                         'Opera/9.80 (J2ME/MIDP; Opera Mini/6.24093/26.1305; U; en) Presto/2.8.119 Version/10.54',
133                         'Opera/9.80 (Android; Opera Mini/7.29530/27.1407; U; en) Presto/2.8.119 Version/11.10',
134                         // Ovi Browser
135                         'Mozilla/5.0 (Series40; NokiaX3-02/05.60; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.2.0.0.6',
136                         'Mozilla/5.0 (Series40; Nokia305/05.92; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.7.0.0.11',
137                         // Google Glass
138                         'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
139                         // MeeGo
140                         'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
141                         // UC Mini (speed mode on)
142                         'Mozilla/5.0 (X11; U; Linux i686; zh-CN; r:1.2.3.4) Gecko/',
143                         // Google Web Light proxy
144                         'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko; googleweblight) Chrome/38.0.1025.166 Mobile Safari/535.19'
145                 ]
146         };
148         QUnit.module( 'startup', QUnit.newMwEnvironment() );
150         QUnit.test( 'isCompatible( featureTestable )', testcases.tested.length, function ( assert ) {
151                 $.each( testcases.tested, function ( i, ua ) {
152                                 assert.strictEqual( isCompatible( ua ), true, ua );
153                         }
154                 );
155         } );
157         QUnit.test( 'isCompatible( blacklisted )', testcases.blacklisted.length, function ( assert ) {
158                 $.each( testcases.blacklisted, function ( i, ua ) {
159                                 assert.strictEqual( isCompatible( ua ), false, ua );
160                         }
161                 );
162         } );
163 }( jQuery ) );