changeset 893:ead7be02283b beta

updated tests for application settings
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 29 Dec 2010 12:19:08 +0100
parents 9adc0c1d9a87
children 1fed3c9161bb
files rhodecode/tests/functional/test_admin_settings.py
diffstat 1 files changed, 62 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/tests/functional/test_admin_settings.py	Wed Dec 29 12:18:49 2010 +0100
+++ b/rhodecode/tests/functional/test_admin_settings.py	Wed Dec 29 12:19:08 2010 +0100
@@ -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 @@
     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 """<h1><a href="/">%s</a></h1>""" % new_title in response.body
+
+
     def test_my_account(self):
         self.log_user()
         response = self.app.get(url('admin_settings_my_account'))
         print response
         assert 'value="test_admin' in response.body
 
-
-
     def test_my_account_update(self):
         self.log_user()
 
@@ -115,7 +175,6 @@
                                                             name='NewName',
                                                             lastname='NewLastname',
                                                             email=new_email,))
-        print response
 
         assert 'This e-mail address is already taken' in response.body, 'Missing error message about existing email'
 
@@ -131,6 +190,5 @@
                                                             name='NewName',
                                                             lastname='NewLastname',
                                                             email=new_email,))
-        print response
         assert 'An email address must contain a single @' in response.body, 'Missing error message about wrong email'
         assert 'This username already exists' in response.body, 'Missing error message about existing user'