7

Device detection and accompanying rule

Signed-off-by: Jasper Berghoef <jasper.berghoef@gmail.com>
This commit is contained in:
Jasper Berghoef
2017-01-11 15:28:40 +01:00
committed by Pim Vernooij
parent a7b477d71f
commit 1c4062eb7e
5 changed files with 75 additions and 4 deletions

View File

@@ -9,7 +9,7 @@ from wagtail.wagtailcore.models import Page
from tests.factories.segment import (
QueryRuleFactory, ReferralRuleFactory, SegmentFactory, TimeRuleFactory,
DayRuleFactory, VisitCountRuleFactory)
DayRuleFactory, VisitCountRuleFactory, DeviceRuleFactory)
from tests.factories.site import SiteFactory
@@ -52,6 +52,28 @@ class TestUserSegmenting(object):
assert client.session['segments'][0]['encoded_name'] == 'day-only'
def test_device_segment(self, client):
device_only_segment = SegmentFactory(name='Device only')
device_rule = DeviceRuleFactory(
tablet=True,
segment=device_only_segment)
client.get('/', **{'HTTP_USER_AGENT': 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X)'})
assert client.session['segments'][0]['encoded_name'] == 'device-only'
def test_device_segment_no_match(self, client):
no_device_segment = SegmentFactory(name='No device')
device_rule = DeviceRuleFactory(
mobile=True,
segment=no_device_segment)
client.get('/', **{'HTTP_USER_AGENT': 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X)'})
assert not client.session['segments']
def test_referral_segment(self, client):
referral_segment = SegmentFactory(name='Referral')
referral_rule = ReferralRuleFactory(
@@ -59,7 +81,7 @@ class TestUserSegmenting(object):
segment=referral_segment
)
client.get('/', **{ 'HTTP_REFERER': 'test.test'})
client.get('/', **{'HTTP_REFERER': 'test.test'})
assert client.session['segments'][0]['encoded_name'] == 'referral'