browser_sniffer 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a40b8a9409737267257c6f483d852934412d648c1ed126c8e94cb673fab7b32
4
- data.tar.gz: 7c9cb6ef28afe9e07dee3d04a5af69e2629d885a3b4f83003b4890cdc0a25228
3
+ metadata.gz: fd1a593002b74a298902288af9c9ad850599246545788da8ec5282661ace4b72
4
+ data.tar.gz: e51a161b66ef5e9f237e498fed82c101ee55dcfd85493a2003743cdbf305be43
5
5
  SHA512:
6
- metadata.gz: b1db89af88e1acbcae5bf21033f03a27ebd8653fca7154d6831270855e61addf1592ab694582e7cbc9ffaff7809b57003e98de0501257bcb8a4be99e74d1ea9e
7
- data.tar.gz: d53de5538c4e6ecca8461e53590459918fc9a61f8a7d34227bd441bd53e47e804cf79cccb0102be76deb4e64cf4e0e52a7c4a0a2bf065026d32d7ab09eec211e
6
+ metadata.gz: dcce3cb34e52ffe1d43b5ee06f96d7093effce03cef846c709d7addc06555266edcd2f1b0d5b0879d5a5bae17e2f46d78cc64a939bc45e5a229f9575106f9011
7
+ data.tar.gz: 4a2b2a8995d1e2b7cc6c9aa61bcbb839f63dae0963cd7513eb2ad88fae1755dc39713c730d8d74b0e51ec7a1257f5e4e87fde5a8bed88c87c9837e69f969c6fc
@@ -69,6 +69,9 @@ class BrowserSniffer
69
69
  # Shopify Mobile for iPhone or iPad
70
70
  %r{.*(Shopify Mobile)\/(?:iPhone\sOS|iOS)\/([\d\.]+) \((iPhone|iPad|iPod)}i
71
71
  ], [[:name, 'Shopify Mobile'], :version], [
72
+ # Shopify POS Next for iPhone or iPad
73
+ %r{.*(Shopify POS Next|Shopify POS)\/(?:iOS)\/([\d\.]+) \((iPhone|iPad|iPod)}i
74
+ ], [[:name, 'Shopify POS'], :version], [
72
75
  # Shopify Mobile for Android
73
76
  %r{.*(Shopify Mobile)\/Android\/([\d\.]+(?: \(debug(?:|-push)\))?) \(Build (\d+) with API (\d+)}i
74
77
  ], [[:name, 'Shopify Mobile'], :version, :build, :sdk_version], [
@@ -158,6 +161,15 @@ class BrowserSniffer
158
161
  ], [[:type, :tablet], :model], [
159
162
  # Shopify Mobile for iPod touch
160
163
  %r{.*Shopify Mobile/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPod)([\d,]+)}i
164
+ ], [[:type, :handheld], :model], [
165
+ # Shopify POS Next for iPhone
166
+ %r{.*(?:Shopify POS Next|Shopify POS)/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPhone)([\d,]+)}i
167
+ ], [[:type, :handheld], :model], [
168
+ # Shopify POS Next for iPad
169
+ %r{.*(?:Shopify POS Next|Shopify POS)/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPad)([\d,]+)}i
170
+ ], [[:type, :tablet], :model], [
171
+ # Shopify POS Next for iPod touch
172
+ %r{.*(?:Shopify POS Next|Shopify POS)/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPod)([\d,]+)}i
161
173
  ], [[:type, :handheld], :model], [
162
174
  # Shopify Ping for iPhone
163
175
  %r{.*Shopify Ping/(?:iPhone\sOS|iOS)/[\d\.]+ \((iPhone)([\d,]+)}i
@@ -278,6 +290,9 @@ class BrowserSniffer
278
290
  ], [[:type, :ios], [:version, lambda { |str| str && str.scan(/\d+/).join(".") }], [:name, 'iOS']], [
279
291
  # Shopify Mobile for iPhone or iPad
280
292
  %r{.*(Shopify Mobile)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
293
+ ], [[:type, :ios], [:name, 'iOS'], :version], [
294
+ # Shopify POS Next for iPhone or iPad
295
+ %r{.*(Shopify POS Next|Shopify POS)\/(?:iPhone\sOS|iOS)[\/\d\.]* \((iPhone|iPad|iPod).*\/([\d\.]+)\)}i
281
296
  ], [[:type, :ios], [:name, 'iOS'], :version], [
282
297
  # Shopify Ping for iOS
283
298
  %r{.*Shopify Ping\/(iOS)\/[\d\.]+ \(.*\/([\d\.]+)\)}i
@@ -1,3 +1,3 @@
1
1
  class BrowserSniffer
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.3"
3
3
  end
@@ -252,6 +252,48 @@ describe "Shopify agents" do
252
252
  }), sniffer.os_info
253
253
  end
254
254
 
255
+ it "Shopify POS on iPhone with modern user agent can be sniffed" do
256
+ user_agent = "Shopify POS/iOS/3.12.1 (iPhone10,2/com.jadedpixel.pos/10.3.1)"
257
+ sniffer = BrowserSniffer.new(user_agent)
258
+
259
+ assert_equal ({
260
+ name: 'Shopify POS',
261
+ version: '3.12.1',
262
+ }), sniffer.browser_info
263
+
264
+ assert_equal ({
265
+ type: :handheld,
266
+ model: '10,2',
267
+ }), sniffer.device_info
268
+
269
+ assert_equal ({
270
+ type: :ios,
271
+ version: '10.3.1',
272
+ name: 'iOS',
273
+ }), sniffer.os_info
274
+ end
275
+
276
+ it "Shopify POS Next on iPhone with modern user agent can be sniffed" do
277
+ user_agent = "Shopify POS Next/iOS/3.12.1 (iPhone10,2/com.jadedpixel.pos/10.3.1)"
278
+ sniffer = BrowserSniffer.new(user_agent)
279
+
280
+ assert_equal ({
281
+ name: 'Shopify POS',
282
+ version: '3.12.1',
283
+ }), sniffer.browser_info
284
+
285
+ assert_equal ({
286
+ type: :handheld,
287
+ model: '10,2',
288
+ }), sniffer.device_info
289
+
290
+ assert_equal ({
291
+ type: :ios,
292
+ version: '10.3.1',
293
+ name: 'iOS',
294
+ }), sniffer.os_info
295
+ end
296
+
255
297
  it "Shopify POS on iPod touch can be sniffed" do
256
298
  user_agent = "Shopify POS/3.12.1 (iPod touch; iOS 9.3.5; Scale/2.00)"
257
299
  sniffer = BrowserSniffer.new(user_agent)
@@ -273,6 +315,48 @@ describe "Shopify agents" do
273
315
  }), sniffer.os_info
