Skip to content

Commit

Permalink
events: Fix timezone realm-time sync and add test.
Browse files Browse the repository at this point in the history
  • Loading branch information
timabbott committed Mar 24, 2017
1 parent 86e3d1e commit 2b905d2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
7 changes: 4 additions & 3 deletions zerver/lib/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,8 @@ def fetch_initial_state_data(user_profile, event_types, queue_id,
state['twenty_four_hour_time'] = user_profile.twenty_four_hour_time
state['left_side_userlist'] = user_profile.left_side_userlist
state['emoji_alt_code'] = user_profile.emoji_alt_code

default_language = user_profile.default_language
state['default_language'] = default_language
state['timezone'] = user_profile.timezone
state['default_language'] = user_profile.default_language

if want('update_global_notifications'):
state['enable_stream_desktop_notifications'] = user_profile.enable_stream_desktop_notifications
Expand Down Expand Up @@ -386,6 +385,8 @@ def name(sub):
state['emoji_alt_code'] = event["setting"]
if event['setting_name'] == 'default_language':
state['default_language'] = event["setting"]
if event['setting_name'] == 'timezone':
state['timezone'] = event["setting"]
elif event['type'] == "update_global_notifications":
if event['notification_name'] == "enable_stream_desktop_notifications":
state['enable_stream_desktop_notifications'] = event['setting']
Expand Down
14 changes: 14 additions & 0 deletions zerver/tests/test_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
do_change_is_admin,
do_change_stream_description,
do_change_subscription_property,
do_change_timezone,
do_create_user,
do_deactivate_stream,
do_deactivate_user,
Expand Down Expand Up @@ -936,6 +937,19 @@ def test_change_default_language(self):
error = schema_checker('events[0]', events[0])
self.assert_on_error(error)

def test_change_timezone(self):
# type: () -> None
schema_checker = check_dict([
('type', equals('update_display_settings')),
('setting_name', equals('timezone')),
('user', check_string),
('setting', check_string),
])
for setting_value in ['US/Mountain', 'US/Samoa', 'Pacific/Galapagos', '']:
events = self.do_test(lambda: do_change_timezone(self.user_profile, setting_value))
error = schema_checker('events[0]', events[0])
self.assert_on_error(error)

def test_change_enable_stream_desktop_notifications(self):
# type: () -> None
schema_checker = check_dict([
Expand Down

0 comments on commit 2b905d2

Please sign in to comment.