Refactoring: Migrate user_device_test to RSpec
This commit is contained in:
parent
3c5d274575
commit
c4ea7cdae6
3 changed files with 223 additions and 332 deletions
222
spec/models/user_device_spec.rb
Normal file
222
spec/models/user_device_spec.rb
Normal file
|
@ -0,0 +1,222 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe UserDevice, type: :model do
|
||||
describe '.add' do
|
||||
let(:existing_record) { UserDevice.add(user_agent, ip, agent.id, fingerprint, type) }
|
||||
let(:ip) { '91.115.248.231' }
|
||||
let(:agent) { create(:agent_user) }
|
||||
|
||||
context 'with existing record of type: "session"' do
|
||||
before { existing_record } # create existing record
|
||||
|
||||
let(:user_agent) { 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36' }
|
||||
let(:fingerprint) { 'fingerprint1234' }
|
||||
let(:type) { 'session' }
|
||||
|
||||
context 'when called with same parameters as existing record' do
|
||||
it 'returns the original record' do
|
||||
expect(UserDevice.add(user_agent, ip, agent.id, fingerprint, type))
|
||||
.to eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with different IP from existing record' do
|
||||
let(:other_ip) { '176.198.137.254' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(user_agent, other_ip, agent.id, fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with invalid IP, not matching existing record' do
|
||||
let(:other_ip) { 'foo' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(user_agent, other_ip, agent.id, fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with different fingerprint from existing record' do
|
||||
let(:other_fingerprint) { 'fingerprintABCD' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(user_agent, ip, agent.id, other_fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with recognized user_agent (Mac/Chrome)' do
|
||||
it 'assigns #user_agent attribute to given value' do
|
||||
expect(existing_record.user_agent).to eq(user_agent)
|
||||
end
|
||||
|
||||
it 'derives #name attribute from given value' do
|
||||
expect(existing_record.name).to eq('Mac, Chrome')
|
||||
end
|
||||
|
||||
it 'derives #browser attribute from given value' do
|
||||
expect(existing_record.browser).to eq('Chrome')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with recognized user_agent (iOS/Safari)' do
|
||||
let(:user_agent) { 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4' }
|
||||
|
||||
it 'assigns #user_agent attribute to given value' do
|
||||
expect(existing_record.user_agent).to eq(user_agent)
|
||||
end
|
||||
|
||||
it 'derives #name attribute from given value' do
|
||||
expect(existing_record.name).to eq('Ios, Safari')
|
||||
end
|
||||
|
||||
it 'derives #browser attribute from given value' do
|
||||
expect(existing_record.browser).to eq('Safari')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with partially recognized user_agent (Mac/CalendarAgent)' do
|
||||
let(:user_agent) { 'Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1' }
|
||||
|
||||
it 'assigns #user_agent and #browser attributes to given value' do
|
||||
expect([existing_record.user_agent, existing_record.browser])
|
||||
.to all(eq(user_agent))
|
||||
end
|
||||
|
||||
it 'derives #name attribute from given value' do
|
||||
expect(existing_record.name).to eq("Mac, #{user_agent}")
|
||||
end
|
||||
end
|
||||
|
||||
context 'with unrecognized user_agent' do
|
||||
let(:user_agent) { 'foo' }
|
||||
|
||||
it 'assigns #user_agent, #name, and #browser attributes to given value' do
|
||||
expect([existing_record.user_agent, existing_record.name, existing_record.browser])
|
||||
.to all(eq(user_agent))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with existing record of type: "basic_auth"' do
|
||||
before { existing_record } # create existing record
|
||||
|
||||
let(:user_agent) { 'curl/7.43.0' }
|
||||
let(:fingerprint) { nil }
|
||||
let(:type) { 'basic_auth' }
|
||||
|
||||
context 'when called with same parameters as existing record' do
|
||||
it 'returns the original record' do
|
||||
expect(UserDevice.add(user_agent, ip, agent.id, fingerprint, type))
|
||||
.to eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with different IP from existing record' do
|
||||
let(:other_ip) { '176.198.137.254' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(user_agent, other_ip, agent.id, fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with different type from existing record ("token_auth")' do
|
||||
let(:other_type) { 'token_auth' }
|
||||
|
||||
it 'returns the original record' do
|
||||
expect(UserDevice.add(user_agent, ip, agent.id, fingerprint, other_type))
|
||||
.to eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called without existing record’s user agent' do
|
||||
let(:other_user_agent) { '' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(other_user_agent, ip, agent.id, fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when existing record’s user agent is blank, and given is nil' do
|
||||
let(:user_agent) { '' }
|
||||
let(:other_user_agent) { nil }
|
||||
|
||||
it 'returns the original record' do
|
||||
expect(UserDevice.add(other_user_agent, ip, agent.id, fingerprint, type))
|
||||
.to eq(existing_record)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when existing record and given args have nil user agent, but IPs don’t match' do
|
||||
let(:user_agent) { nil }
|
||||
let(:other_ip) { '176.198.137.254' }
|
||||
|
||||
it 'returns a new record' do
|
||||
expect(UserDevice.add(user_agent, other_ip, agent.id, fingerprint, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(existing_record)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with exceedingly long fingerprint (161+ chars)' do
|
||||
let(:user_agent) { 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36' }
|
||||
let(:fingerprint) { 'x' * 161 }
|
||||
let(:type) { 'session' }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { UserDevice.add(user_agent, ip, agent.id, fingerprint, type) }
|
||||
.to raise_error(Exceptions::UnprocessableEntity)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.action' do
|
||||
let(:user_device) { UserDevice.add(user_agent, ip, agent.id, fingerprint, type) }
|
||||
let(:user_agent) { 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36' }
|
||||
let(:ip) { '91.115.248.231' }
|
||||
let(:agent) { create(:agent_user) }
|
||||
let(:fingerprint) { 'fingerprint1234' }
|
||||
let(:type) { 'session' }
|
||||
|
||||
context 'when called with parameters matching given user_device' do
|
||||
it 'returns the given user_device' do
|
||||
expect(described_class.action(user_device.id, user_agent, ip, agent.id, type))
|
||||
.to eq(user_device)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with different IP from given user_device' do
|
||||
let(:other_ip) { '176.198.137.254' }
|
||||
|
||||
it 'returns a new user_device' do
|
||||
expect(described_class.action(user_device.id, user_agent, other_ip, agent.id, type))
|
||||
.to be_a(UserDevice)
|
||||
.and not_eq(user_device)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when called with invalid IP, not matching given user_device' do
|
||||
let(:other_ip) { 'foo' }
|
||||
|
||||
it 'returns the given user_device' do
|
||||
expect(described_class.action(user_device.id, user_agent, other_ip, agent.id, type))
|
||||
.to eq(user_device)
|
||||
end
|
||||
|
||||
it 'sets user_device.ip to the given (invalid) IP' do
|
||||
expect { described_class.action(user_device.id, user_agent, other_ip, agent.id, type) }
|
||||
.to change { user_device.reload.ip }.to(other_ip)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,2 +1,3 @@
|
|||
RSpec::Matchers.define_negated_matcher :not_change, :change
|
||||
RSpec::Matchers.define_negated_matcher :not_include, :include
|
||||
RSpec::Matchers.define_negated_matcher :not_eq, :eq
|
||||
|
|
|
@ -1,332 +0,0 @@
|
|||
require 'test_helper'
|
||||
|
||||
class UserDeviceTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
|
||||
UserInfo.current_user_id = 1
|
||||
|
||||
groups = Group.all
|
||||
roles = Role.where(name: 'Agent')
|
||||
@agent = User.create_or_update(
|
||||
login: 'user-device-agent@example.com',
|
||||
firstname: 'UserDevice',
|
||||
lastname: 'Agent',
|
||||
email: 'user-device-agent@example.com',
|
||||
password: 'agentpw',
|
||||
active: true,
|
||||
roles: roles,
|
||||
groups: groups,
|
||||
)
|
||||
|
||||
roles = Role.where(name: 'Customer')
|
||||
@customer = User.create_or_update(
|
||||
login: 'user-device-customer@example.com',
|
||||
firstname: 'UserDevice',
|
||||
lastname: 'Customer',
|
||||
email: 'user-device-customer@example.com',
|
||||
password: 'customerpw',
|
||||
active: true,
|
||||
roles: roles,
|
||||
)
|
||||
end
|
||||
|
||||
test 'aaa - session test' do
|
||||
|
||||
# signin with fingerprint A from country A via session -> new device #1
|
||||
user_device1 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
|
||||
# signin with fingerprint A from country B via session -> new device #2
|
||||
user_device2 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
assert_not_equal(user_device1.id, user_device2.id)
|
||||
|
||||
# signin with fingerprint B from country A via session -> new device #3
|
||||
user_device3 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprintABC',
|
||||
'session',
|
||||
)
|
||||
assert_not_equal(user_device2.id, user_device3.id)
|
||||
|
||||
# signin with fingerprint A from country A via session -> new device #1
|
||||
user_device4 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device1.id, user_device4.id)
|
||||
|
||||
# signin with fingerprint A from country B via session -> new device #2
|
||||
user_device5 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device2.id, user_device5.id)
|
||||
|
||||
# signin with fingerprint B from country A via session -> new device #3
|
||||
user_device6 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprintABC',
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device3.id, user_device6.id)
|
||||
|
||||
end
|
||||
|
||||
test 'bbb - session test - user agent (unknown)' do
|
||||
|
||||
# known user agent
|
||||
user_device1 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'session',
|
||||
)
|
||||
assert_equal('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36', user_device1.user_agent)
|
||||
assert_equal('Mac, Chrome', user_device1.name)
|
||||
|
||||
# unknown user agent
|
||||
user_device2 = UserDevice.add(
|
||||
'ABC 123',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'session',
|
||||
)
|
||||
assert_equal('ABC 123', user_device2.user_agent)
|
||||
assert_equal('ABC 123', user_device2.browser)
|
||||
assert_equal('ABC 123', user_device2.name)
|
||||
|
||||
# partently known
|
||||
user_device3 = UserDevice.add(
|
||||
'Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'session',
|
||||
)
|
||||
assert_equal('Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4', user_device3.user_agent)
|
||||
assert_equal('Safari', user_device3.browser)
|
||||
assert_equal('Ios, Safari', user_device3.name)
|
||||
|
||||
user_device4 = UserDevice.add(
|
||||
'Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'session',
|
||||
)
|
||||
assert_equal('Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1', user_device4.user_agent)
|
||||
assert_equal('Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1', user_device4.browser)
|
||||
assert_equal('Mac, Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1', user_device4.name)
|
||||
|
||||
end
|
||||
|
||||
test 'ccc - api test' do
|
||||
|
||||
# signin with ua from country A via basic auth -> new device #1
|
||||
user_device1 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
|
||||
# signin with ua from country B via basic auth -> new device #2
|
||||
user_device2 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_not_equal(user_device1.id, user_device2.id)
|
||||
|
||||
# signin with ua from country A via basic auth -> new device #1
|
||||
user_device3 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_equal(user_device1.id, user_device3.id)
|
||||
|
||||
# signin with ua from country B via basic auth -> new device #2
|
||||
user_device4 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_equal(user_device2.id, user_device4.id)
|
||||
|
||||
# signin with ua from country A via token auth -> new device #1
|
||||
user_device5 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'token_auth',
|
||||
)
|
||||
assert_equal(user_device1.id, user_device5.id)
|
||||
|
||||
# signin with ua from country B via token auth -> new device #2
|
||||
user_device6 = UserDevice.add(
|
||||
'curl/7.43.0',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
nil,
|
||||
'token_auth',
|
||||
)
|
||||
assert_equal(user_device2.id, user_device6.id)
|
||||
|
||||
# signin without ua from country A via basic auth -> new device #3
|
||||
user_device7 = UserDevice.add(
|
||||
'',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_not_equal(user_device6.id, user_device7.id)
|
||||
|
||||
user_device8 = UserDevice.add(
|
||||
'',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_equal(user_device7.id, user_device8.id)
|
||||
|
||||
user_device9 = UserDevice.add(
|
||||
nil,
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_equal(user_device8.id, user_device9.id)
|
||||
|
||||
user_device10 = UserDevice.add(
|
||||
nil,
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
nil,
|
||||
'basic_auth',
|
||||
)
|
||||
assert_not_equal(user_device9.id, user_device10.id)
|
||||
end
|
||||
|
||||
test 'ddd - api test' do
|
||||
|
||||
# signin with fingerprint A from country A via session -> new device #1
|
||||
user_device1 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
|
||||
# action with same fingerprint -> same device
|
||||
user_device1_1 = UserDevice.action(
|
||||
user_device1.id,
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device1.id, user_device1_1.id)
|
||||
|
||||
# signin with same fingerprint -> same device
|
||||
user_device1_2 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device1.id, user_device1_2.id)
|
||||
|
||||
# action with different fingerprint -> new device
|
||||
user_device1_3 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprintABC',
|
||||
'session',
|
||||
)
|
||||
assert_not_equal(user_device1.id, user_device1_3.id)
|
||||
|
||||
# signin with without accessable location -> new device
|
||||
user_device1_4 = UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'not_existing_ip',
|
||||
@agent.id,
|
||||
'fingerprintABC',
|
||||
'session',
|
||||
)
|
||||
assert_not_equal(user_device1.id, user_device1_4.id)
|
||||
|
||||
# action with fingerprint A from country B via session -> new device #2
|
||||
user_device2 = UserDevice.action(
|
||||
user_device1.id,
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'176.198.137.254',
|
||||
@agent.id,
|
||||
'session',
|
||||
)
|
||||
assert_not_equal(user_device1.id, user_device2.id)
|
||||
|
||||
# action with fingerprint A without accessable location -> use current device #2
|
||||
user_device3 = UserDevice.action(
|
||||
user_device2.id,
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'not_existing_ip',
|
||||
@agent.id,
|
||||
'session',
|
||||
)
|
||||
assert_equal(user_device2.id, user_device3.id)
|
||||
|
||||
end
|
||||
|
||||
test 'invalid fingerprint size' do
|
||||
|
||||
assert_raises(Exceptions::UnprocessableEntity) do
|
||||
UserDevice.add(
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36',
|
||||
'91.115.248.231',
|
||||
@agent.id,
|
||||
'fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234fingerprint1234',
|
||||
'session',
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue