summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/safe_device_detector_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/safe_device_detector_spec.rb')
-rw-r--r--spec/lib/gitlab/safe_device_detector_spec.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/lib/gitlab/safe_device_detector_spec.rb b/spec/lib/gitlab/safe_device_detector_spec.rb
new file mode 100644
index 00000000000..c37dc1e1c7e
--- /dev/null
+++ b/spec/lib/gitlab/safe_device_detector_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+require 'device_detector'
+require_relative '../../../lib/gitlab/safe_device_detector'
+
+RSpec.describe Gitlab::SafeDeviceDetector, feature_category: :authentication_and_authorization do
+ it 'retains the behavior for normal user agents' do
+ chrome_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
+ (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
+
+ expect(described_class.new(chrome_user_agent).user_agent).to be_eql(chrome_user_agent)
+ expect(described_class.new(chrome_user_agent).name).to be_eql('Chrome')
+ end
+
+ it 'truncates big user agents' do
+ big_user_agent = "chrome #{'abc' * 1024}"
+ expect(described_class.new(big_user_agent).user_agent).not_to be_eql(big_user_agent)
+ end
+end