diff --git a/rhodecode/tests/functional/test_admin_settings.py b/rhodecode/tests/functional/test_admin_settings.py --- a/rhodecode/tests/functional/test_admin_settings.py +++ b/rhodecode/tests/functional/test_admin_settings.py @@ -1,6 +1,7 @@ from rhodecode.lib.auth import get_crypt_password, check_password from rhodecode.model.db import User from rhodecode.tests import * +from rhodecode.model.settings import SettingsModel class TestAdminSettingsController(TestController): @@ -44,14 +45,73 @@ class TestAdminSettingsController(TestCo def test_edit_as_xml(self): response = self.app.get(url('formatted_admin_edit_setting', setting_id=1, format='xml')) + + def test_ga_code_active(self): + self.log_user() + old_title = 'RhodeCode' + old_realm = 'RhodeCode authentication' + new_ga_code = 'ga-test-123456789' + response = self.app.post(url('admin_setting', setting_id='global'), + params=dict( + _method='put', + rhodecode_title=old_title, + rhodecode_realm=old_realm, + rhodecode_ga_code=new_ga_code + )) + + assert 'Updated application settings' in response.session['flash'][0][1], 'no flash message about success of change' + assert SettingsModel(self.sa).get_app_settings()['rhodecode_ga_code'] == new_ga_code, 'change not in database' + + response = response.follow() + assert """_gaq.push(['_setAccount', '%s']);""" % new_ga_code in response.body + + def test_ga_code_inactive(self): + self.log_user() + old_title = 'RhodeCode' + old_realm = 'RhodeCode authentication' + new_ga_code = '' + response = self.app.post(url('admin_setting', setting_id='global'), + params=dict( + _method='put', + rhodecode_title=old_title, + rhodecode_realm=old_realm, + rhodecode_ga_code=new_ga_code + )) + + assert 'Updated application settings' in response.session['flash'][0][1], 'no flash message about success of change' + assert SettingsModel(self.sa).get_app_settings()['rhodecode_ga_code'] == new_ga_code, 'change not in database' + + response = response.follow() + assert """_gaq.push(['_setAccount', '%s']);""" % new_ga_code not in response.body + + + def test_title_change(self): + self.log_user() + old_title = 'RhodeCode' + new_title = old_title + '_changed' + old_realm = 'RhodeCode authentication' + response = self.app.post(url('admin_setting', setting_id='global'), + params=dict( + _method='put', + rhodecode_title=new_title, + rhodecode_realm=old_realm, + rhodecode_ga_code='' + )) + + + assert 'Updated application settings' in response.session['flash'][0][1], 'no flash message about success of change' + assert SettingsModel(self.sa).get_app_settings()['rhodecode_title'] == new_title, 'change not in database' + + response = response.follow() + assert """