wreq 1.2.4 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +3 -7
  3. data/Cargo.toml +6 -1
  4. data/crates/wreq-util/.github/FUNDING.yml +15 -0
  5. data/crates/wreq-util/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  6. data/crates/wreq-util/.github/ISSUE_TEMPLATE/custom.md +10 -0
  7. data/crates/wreq-util/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  8. data/crates/wreq-util/.github/dependabot.yml +22 -0
  9. data/crates/wreq-util/.github/workflows/ci.yml +82 -0
  10. data/crates/wreq-util/.github/workflows/release-plz.yml +52 -0
  11. data/crates/wreq-util/.gitignore +24 -0
  12. data/crates/wreq-util/CHANGELOG.md +74 -0
  13. data/crates/wreq-util/Cargo.toml +94 -0
  14. data/crates/wreq-util/LICENSE +201 -0
  15. data/crates/wreq-util/README.md +62 -0
  16. data/crates/wreq-util/examples/emulate.rs +39 -0
  17. data/crates/wreq-util/examples/tower_delay.rs +191 -0
  18. data/crates/wreq-util/release-plz.toml +2 -0
  19. data/crates/wreq-util/rustfmt.toml +5 -0
  20. data/crates/wreq-util/src/emulate/compress.rs +85 -0
  21. data/crates/wreq-util/src/emulate/macros.rs +370 -0
  22. data/crates/wreq-util/src/emulate/profile/chrome/header.rs +59 -0
  23. data/crates/wreq-util/src/emulate/profile/chrome/http2.rs +65 -0
  24. data/crates/wreq-util/src/emulate/profile/chrome/tls.rs +153 -0
  25. data/crates/wreq-util/src/emulate/profile/chrome.rs +2028 -0
  26. data/crates/wreq-util/src/emulate/profile/firefox/header.rs +21 -0
  27. data/crates/wreq-util/src/emulate/profile/firefox/http2.rs +113 -0
  28. data/crates/wreq-util/src/emulate/profile/firefox/tls.rs +253 -0
  29. data/crates/wreq-util/src/emulate/profile/firefox.rs +518 -0
  30. data/crates/wreq-util/src/emulate/profile/okhttp.rs +241 -0
  31. data/crates/wreq-util/src/emulate/profile/opera/header.rs +30 -0
  32. data/crates/wreq-util/src/emulate/profile/opera/http2.rs +50 -0
  33. data/crates/wreq-util/src/emulate/profile/opera/tls.rs +97 -0
  34. data/crates/wreq-util/src/emulate/profile/opera.rs +299 -0
  35. data/crates/wreq-util/src/emulate/profile/safari/header.rs +59 -0
  36. data/crates/wreq-util/src/emulate/profile/safari/http2.rs +116 -0
  37. data/crates/wreq-util/src/emulate/profile/safari/tls.rs +177 -0
  38. data/crates/wreq-util/src/emulate/profile/safari.rs +222 -0
  39. data/crates/wreq-util/src/emulate/profile.rs +47 -0
  40. data/crates/wreq-util/src/emulate.rs +369 -0
  41. data/crates/wreq-util/src/lib.rs +14 -0
  42. data/crates/wreq-util/src/rand.rs +24 -0
  43. data/crates/wreq-util/src/tower/delay/future.rs +43 -0
  44. data/crates/wreq-util/src/tower/delay/layer.rs +201 -0
  45. data/crates/wreq-util/src/tower/delay/service.rs +190 -0
  46. data/crates/wreq-util/src/tower/delay.rs +98 -0
  47. data/crates/wreq-util/src/tower.rs +7 -0
  48. data/crates/wreq-util/tests/client.rs +51 -0
  49. data/crates/wreq-util/tests/emulate_chrome.rs +270 -0
  50. data/crates/wreq-util/tests/emulate_firefox.rs +92 -0
  51. data/crates/wreq-util/tests/emulate_okhttp.rs +46 -0
  52. data/crates/wreq-util/tests/emulate_opera.rs +113 -0
  53. data/crates/wreq-util/tests/emulate_safari.rs +151 -0
  54. data/crates/wreq-util/tests/support/mod.rs +55 -0
  55. data/crates/wreq-util/tests/support/server.rs +232 -0
  56. data/examples/emulate_request.rb +1 -1
  57. data/lib/wreq.rb +20 -18
  58. data/lib/wreq_ruby/body.rb +3 -0
  59. data/lib/wreq_ruby/client.rb +18 -18
  60. data/lib/wreq_ruby/cookie.rb +2 -2
  61. data/lib/wreq_ruby/emulate.rb +3 -1
  62. data/lib/wreq_ruby/header.rb +205 -114
  63. data/lib/wreq_ruby/response.rb +28 -3
  64. data/src/emulate.rs +1 -0
  65. data/src/error.rs +2 -6
  66. data/src/header/helper.rs +112 -0
  67. data/src/header.rs +198 -133
  68. data/test/header_test.rb +228 -192
  69. data/test/stream_test.rb +36 -0
  70. metadata +54 -1
