browser 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +1 -0
- data/gemfiles/rails3.gemfile.lock +34 -34
- data/lib/browser.rb +7 -1
- data/lib/browser/methods/devices.rb +12 -3
- data/lib/browser/methods/platform.rb +8 -0
- data/lib/browser/middleware.rb +5 -5
- data/lib/browser/version.rb +1 -1
- data/test/browser_test.rb +108 -37
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e085e2a4794cd3e1368120c6f574b7c15cb6f3c
|
4
|
+
data.tar.gz: cb7bc7aea7519f258b72ddf8cca00a35b1e7e58f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd8ef682213aa133b315233165f20b6e8ecd6670805c85e4916d62411a78a62cb00a767289de30ee421b2f4f87e7dc10596ff11b55f1b5443c210471e29e0f0e
|
7
|
+
data.tar.gz: e3007ffbba33bfd98f82190892d1b1ed163c4d97249df9e9d0a640398ebe103e59c08b7b1c43c0b68c573a353f8a640636be1659d9cc0db06e6ba85982dc9d80
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /mnt/hgfs
|
2
|
+
remote: /mnt/hgfs/-Projects/github/browser
|
3
3
|
specs:
|
4
|
-
browser (0.2.
|
4
|
+
browser (0.2.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
actionmailer (3.2.
|
10
|
-
actionpack (= 3.2.
|
11
|
-
mail (~> 2.5.
|
12
|
-
actionpack (3.2.
|
13
|
-
activemodel (= 3.2.
|
14
|
-
activesupport (= 3.2.
|
9
|
+
actionmailer (3.2.14)
|
10
|
+
actionpack (= 3.2.14)
|
11
|
+
mail (~> 2.5.4)
|
12
|
+
actionpack (3.2.14)
|
13
|
+
activemodel (= 3.2.14)
|
14
|
+
activesupport (= 3.2.14)
|
15
15
|
builder (~> 3.0.0)
|
16
16
|
erubis (~> 2.7.0)
|
17
17
|
journey (~> 1.0.4)
|
@@ -19,19 +19,19 @@ GEM
|
|
19
19
|
rack-cache (~> 1.2)
|
20
20
|
rack-test (~> 0.6.1)
|
21
21
|
sprockets (~> 2.2.1)
|
22
|
-
activemodel (3.2.
|
23
|
-
activesupport (= 3.2.
|
22
|
+
activemodel (3.2.14)
|
23
|
+
activesupport (= 3.2.14)
|
24
24
|
builder (~> 3.0.0)
|
25
|
-
activerecord (3.2.
|
26
|
-
activemodel (= 3.2.
|
27
|
-
activesupport (= 3.2.
|
25
|
+
activerecord (3.2.14)
|
26
|
+
activemodel (= 3.2.14)
|
27
|
+
activesupport (= 3.2.14)
|
28
28
|
arel (~> 3.0.2)
|
29
29
|
tzinfo (~> 0.3.29)
|
30
|
-
activeresource (3.2.
|
31
|
-
activemodel (= 3.2.
|
32
|
-
activesupport (= 3.2.
|
33
|
-
activesupport (3.2.
|
34
|
-
i18n (
|
30
|
+
activeresource (3.2.14)
|
31
|
+
activemodel (= 3.2.14)
|
32
|
+
activesupport (= 3.2.14)
|
33
|
+
activesupport (3.2.14)
|
34
|
+
i18n (~> 0.6, >= 0.6.4)
|
35
35
|
multi_json (~> 1.0)
|
36
36
|
arel (3.0.2)
|
37
37
|
awesome_print (1.1.0)
|
@@ -39,15 +39,15 @@ GEM
|
|
39
39
|
coderay (1.0.9)
|
40
40
|
erubis (2.7.0)
|
41
41
|
hike (1.2.3)
|
42
|
-
i18n (0.6.
|
42
|
+
i18n (0.6.5)
|
43
43
|
journey (1.0.4)
|
44
44
|
json (1.8.0)
|
45
45
|
mail (2.5.4)
|
46
46
|
mime-types (~> 1.16)
|
47
47
|
treetop (~> 1.4.8)
|
48
|
-
method_source (0.8.
|
49
|
-
mime-types (1.
|
50
|
-
multi_json (1.
|
48
|
+
method_source (0.8.2)
|
49
|
+
mime-types (1.25)
|
50
|
+
multi_json (1.8.0)
|
51
51
|
polyglot (0.3.3)
|
52
52
|
pry (0.9.12.2)
|
53
53
|
coderay (~> 1.0.5)
|
@@ -70,17 +70,17 @@ GEM
|
|
70
70
|
rack
|
71
71
|
rack-test (0.6.2)
|
72
72
|
rack (>= 1.0)
|
73
|
-
rails (3.2.
|
74
|
-
actionmailer (= 3.2.
|
75
|
-
actionpack (= 3.2.
|
76
|
-
activerecord (= 3.2.
|
77
|
-
activeresource (= 3.2.
|
78
|
-
activesupport (= 3.2.
|
73
|
+
rails (3.2.14)
|
74
|
+
actionmailer (= 3.2.14)
|
75
|
+
actionpack (= 3.2.14)
|
76
|
+
activerecord (= 3.2.14)
|
77
|
+
activeresource (= 3.2.14)
|
78
|
+
activesupport (= 3.2.14)
|
79
79
|
bundler (~> 1.0)
|
80
|
-
railties (= 3.2.
|
81
|
-
railties (3.2.
|
82
|
-
actionpack (= 3.2.
|
83
|
-
activesupport (= 3.2.
|
80
|
+
railties (= 3.2.14)
|
81
|
+
railties (3.2.14)
|
82
|
+
actionpack (= 3.2.14)
|
83
|
+
activesupport (= 3.2.14)
|
84
84
|
rack-ssl (~> 1.3.2)
|
85
85
|
rake (>= 0.8.7)
|
86
86
|
rdoc (~> 3.4)
|
@@ -88,7 +88,7 @@ GEM
|
|
88
88
|
rake (10.1.0)
|
89
89
|
rdoc (3.12.2)
|
90
90
|
json (~> 1.4)
|
91
|
-
slop (3.4.
|
91
|
+
slop (3.4.6)
|
92
92
|
sprockets (2.2.2)
|
93
93
|
hike (~> 1.2)
|
94
94
|
multi_json (~> 1.0)
|
@@ -96,7 +96,7 @@ GEM
|
|
96
96
|
tilt (~> 1.1, != 1.3.0)
|
97
97
|
thor (0.18.1)
|
98
98
|
tilt (1.4.1)
|
99
|
-
treetop (1.4.
|
99
|
+
treetop (1.4.15)
|
100
100
|
polyglot
|
101
101
|
polyglot (>= 0.3.1)
|
102
102
|
tzinfo (0.3.37)
|
data/lib/browser.rb
CHANGED
@@ -100,7 +100,8 @@ class Browser
|
|
100
100
|
webkit? ||
|
101
101
|
(firefox? && version.to_i >= 17) ||
|
102
102
|
(ie? && version.to_i >= 9) ||
|
103
|
-
(opera? && version.to_i >= 12)
|
103
|
+
(opera? && version.to_i >= 12) ||
|
104
|
+
(firefox? && tablet? && android? && version.to_i >= 14)
|
104
105
|
end
|
105
106
|
|
106
107
|
# Detect if browser is WebKit-based.
|
@@ -143,6 +144,11 @@ class Browser
|
|
143
144
|
!!(ua =~ /(Opera|OPR)/)
|
144
145
|
end
|
145
146
|
|
147
|
+
# Detect if browser is Silk.
|
148
|
+
def silk?
|
149
|
+
!!(ua =~ /Silk/)
|
150
|
+
end
|
151
|
+
|
146
152
|
# Return a meta info about this browser.
|
147
153
|
def meta
|
148
154
|
Meta.constants.each_with_object(Set.new) do |meta_name, meta|
|
@@ -15,19 +15,28 @@ class Browser
|
|
15
15
|
!!(ua =~ /iPod/)
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
def surface?
|
19
|
+
windows_rt? && !!(ua =~ /Touch/)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Detect if browser is tablet (currently iPad, Android, Surface or Playbook).
|
19
23
|
def tablet?
|
20
|
-
!!(ipad? || (android? && !detect_mobile?))
|
24
|
+
!!(ipad? || (android? && !detect_mobile?) || surface? || playbook?)
|
21
25
|
end
|
22
26
|
|
23
27
|
# Detect if browser is Kindle.
|
24
28
|
def kindle?
|
25
|
-
!!(ua =~ /Kindle/)
|
29
|
+
!!(ua =~ /Kindle/ || silk?)
|
26
30
|
end
|
27
31
|
|
28
32
|
# Detect if browser is running from PSP.
|
29
33
|
def psp?
|
30
34
|
!!(ua =~ /PSP/)
|
31
35
|
end
|
36
|
+
|
37
|
+
# Detect if browser if a Blackberry Playbook tablet
|
38
|
+
def playbook?
|
39
|
+
!!(ua =~ /PlayBook/ and ua =~ /RIM Tablet/)
|
40
|
+
end
|
32
41
|
end
|
33
42
|
end
|
@@ -34,6 +34,14 @@ class Browser
|
|
34
34
|
def windows?
|
35
35
|
!!(ua =~ /Windows/)
|
36
36
|
end
|
37
|
+
|
38
|
+
def windows8?
|
39
|
+
windows? && !!(ua =~ /Windows NT 6.2/)
|
40
|
+
end
|
41
|
+
|
42
|
+
def windows_rt?
|
43
|
+
windows8? && !!(ua =~ /ARM/)
|
44
|
+
end
|
37
45
|
|
38
46
|
# Detect if current platform is Linux flavor.
|
39
47
|
def linux?
|
data/lib/browser/middleware.rb
CHANGED
@@ -2,7 +2,7 @@ require "uri"
|
|
2
2
|
|
3
3
|
class Browser
|
4
4
|
class Middleware
|
5
|
-
attr_reader :env
|
5
|
+
attr_reader :env
|
6
6
|
|
7
7
|
def initialize(app, &block)
|
8
8
|
raise ArgumentError, "Browser::Middleware requires a block" unless block
|
@@ -13,19 +13,19 @@ class Browser
|
|
13
13
|
|
14
14
|
def call(env)
|
15
15
|
@env = env
|
16
|
-
|
16
|
+
request = Rack::Request.new(env)
|
17
17
|
|
18
18
|
path = catch(:redirected) do
|
19
19
|
Context.new(request).instance_eval(&@block)
|
20
20
|
end
|
21
21
|
|
22
|
-
path ? resolve_redirection(path) : run_app!
|
22
|
+
path ? resolve_redirection(request.path, path) : run_app!
|
23
23
|
end
|
24
24
|
|
25
|
-
def resolve_redirection(path)
|
25
|
+
def resolve_redirection(current_path, path)
|
26
26
|
uri = URI.parse(path)
|
27
27
|
|
28
|
-
if uri.path ==
|
28
|
+
if uri.path == current_path
|
29
29
|
run_app!
|
30
30
|
else
|
31
31
|
redirect(path)
|
data/lib/browser/version.rb
CHANGED
data/test/browser_test.rb
CHANGED
@@ -2,43 +2,49 @@
|
|
2
2
|
require "test_helper"
|
3
3
|
|
4
4
|
class BrowserTest < Test::Unit::TestCase
|
5
|
-
IPHONE
|
6
|
-
IPOD
|
7
|
-
IPAD
|
8
|
-
SAFARI
|
9
|
-
IE6
|
10
|
-
IE7
|
11
|
-
IE8
|
12
|
-
IE8_COMPAT
|
13
|
-
IE9
|
14
|
-
IE9_COMPAT
|
15
|
-
IE10
|
16
|
-
IE10_COMPAT
|
17
|
-
OPERA
|
18
|
-
OPERA_NEXT
|
19
|
-
FIREFOX
|
20
|
-
FIREFOX_MODERN
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
5
|
+
IPHONE = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3"
|
6
|
+
IPOD = "Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3"
|
7
|
+
IPAD = "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10"
|
8
|
+
SAFARI = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-us) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8"
|
9
|
+
IE6 = "Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
|
10
|
+
IE7 = "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)"
|
11
|
+
IE8 = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
|
12
|
+
IE8_COMPAT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; Media Center PC 5.0; .NET CLR 3.5.21022)"
|
13
|
+
IE9 = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
|
14
|
+
IE9_COMPAT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)"
|
15
|
+
IE10 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; EIE10;ENUSMSN)"
|
16
|
+
IE10_COMPAT = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; EIE10;ENUSMSN)"
|
17
|
+
OPERA = "Opera/9.80 (Macintosh; Intel Mac OS X 10.7.4; U; en) Presto/2.10.229 Version/11.64"
|
18
|
+
OPERA_NEXT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.37 Safari/537.36 OPR/15.0.1147.44 (Edition Next)"
|
19
|
+
FIREFOX = "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.8"
|
20
|
+
FIREFOX_MODERN = "Mozilla/5.0 (X11; Ubuntu; Linux armv7l; rv:17.0) Gecko/20100101 Firefox/17.0"
|
21
|
+
FIREFOX_TABLET = "Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0"
|
22
|
+
CHROME = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4"
|
23
|
+
MOBILE_CHROME = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3"
|
24
|
+
ANDROID = "Android SDK 1.5r3: Mozilla/5.0 (Linux; U; Android 1.5; de-; sdk Build/CUPCAKE) AppleWebkit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
|
25
|
+
TABLOID = "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13"
|
26
|
+
BLACKBERRY = "BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103"
|
27
|
+
PSP = "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)"
|
28
|
+
QUICKTIME = "QuickTime/7.6.8 (qtver=7.6.8;os=Windows NT 5.1Service Pack 3)"
|
29
|
+
COREMEDIA = "Apple Mac OS X v10.6.4 CoreMedia v1.0.0.10F569"
|
30
|
+
XOOM = "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13"
|
31
|
+
NEXUS_TABLET = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"
|
32
|
+
NOOK = "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; NOOK BNTV250A Build/GINGERBREAD 1.4.3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1"
|
33
|
+
SAMSUNG = "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SAMSUNG-SGH-I497 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
|
34
|
+
OPERA_MINI = "Opera/9.80 (Android; Opera Mini/7.029952/28.2359;u; fr) Presto/2.8.119 Version/11.10"
|
35
|
+
OPERA_MOBI = "Opera/9.8 (Android 2.3.5; Linux; Opera Mobi/ADR-1205181138; U; en) Presto/2.10.254 Version/12.00"
|
36
|
+
WINDOWS_PHONE = "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; DELL; Venue Pro)"
|
37
|
+
WINDOWS_PHONE8 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)"
|
38
|
+
SURFACE = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)"
|
39
|
+
KINDLE = "Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600×800; rotate)"
|
40
|
+
KINDLE_FIRE = "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
|
41
|
+
KINDLE_FIRE_HD = "Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Safari/535.19 Silk-Accelerated=true"
|
42
|
+
KINDLE_FIRE_HD_MOBILE = "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true"
|
43
|
+
PHANTOM_JS = "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.0 Safari/534.34"
|
44
|
+
IOS4 = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
|
45
|
+
IOS5 = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"
|
46
|
+
IOS6 = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"
|
47
|
+
PLAYBOOK = "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+"
|
42
48
|
|
43
49
|
def setup
|
44
50
|
@browser = Browser.new
|
@@ -291,6 +297,18 @@ class BrowserTest < Test::Unit::TestCase
|
|
291
297
|
assert_equal "17", @browser.version
|
292
298
|
end
|
293
299
|
|
300
|
+
def test_detect_firefox_android_tablet
|
301
|
+
@browser.ua = FIREFOX_TABLET
|
302
|
+
|
303
|
+
assert_equal "Android", @browser.name
|
304
|
+
assert @browser.firefox?
|
305
|
+
assert @browser.modern?
|
306
|
+
assert @browser.tablet?
|
307
|
+
assert @browser.android?
|
308
|
+
assert_equal "14.0", @browser.full_version
|
309
|
+
assert_equal "14", @browser.version
|
310
|
+
end
|
311
|
+
|
294
312
|
def test_detect_chrome
|
295
313
|
@browser.ua = CHROME
|
296
314
|
|
@@ -343,6 +361,19 @@ class BrowserTest < Test::Unit::TestCase
|
|
343
361
|
assert_equal "4", @browser.version
|
344
362
|
end
|
345
363
|
|
364
|
+
def test_detect_surface_tablet
|
365
|
+
@browser.ua = SURFACE
|
366
|
+
|
367
|
+
assert_equal "Internet Explorer", @browser.name
|
368
|
+
assert @browser.surface?
|
369
|
+
assert @browser.ie?
|
370
|
+
assert ! @browser.mobile?
|
371
|
+
assert @browser.tablet?
|
372
|
+
assert @browser.modern?
|
373
|
+
assert_equal "10.0", @browser.full_version
|
374
|
+
assert_equal "10", @browser.version
|
375
|
+
end
|
376
|
+
|
346
377
|
def test_detect_blackberry
|
347
378
|
@browser.ua = BLACKBERRY
|
348
379
|
|
@@ -537,6 +568,17 @@ class BrowserTest < Test::Unit::TestCase
|
|
537
568
|
assert ! @browser.mobile?
|
538
569
|
end
|
539
570
|
|
571
|
+
def test_blackberry_playbook_tablet
|
572
|
+
@browser.ua = PLAYBOOK
|
573
|
+
|
574
|
+
assert ! @browser.android?
|
575
|
+
assert @browser.tablet?
|
576
|
+
assert ! @browser.mobile?
|
577
|
+
|
578
|
+
assert_equal "7.2.1.0", @browser.full_version
|
579
|
+
assert_equal "7", @browser.version
|
580
|
+
end
|
581
|
+
|
540
582
|
def test_opera_mini
|
541
583
|
@browser.ua = OPERA_MINI
|
542
584
|
|
@@ -562,6 +604,15 @@ class BrowserTest < Test::Unit::TestCase
|
|
562
604
|
assert ! @browser.tablet?
|
563
605
|
end
|
564
606
|
|
607
|
+
def test_windows_phone_8
|
608
|
+
@browser.ua = WINDOWS_PHONE8
|
609
|
+
|
610
|
+
assert @browser.ie?
|
611
|
+
assert_equal "10", @browser.version
|
612
|
+
assert @browser.mobile?
|
613
|
+
assert ! @browser.tablet?
|
614
|
+
end
|
615
|
+
|
565
616
|
def test_kindle_monochrome
|
566
617
|
@browser.ua = KINDLE
|
567
618
|
|
@@ -576,6 +627,26 @@ class BrowserTest < Test::Unit::TestCase
|
|
576
627
|
assert @browser.webkit?
|
577
628
|
end
|
578
629
|
|
630
|
+
def test_kindle_fire_hd
|
631
|
+
@browser.ua = KINDLE_FIRE_HD
|
632
|
+
|
633
|
+
assert @browser.silk?
|
634
|
+
assert @browser.kindle?
|
635
|
+
assert @browser.webkit?
|
636
|
+
assert @browser.modern?
|
637
|
+
assert ! @browser.mobile?
|
638
|
+
end
|
639
|
+
|
640
|
+
def test_kindle_fire_hd_mobile
|
641
|
+
@browser.ua = KINDLE_FIRE_HD_MOBILE
|
642
|
+
|
643
|
+
assert @browser.silk?
|
644
|
+
assert @browser.kindle?
|
645
|
+
assert @browser.webkit?
|
646
|
+
assert @browser.modern?
|
647
|
+
assert @browser.mobile?
|
648
|
+
end
|
649
|
+
|
579
650
|
def test_nook
|
580
651
|
@browser.ua = NOOK
|
581
652
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry-meta
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
117
|
rubyforge_project:
|
118
|
-
rubygems_version: 2.0
|
118
|
+
rubygems_version: 2.1.0
|
119
119
|
signing_key:
|
120
120
|
specification_version: 4
|
121
121
|
summary: Do some browser detection with Ruby.
|