From be7e4e68422d5dc91736081e89d5eb4b8bb485ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Helleboid?= Date: Tue, 14 May 2019 14:14:36 +0200 Subject: [PATCH 1/2] Gecko browser: fix Android platform parsing when Android version is given --- lib/user_agent/browsers/gecko.rb | 2 ++ spec/browsers/gecko_user_agent_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/user_agent/browsers/gecko.rb b/lib/user_agent/browsers/gecko.rb index 649d04a..6a0238e 100644 --- a/lib/user_agent/browsers/gecko.rb +++ b/lib/user_agent/browsers/gecko.rb @@ -28,6 +28,8 @@ def platform nil elsif /^Windows / =~ comment[0] 'Windows' + elsif comment.any? { |c| c =~ /Android/ } + 'Android' else comment[0] end diff --git a/spec/browsers/gecko_user_agent_spec.rb b/spec/browsers/gecko_user_agent_spec.rb index 80ed89c..839d352 100644 --- a/spec/browsers/gecko_user_agent_spec.rb +++ b/spec/browsers/gecko_user_agent_spec.rb @@ -488,6 +488,26 @@ end end +describe 'Mozilla/5.0 (Android 8.0.0; Mobile; rv:66.0) Gecko/66.0 Firefox/66.0' do + before do + @useragent = UserAgent.parse('Mozilla/5.0 (Android 8.0.0; Mobile; rv:66.0) Gecko/66.0 Firefox/66.0') + end + + it_behaves_like 'Firefox browser' + + it 'returns true for mobile?' do + expect(@useragent.mobile?).to be true + end + + it "returns 'Android' as the platform" do + expect(@useragent.platform).to eq('Android') + end + + it "returns 'Android 8.0.0' as the operating system" do + expect(@useragent.os).to eq('Android 8.0.0') + end +end + describe 'Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0' do before do @useragent = UserAgent.parse('Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0') From dbe1d30fdff32b3cf8feaac15eee0ccc8e8dd90d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Helleboid?= Date: Tue, 14 May 2019 14:18:31 +0200 Subject: [PATCH 2/2] Add a CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9cf79d6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# Next release +* Gecko: Return `Android` instead of `Android 8.0.0` for `user_agent.platform` when the version of the Android is given