@@ -0,0 +1,270 @@
1
+ #[macro_use]
2
+ mod support;
3
+
4
+ use wreq_util::Emulation;
5
+
6
+ // Enabling certain extensions(ECH) will change the length during encryption. This is because TLS will
7
+ // automatically use padding to fill the data and add a padding extension. At this time, the ja4
8
+ // fingerprint will change.
9
+
10
+ test_emulation!(
11
+ test_chrome100,
12
+ Emulation::Chrome100,
13
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
14
+ "4f04edce68a7ecbe689edce7bf5f23f3"
15
+ );
16
+
17
+ test_emulation!(
18
+ test_chrome101,
19
+ Emulation::Chrome101,
20
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
21
+ "4f04edce68a7ecbe689edce7bf5f23f3"
22
+ );
23
+
24
+ test_emulation!(
25
+ test_edge101,
26
+ Emulation::Edge101,
27
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
28
+ "4f04edce68a7ecbe689edce7bf5f23f3"
29
+ );
30
+
31
+ test_emulation!(
32
+ test_chrome104,
33
+ Emulation::Chrome104,
34
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
35
+ "4f04edce68a7ecbe689edce7bf5f23f3"
36
+ );
37
+
38
+ test_emulation!(
39
+ test_chrome105,
40
+ Emulation::Chrome105,
41
+ [
42
+ "t13d1516h2_8daaf6152771_02713d6af862",
43
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
44
+ ],
45
+ "4f04edce68a7ecbe689edce7bf5f23f3"
46
+ );
47
+
48
+ test_emulation!(
49
+ test_chrome106,
50
+ Emulation::Chrome106,
51
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
52
+ "a345a694846ad9f6c97bcc3c75adbe26"
53
+ );
54
+
55
+ test_emulation!(
56
+ test_chrome107,
57
+ Emulation::Chrome107,
58
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
59
+ "a345a694846ad9f6c97bcc3c75adbe26"
60
+ );
61
+
62
+ test_emulation!(
63
+ test_chrome108,
64
+ Emulation::Chrome108,
65
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
66
+ "a345a694846ad9f6c97bcc3c75adbe26"
67
+ );
68
+
69
+ test_emulation!(
70
+ test_chrome109,
71
+ Emulation::Chrome109,
72
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
73
+ "a345a694846ad9f6c97bcc3c75adbe26"
74
+ );
75
+
76
+ test_emulation!(
77
+ test_chrome110,
78
+ Emulation::Chrome110,
79
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
80
+ "4f04edce68a7ecbe689edce7bf5f23f3"
81
+ );
82
+
83
+ test_emulation!(
84
+ test_chrome114,
85
+ Emulation::Chrome114,
86
+ ["t13d1516h2_8daaf6152771_e5627efa2ab1"],
87
+ "a345a694846ad9f6c97bcc3c75adbe26"
88
+ );
89
+
90
+ test_emulation!(
91
+ test_chrome116,
92
+ Emulation::Chrome116,
93
+ [
94
+ "t13d1516h2_8daaf6152771_02713d6af862",
95
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
96
+ ],
97
+ "a345a694846ad9f6c97bcc3c75adbe26"
98
+ );
99
+
100
+ test_emulation!(
101
+ test_chrome117,
102
+ Emulation::Chrome117,
103
+ [
104
+ "t13d1516h2_8daaf6152771_02713d6af862",
105
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
106
+ ],
107
+ "52d84b11737d980aef856699f885ca86"
108
+ );
109
+
110
+ test_emulation!(
111
+ test_chrome118,
112
+ Emulation::Chrome118,
113
+ [
114
+ "t13d1516h2_8daaf6152771_02713d6af862",
115
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
116
+ ],
117
+ "52d84b11737d980aef856699f885ca86"
118
+ );
119
+
120
+ test_emulation!(
121
+ test_chrome119,
122
+ Emulation::Chrome119,
123
+ [
124
+ "t13d1516h2_8daaf6152771_02713d6af862",
125
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
126
+ ],
127
+ "52d84b11737d980aef856699f885ca86"
128
+ );
129
+
130
+ test_emulation!(
131
+ test_chrome120,
132
+ Emulation::Chrome120,
133
+ [
134
+ "t13d1516h2_8daaf6152771_02713d6af862",
135
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
136
+ ],
137
+ "52d84b11737d980aef856699f885ca86"
138
+ );
139
+
140
+ test_emulation!(
141
+ test_edge122,
142
+ Emulation::Edge122,
143
+ [
144
+ "t13d1516h2_8daaf6152771_02713d6af862",
145
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
146
+ ],
147
+ "52d84b11737d980aef856699f885ca86"
148
+ );
149
+
150
+ test_emulation!(
151
+ test_chrome123,
152
+ Emulation::Chrome123,
153
+ [
154
+ "t13d1516h2_8daaf6152771_02713d6af862",
155
+ "t13d1517h2_8daaf6152771_b1ff8ab2d16f"
156
+ ],
157
+ "52d84b11737d980aef856699f885ca86"
158
+ );
159
+
160
+ test_emulation!(
161
+ test_chrome124,
162
+ Emulation::Chrome124,
163
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
164
+ "52d84b11737d980aef856699f885ca86"
165
+ );
166
+
167
+ test_emulation!(
168
+ test_chrome126,
169
+ Emulation::Chrome126,
170
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
171
+ "52d84b11737d980aef856699f885ca86"
172
+ );
173
+
174
+ test_emulation!(
175
+ test_chrome127,
176
+ Emulation::Chrome127,
177
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
178
+ "52d84b11737d980aef856699f885ca86"
179
+ );
180
+
181
+ test_emulation!(
182
+ test_edge127,
183
+ Emulation::Edge127,
184
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
185
+ "52d84b11737d980aef856699f885ca86"
186
+ );
187
+
188
+ test_emulation!(
189
+ test_chrome128,
190
+ Emulation::Chrome128,
191
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
192
+ "52d84b11737d980aef856699f885ca86"
193
+ );
194
+
195
+ test_emulation!(
196
+ test_chrome129,
197
+ Emulation::Chrome129,
198
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
199
+ "52d84b11737d980aef856699f885ca86"
200
+ );
201
+
202
+ test_emulation!(
203
+ test_chrome130,
204
+ Emulation::Chrome130,
205
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
206
+ "52d84b11737d980aef856699f885ca86"
207
+ );
208
+
209
+ test_emulation!(
210
+ test_chrome131,
211
+ Emulation::Chrome131,
212
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
213
+ "52d84b11737d980aef856699f885ca86"
214
+ );
215
+
216
+ test_emulation!(
217
+ test_edge131,
218
+ Emulation::Edge131,
219
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
220
+ "52d84b11737d980aef856699f885ca86"
221
+ );
222
+
223
+ test_emulation!(
224
+ test_chrome132,
225
+ Emulation::Chrome132,
226
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
227
+ "52d84b11737d980aef856699f885ca86"
228
+ );
229
+
230
+ test_emulation!(
231
+ test_chrome133,
232
+ Emulation::Chrome133,
233
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
234
+ "52d84b11737d980aef856699f885ca86"
235
+ );
236
+
237
+ test_emulation!(
238
+ test_chrome134,
239
+ Emulation::Chrome134,
240
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
241
+ "52d84b11737d980aef856699f885ca86"
242
+ );
243
+
244
+ test_emulation!(
245
+ test_edge134,
246
+ Emulation::Edge134,
247
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
248
+ "52d84b11737d980aef856699f885ca86"
249
+ );
250
+
251
+ test_emulation!(
252
+ test_chrome135,
253
+ Emulation::Chrome135,
254
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
255
+ "52d84b11737d980aef856699f885ca86"
256
+ );
257
+
258
+ test_emulation!(
259
+ test_chrome136,
260
+ Emulation::Chrome136,
261
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
262
+ "52d84b11737d980aef856699f885ca86"
263
+ );
264
+
265
+ test_emulation!(
266
+ test_chrome137,
267
+ Emulation::Chrome137,
268
+ ["t13d1516h2_8daaf6152771_d8a2da3f94cd"],
269
+ "52d84b11737d980aef856699f885ca86"
270
+ );
@@ -0,0 +1,92 @@
1
+ #[macro_use]
2
+ mod support;
3
+
4
+ use wreq_util::Emulation;
5
+
6
+ // Enabling certain extensions(ECH) will change the length during encryption. This is because TLS will
7
+ // automatically use padding to fill the data and add a padding extension. At this time, the ja4
8
+ // fingerprint will change.
9
+
10
+ test_emulation!(
11
+ test_firefox_109,
12
+ Emulation::Firefox109,
13
+ ["t13d1715h2_5b57614c22b0_3d5424432f57"],
14
+ "73d042072ceabaedacfd45e84dff1020"
15
+ );
16
+
17
+ test_emulation!(
18
+ test_firefox_117,
19
+ Emulation::Firefox117,
20
+ ["t13d1715h2_5b57614c22b0_3d5424432f57"],
21
+ "73d042072ceabaedacfd45e84dff1020"
22
+ );
23
+
24
+ test_emulation!(
25
+ test_firefox_128,
26
+ Emulation::Firefox128,
27
+ ["t13d1513h2_8daaf6152771_748f4c70de1c"],
28
+ "1d8a6f51fd7253d04674593073fc18b0"
29
+ );
30
+
31
+ test_emulation!(
32
+ test_firefox_133,
33
+ Emulation::Firefox133,
34
+ ["t13d1716h2_5b57614c22b0_eeeea6562960"],
35
+ "6ea73faa8fc5aac76bded7bd238f6433"
36
+ );
37
+
38
+ test_emulation!(
39
+ test_firefox_135,
40
+ Emulation::Firefox135,
41
+ ["t13d1717h2_5b57614c22b0_3cbfd9057e0d"],
42
+ "6ea73faa8fc5aac76bded7bd238f6433"
43
+ );
44
+
45
+ test_emulation!(
46
+ test_firefox_private_135,
47
+ Emulation::FirefoxPrivate135,
48
+ ["t13d1715h2_5b57614c22b0_a54fffd0eb61"],
49
+ "6ea73faa8fc5aac76bded7bd238f6433"
50
+ );
51
+
52
+ test_emulation!(
53
+ test_firefox_android_135,
54
+ Emulation::FirefoxAndroid135,
55
+ ["t13d1716h2_5b57614c22b0_eeeea6562960"],
56
+ "41a06cadb1c6385e6d08c8d0dbbea818"
57
+ );
58
+
59
+ test_emulation!(
60
+ test_firefox_136,
61
+ Emulation::Firefox136,
62
+ ["t13d1717h2_5b57614c22b0_3cbfd9057e0d"],
63
+ "6ea73faa8fc5aac76bded7bd238f6433"
64
+ );
65
+
66
+ test_emulation!(
67
+ test_firefox_private_136,
68
+ Emulation::FirefoxPrivate136,
69
+ ["t13d1715h2_5b57614c22b0_a54fffd0eb61"],
70
+ "6ea73faa8fc5aac76bded7bd238f6433"
71
+ );
72
+
73
+ test_emulation!(
74
+ test_firefox_139,
75
+ Emulation::Firefox139,
76
+ ["t13d1717h2_5b57614c22b0_3cbfd9057e0d"],
77
+ "6ea73faa8fc5aac76bded7bd238f6433"
78
+ );
79
+
80
+ test_emulation!(
81
+ test_firefox_142,
82
+ Emulation::Firefox142,
83
+ ["t13d1717h2_5b57614c22b0_3cbfd9057e0d"],
84
+ "6ea73faa8fc5aac76bded7bd238f6433"
85
+ );
86
+
87
+ test_emulation!(
88
+ test_firefox_143,
89
+ Emulation::Firefox143,
90
+ ["t13d1717h2_5b57614c22b0_3cbfd9057e0d"],
91
+ "6ea73faa8fc5aac76bded7bd238f6433"
92
+ );
@@ -0,0 +1,46 @@
1
+ #[macro_use]
2
+ mod support;
3
+
4
+ use wreq_util::Emulation;
5
+
6
+ test_emulation!(
7
+ test_okhttp3_13,
8
+ Emulation::OkHttp3_13,
9
+ ["t13d1613h2_46e7e9700bed_eca864cca44a"],
10
+ "605a1154008045d7e3cb3c6fb062c0ce"
11
+ );
12
+
13
+ test_emulation!(
14
+ test_okhttp3_14,
15
+ Emulation::OkHttp3_14,
16
+ ["t13d1613h2_46e7e9700bed_eca864cca44a"],
17
+ "605a1154008045d7e3cb3c6fb062c0ce"
18
+ );
19
+
20
+ test_emulation!(
21
+ test_okhttp4_9,
22
+ Emulation::OkHttp4_9,
23
+ ["t13d1513h2_8daaf6152771_eca864cca44a"],
24
+ "605a1154008045d7e3cb3c6fb062c0ce"
25
+ );
26
+
27
+ test_emulation!(
28
+ test_okhttp4_10,
29
+ Emulation::OkHttp4_10,
30
+ ["t13d1613h2_46e7e9700bed_eca864cca44a"],
31
+ "605a1154008045d7e3cb3c6fb062c0ce"
32
+ );
33
+
34
+ test_emulation!(
35
+ test_okhttp4_12,
36
+ Emulation::OkHttp4_12,
37
+ ["t13d1613h2_46e7e9700bed_eca864cca44a"],
38
+ "605a1154008045d7e3cb3c6fb062c0ce"
39
+ );
40
+
41
+ test_emulation!(
42
+ test_okhttp5,
43
+ Emulation::OkHttp5,
44
+ ["t13d1613h2_46e7e9700bed_eca864cca44a"],
45
+ "605a1154008045d7e3cb3c6fb062c0ce"
46
+ );
@@ -0,0 +1,113 @@
1
+ #[macro_use]
2
+ mod support;
3
+
4
+ use wreq_util::Emulation;
5
+
6
+ // Enabling certain extensions will change the length during encryption. This is because TLS will
7
+ // automatically use padding to fill the data and add a padding extension. At this time, the ja4
8
+ // fingerprint will change.
9
+
10
+ test_emulation!(
11
+ test_opera116,
12
+ Emulation::Opera116,
13
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
14
+ "52d84b11737d980aef856699f885ca86"
15
+ );
16
+
17
+ test_emulation!(
18
+ test_opera117,
19
+ Emulation::Opera117,
20
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
21
+ "52d84b11737d980aef856699f885ca86"
22
+ );
23
+
24
+ test_emulation!(
25
+ test_opera118,
26
+ Emulation::Opera118,
27
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
28
+ "52d84b11737d980aef856699f885ca86"
29
+ );
30
+
31
+ test_emulation!(
32
+ test_opera119,
33
+ Emulation::Opera119,
34
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
35
+ "52d84b11737d980aef856699f885ca86"
36
+ );
37
+
38
+ test_emulation!(
39
+ test_opera120,
40
+ Emulation::Opera120,
41
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
42
+ "52d84b11737d980aef856699f885ca86"
43
+ );
44
+
45
+ test_emulation!(
46
+ test_opera121,
47
+ Emulation::Opera121,
48
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
49
+ "52d84b11737d980aef856699f885ca86"
50
+ );
51
+
52
+ test_emulation!(
53
+ test_opera122,
54
+ Emulation::Opera122,
55
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
56
+ "52d84b11737d980aef856699f885ca86"
57
+ );
58
+
59
+ test_emulation!(
60
+ test_opera123,
61
+ Emulation::Opera123,
62
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
63
+ "52d84b11737d980aef856699f885ca86"
64
+ );
65
+
66
+ test_emulation!(
67
+ test_opera124,
68
+ Emulation::Opera124,
69
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
70
+ "52d84b11737d980aef856699f885ca86"
71
+ );
72
+
73
+ test_emulation!(
74
+ test_opera125,
75
+ Emulation::Opera125,
76
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
77
+ "52d84b11737d980aef856699f885ca86"
78
+ );
79
+
80
+ test_emulation!(
81
+ test_opera126,
82
+ Emulation::Opera126,
83
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
84
+ "52d84b11737d980aef856699f885ca86"
85
+ );
86
+
87
+ test_emulation!(
88
+ test_opera127,
89
+ Emulation::Opera127,
90
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
91
+ "52d84b11737d980aef856699f885ca86"
92
+ );
93
+
94
+ test_emulation!(
95
+ test_opera128,
96
+ Emulation::Opera128,
97
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
98
+ "52d84b11737d980aef856699f885ca86"
99
+ );
100
+
101
+ test_emulation!(
102
+ test_opera129,
103
+ Emulation::Opera129,
104
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
105
+ "52d84b11737d980aef856699f885ca86"
106
+ );
107
+
108
+ test_emulation!(
109
+ test_opera130,
110
+ Emulation::Opera130,
111
+ ["t13d1516h2_8daaf6152771_02713d6af862"],
112
+ "52d84b11737d980aef856699f885ca86"
113
+ );
@@ -0,0 +1,151 @@
1
+ #[macro_use]
2
+ mod support;
3
+
4
+ use wreq_util::Emulation;
5
+
6
+ test_emulation!(
7
+ test_safari_15_3,
8
+ Emulation::Safari15_3,
9
+ ["t13d2614h2_2802a3db6c62_14788d8d241b"],
10
+ "dda308d35f4e5db7b52a61720ca1b122"
11
+ );
12
+
13
+ test_emulation!(
14
+ test_safari_15_5,
15
+ Emulation::Safari15_5,
16
+ ["t13d2614h2_2802a3db6c62_14788d8d241b"],
17
+ "dda308d35f4e5db7b52a61720ca1b122"
18
+ );
19
+
20
+ test_emulation!(
21
+ test_safari_15_6_1,
22
+ Emulation::Safari15_6_1,
23
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
24
+ "dda308d35f4e5db7b52a61720ca1b122"
25
+ );
26
+
27
+ test_emulation!(
28
+ test_safari_16,
29
+ Emulation::Safari16,
30
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
31
+ "dda308d35f4e5db7b52a61720ca1b122"
32
+ );
33
+
34
+ test_emulation!(
35
+ test_safari_16_5,
36
+ Emulation::Safari16_5,
37
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
38
+ "dda308d35f4e5db7b52a61720ca1b122"
39
+ );
40
+
41
+ test_emulation!(
42
+ test_safari_ios_16_5,
43
+ Emulation::SafariIos16_5,
44
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
45
+ "d5fcbdc393757341115a861bf8d23265"
46
+ );
47
+
48
+ test_emulation!(
49
+ test_safari_17,
50
+ Emulation::Safari17_0,
51
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
52
+ "959a7e813b79b909a1a0b00a38e8bba3"
53
+ );
54
+
55
+ test_emulation!(
56
+ test_safari_17_2_1,
57
+ Emulation::Safari17_2_1,
58
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
59
+ "959a7e813b79b909a1a0b00a38e8bba3"
60
+ );
61
+
62
+ test_emulation!(
63
+ test_safari_17_4_1,
64
+ Emulation::Safari17_4_1,
65
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
66
+ "dda308d35f4e5db7b52a61720ca1b122"
67
+ );
68
+
69
+ test_emulation!(
70
+ test_safari_17_5,
71
+ Emulation::Safari17_5,
72
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
73
+ "959a7e813b79b909a1a0b00a38e8bba3"
74
+ );
75
+
76
+ test_emulation!(
77
+ test_safari_ios_17_2,
78
+ Emulation::SafariIos17_2,
79
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
80
+ "ad8424af1cc590e09f7b0c499bf7fcdb"
81
+ );
82
+
83
+ test_emulation!(
84
+ test_safari_ios_17_4_1,
85
+ Emulation::SafariIos17_4_1,
86
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
87
+ "ad8424af1cc590e09f7b0c499bf7fcdb"
88
+ );
89
+
90
+ test_emulation!(
91
+ test_safari_18,
92
+ Emulation::Safari18,
93
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
94
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
95
+ );
96
+
97
+ test_emulation!(
98
+ test_safari_18_2,
99
+ Emulation::Safari18_2,
100
+ ["t13d2014h2_a09f3c656075_e42f34c56612"],
101
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
102
+ );
103
+
104
+ test_emulation!(
105
+ test_safari_18_3,
106
+ Emulation::Safari18_3,
107
+ ["t13d2014h2_a09f3c656075_e42f34c56612"],
108
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
109
+ );
110
+
111
+ test_emulation!(
112
+ test_safari_18_3_1,
113
+ Emulation::Safari18_3_1,
114
+ ["t13d2014h2_a09f3c656075_e42f34c56612"],
115
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
116
+ );
117
+
118
+ test_emulation!(
119
+ test_safari_ios_18_1_1,
120
+ Emulation::SafariIos18_1_1,
121
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
122
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
123
+ );
124
+
125
+ test_emulation!(
126
+ test_safari_ipad_18,
127
+ Emulation::SafariIPad18,
128
+ ["t13d2014h2_a09f3c656075_14788d8d241b"],
129
+ "d4a2dcbfde511b5040ed5a5190a8d78b"
130
+ );
131
+
132
+ test_emulation!(
133
+ test_safari_18_5,
134
+ Emulation::Safari18_5,
135
+ ["t13d2014h2_a09f3c656075_e42f34c56612"],
136
+ "c52879e43202aeb92740be6e8c86ea96"
137
+ );
138
+
139
+ test_emulation!(
140
+ test_safari_26,
141
+ Emulation::Safari26,
142
+ ["t13d2013h2_a09f3c656075_7f0f34a4126d"],
143
+ "c52879e43202aeb92740be6e8c86ea96"
144
+ );
145
+
146
+ test_emulation!(
147
+ test_safari_26_1,
148
+ Emulation::Safari26_1,
149
+ ["t13d2014h2_a09f3c656075_e42f34c56612"],
150
+ "773906b0efdefa24a7f2b8eb6985bf37"
151
+ );