274
316
  end
275
317
 
318
+ it "Shopify POS on iPod touch with modern user agent can be sniffed" do
319
+ user_agent = "Shopify POS/iOS/3.12.1 (iPod5,2/com.jadedpixel.pos/10.3.1)"
320
+ sniffer = BrowserSniffer.new(user_agent)
321
+
322
+ assert_equal ({
323
+ name: 'Shopify POS',
324
+ version: '3.12.1',
325
+ }), sniffer.browser_info
326
+
327
+ assert_equal ({
328
+ type: :handheld,
329
+ model: '5,2',
330
+ }), sniffer.device_info
331
+
332
+ assert_equal ({
333
+ type: :ios,
334
+ version: '10.3.1',
335
+ name: 'iOS',
336
+ }), sniffer.os_info
337
+ end
338
+
339
+ it "Shopify POS Next on iPod touch with modern user agent can be sniffed" do
340
+ user_agent = "Shopify POS Next/iOS/3.12.1 (iPod5,2/com.jadedpixel.pos/10.3.1)"
341
+ sniffer = BrowserSniffer.new(user_agent)
342
+
343
+ assert_equal ({
344
+ name: 'Shopify POS',
345
+ version: '3.12.1',
346
+ }), sniffer.browser_info
347
+
348
+ assert_equal ({
349
+ type: :handheld,
350
+ model: '5,2',
351
+ }), sniffer.device_info
352
+
353
+ assert_equal ({
354
+ type: :ios,
355
+ version: '10.3.1',
356
+ name: 'iOS',
357
+ }), sniffer.os_info
358
+ end
359
+
276
360
  it "Shopify POS on iPad is detected as tablet" do
277
361
  user_agent = "Shopify POS/3.10.12 (iPad; iOS 10.3.1; Scale/2.00)"
278
362
  sniffer = BrowserSniffer.new(user_agent)
@@ -280,6 +364,48 @@ describe "Shopify agents" do
280
364
  assert_equal :tablet, sniffer.form_factor
281
365
  end
282
366
 
367
+ it "Shopify POS on iPad with modern user agent can be sniffed" do
368
+ user_agent = "Shopify POS/iOS/3.12.1 (iPad4,7/com.jadedpixel.pos/10.3.1)"
369
+ sniffer = BrowserSniffer.new(user_agent)
370
+
371
+ assert_equal ({
372
+ name: 'Shopify POS',
373
+ version: '3.12.1',
374
+ }), sniffer.browser_info
375
+
376
+ assert_equal ({
377
+ type: :tablet,
378
+ model: '4,7',
379
+ }), sniffer.device_info
380
+
381
+ assert_equal ({
382
+ type: :ios,
383
+ version: '10.3.1',
384
+ name: 'iOS',
385
+ }), sniffer.os_info
386
+ end
387
+
388
+ it "Shopify POS Next on iPad with modern user agent can be sniffed" do
389
+ user_agent = "Shopify POS Next/iOS/3.12.1 (iPad4,7/com.jadedpixel.pos/10.3.1)"
390
+ sniffer = BrowserSniffer.new(user_agent)
391
+
392
+ assert_equal ({
393
+ name: 'Shopify POS',
394
+ version: '3.12.1',
395
+ }), sniffer.browser_info
396
+
397
+ assert_equal ({
398
+ type: :tablet,
399
+ model: '4,7',
400
+ }), sniffer.device_info
401
+
402
+ assert_equal ({
403
+ type: :ios,
404
+ version: '10.3.1',
405
+ name: 'iOS',
406
+ }), sniffer.os_info
407
+ end
408
+
283
409
  it "Shopify POS with okhttp user agent can be parsed" do
284
410
  user_agent = "okhttp/3.6.0"
285
411
  sniffer = BrowserSniffer.new(user_agent)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browser_sniffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-23 00:00:00.000000000 Z
11
+ date: 2019-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler