1
+ const UACHTests = [
2
+ {
3
+ desc : 'Avast Secure Browser' ,
4
+ headers : {
5
+ 'sec-ch-ua' : '"Avast Secure Browser";v="131", "Chromium";v="131", "Not_A Brand";v="24"'
6
+ } ,
7
+ expect : {
8
+ browser : {
9
+ name : 'Avast Secure Browser' ,
10
+ version : '131' ,
11
+ major : '131' ,
12
+ type : undefined
13
+ }
14
+ }
15
+ } ,
16
+ {
17
+ desc : 'Brave' ,
18
+ headers : {
19
+ 'sec-ch-ua' : '"Not A(Brand";v="8", "Chromium";v="132", "Brave";v="132"'
20
+ } ,
21
+ expect : {
22
+ browser : {
23
+ name : 'Brave' ,
24
+ version : '132' ,
25
+ major : '132' ,
26
+ type : undefined
27
+ }
28
+ }
29
+ } ,
30
+ {
31
+ desc : 'Chrome' ,
32
+ headers : {
33
+ 'sec-ch-ua' : '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"'
34
+ } ,
35
+ expect : {
36
+ browser : {
37
+ name : 'Chrome' ,
38
+ version : '111' ,
39
+ major : '111' ,
40
+ type : undefined
41
+ }
42
+ }
43
+ } ,
44
+ {
45
+ desc : 'Chrome Headless' ,
46
+ headers : {
47
+ 'sec-ch-ua' : '"Chromium";v="124", "HeadlessChrome";v="124", "Not-A.Brand";v="99"'
48
+ } ,
49
+ expect : {
50
+ browser : {
51
+ name : 'Chrome Headless' ,
52
+ version : '124' ,
53
+ major : '124' ,
54
+ type : undefined
55
+ }
56
+ }
57
+ } ,
58
+ {
59
+ desc : 'Chrome WebView' ,
60
+ headers : {
61
+ 'sec-ch-ua' : '"Android WebView";v="123", "Not:A-Brand";v="8", "Chromium";v="123"'
62
+ } ,
63
+ expect : {
64
+ browser : {
65
+ name : 'Chrome WebView' ,
66
+ version : '123' ,
67
+ major : '123' ,
68
+ type : undefined
69
+ }
70
+ }
71
+ } ,
72
+ {
73
+ desc : 'DuckDuckGo' ,
74
+ headers : {
75
+ 'sec-ch-ua' : '"DuckDuckGo";v="131", "Chromium";v="131", "Not_A Brand";v="24"'
76
+ } ,
77
+ expect : {
78
+ browser : {
79
+ name : 'DuckDuckGo' ,
80
+ version : '131' ,
81
+ major : '131' ,
82
+ type : undefined
83
+ }
84
+ }
85
+ } ,
86
+ {
87
+ desc : 'Edge' ,
88
+ headers : {
89
+ 'sec-ch-ua' : '"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"'
90
+ } ,
91
+ expect : {
92
+ browser : {
93
+ name : 'Edge' ,
94
+ version : '120' ,
95
+ major : '120' ,
96
+ type : undefined
97
+ }
98
+ }
99
+ } ,
100
+ {
101
+ desc : 'Edge WebView2' ,
102
+ headers : {
103
+ 'sec-ch-ua' : '" Not;A Brand";v="99", "Microsoft Edge";v="103", "Chromium";v="103", "Microsoft Edge WebView2";v="104"'
104
+ } ,
105
+ expect : {
106
+ browser : {
107
+ name : 'Edge WebView2' ,
108
+ version : '104' ,
109
+ major : '104' ,
110
+ type : undefined
111
+ }
112
+ }
113
+ } ,
114
+ {
115
+ desc : 'Huawei Browser' ,
116
+ headers : {
117
+ 'sec-ch-ua' : '"Not.A/Brand";v="8", "Chromium";v="114", "HuaweiBrowser";v="114"'
118
+ } ,
119
+ expect : {
120
+ browser : {
121
+ name : 'Huawei Browser' ,
122
+ version : '114' ,
123
+ major : '114' ,
124
+ type : undefined
125
+ }
126
+ }
127
+ } ,
128
+ {
129
+ desc : 'MIUI Browser' ,
130
+ headers : {
131
+ 'sec-ch-ua' : '"Miui Browser";v="123", "Not:A-Brand";v="8", "Chromium";v="123"'
132
+ } ,
133
+ expect : {
134
+ browser : {
135
+ name : 'MIUI Browser' ,
136
+ version : '123' ,
137
+ major : '123' ,
138
+ type : undefined
139
+ }
140
+ }
141
+ } ,
142
+ {
143
+ desc : 'Oculus Browser' ,
144
+ headers : {
145
+ 'sec-ch-ua' : '"Chromium";v="130", "Oculus Browser";v="36", "Not?A_Brand";v="99"'
146
+ } ,
147
+ expect : {
148
+ browser : {
149
+ name : 'Oculus Browser' ,
150
+ version : '36' ,
151
+ major : '36' ,
152
+ type : undefined
153
+ }
154
+ }
155
+ } ,
156
+ {
157
+ desc : 'Opera' ,
158
+ headers : {
159
+ 'sec-ch-ua' : '"Opera";v="116", "Chromium";v="131", "Not_A Brand";v="24"'
160
+ } ,
161
+ expect : {
162
+ browser : {
163
+ name : 'Opera' ,
164
+ version : '116' ,
165
+ major : '116' ,
166
+ type : undefined
167
+ }
168
+ }
169
+ } ,
170
+ {
171
+ desc : 'Opera GX' ,
172
+ headers : {
173
+ 'sec-ch-ua' : '"Chromium";v="128", "Not;A=Brand";v="24", "Opera GX";v="114"'
174
+ } ,
175
+ expect : {
176
+ browser : {
177
+ name : 'Opera GX' ,
178
+ version : '114' ,
179
+ major : '114' ,
180
+ type : undefined
181
+ }
182
+ }
183
+ } ,
184
+ {
185
+ desc : 'Opera Mobi' ,
186
+ headers : {
187
+ 'sec-ch-ua' : '"OperaMobile";v="86", ";Not A Brand";v="99", "Opera";v="115", "Chromium";v="130"'
188
+ } ,
189
+ expect : {
190
+ browser : {
191
+ name : 'Opera Mobi' ,
192
+ version : '86' ,
193
+ major : '86' ,
194
+ type : undefined
195
+ }
196
+ }
197
+ } ,
198
+ {
199
+ desc : 'Opera Mobi' ,
200
+ headers : {
201
+ 'sec-ch-ua' : '"Chromium";v="132", "OperaMobile";v="87", "Opera";v="117", " Not A;Brand";v="99"'
202
+ } ,
203
+ expect : {
204
+ browser : {
205
+ name : 'Opera Mobi' ,
206
+ version : '87' ,
207
+ major : '87' ,
208
+ type : undefined
209
+ }
210
+ }
211
+ } ,
212
+ {
213
+ desc : 'Samsung Internet' ,
214
+ headers : {
215
+ 'sec-ch-ua' : '"Chromium";v="125", "Not.A/Brand";v="24", "Samsung Internet";v="27.0"'
216
+ } ,
217
+ expect : {
218
+ browser : {
219
+ name : 'Samsung Internet' ,
220
+ version : '27.0' ,
221
+ major : '27' ,
222
+ type : undefined
223
+ }
224
+ }
225
+ } ,
226
+ {
227
+ desc : 'Yandex' ,
228
+ headers : {
229
+ 'sec-ch-ua' : '"Chromium";v="130", "YaBrowser";v="24.12", "Not?A_Brand";v="99", "Yowser";v="2.5"'
230
+ } ,
231
+ expect : {
232
+ browser : {
233
+ name : 'Yandex' ,
234
+ version : '24.12' ,
235
+ major : '24' ,
236
+ type : undefined
237
+ }
238
+ }
239
+ }
240
+ ] ;
241
+
242
+ module . exports = UACHTests ;
0 commit comments