# -*- coding: utf-8 -*- from rhodecode.lib.auth import get_crypt_password, check_password from rhodecode.model.db import User, RhodeCodeSetting, Repository, RhodeCodeUi from rhodecode.tests import * from rhodecode.tests.fixture import Fixture from rhodecode.lib import helpers as h from rhodecode.model.user import UserModel from rhodecode.model.scm import ScmModel from rhodecode.model.meta import Session fixture = Fixture() class TestAdminSettingsController(TestController): def test_index_main(self): self.log_user() response = self.app.get(url('admin_settings')) def test_index_mapping(self): self.log_user() response = self.app.get(url('admin_settings_mapping')) def test_index_global(self): self.log_user() response = self.app.get(url('admin_settings_global')) def test_index_visual(self): self.log_user() response = self.app.get(url('admin_settings_visual')) def test_index_email(self): self.log_user() response = self.app.get(url('admin_settings_email')) def test_index_hooks(self): self.log_user() response = self.app.get(url('admin_settings_hooks')) def test_create_custom_hook(self): self.log_user() response = self.app.post(url('admin_settings_hooks'), params=dict(new_hook_ui_key='test_hooks_1', new_hook_ui_value='cd /tmp')) response = response.follow() response.mustcontain('test_hooks_1') response.mustcontain('cd /tmp') def test_create_custom_hook_delete(self): self.log_user() response = self.app.post(url('admin_settings_hooks'), params=dict(new_hook_ui_key='test_hooks_2', new_hook_ui_value='cd /tmp2')) response = response.follow() response.mustcontain('test_hooks_2') response.mustcontain('cd /tmp2') hook_id = RhodeCodeUi.get_by_key('test_hooks_2').ui_id ## delete self.app.post(url('admin_settings_hooks'), params=dict(hook_id=hook_id)) response = self.app.get(url('admin_settings_hooks')) response.mustcontain(no=['test_hooks_2']) response.mustcontain(no=['cd /tmp2']) def test_index_search(self): self.log_user() response = self.app.get(url('admin_settings_search')) def test_index_system(self): self.log_user() response = self.app.get(url('admin_settings_system')) 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_settings_global'), params=dict(rhodecode_title=old_title, rhodecode_realm=old_realm, rhodecode_ga_code=new_ga_code, rhodecode_captcha_private_key='', rhodecode_captcha_public_key='', )) self.checkSessionFlash(response, 'Updated application settings') self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_ga_code'], new_ga_code) response = response.follow() response.mustcontain("""_gaq.push(['_setAccount', '%s']);""" % new_ga_code) 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_settings_global'), params=dict(rhodecode_title=old_title, rhodecode_realm=old_realm, rhodecode_ga_code=new_ga_code, rhodecode_captcha_private_key='', rhodecode_captcha_public_key='', )) self.checkSessionFlash(response, 'Updated application settings') self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_ga_code'], new_ga_code) response = response.follow() response.mustcontain(no=["_gaq.push(['_setAccount', '%s']);" % new_ga_code]) def test_captcha_activate(self): self.log_user() old_title = 'RhodeCode' old_realm = 'RhodeCode authentication' new_ga_code = '' response = self.app.post(url('admin_settings_global'), params=dict(rhodecode_title=old_title, rhodecode_realm=old_realm, rhodecode_ga_code=new_ga_code, rhodecode_captcha_private_key='1234567890', rhodecode_captcha_public_key='1234567890', )) self.checkSessionFlash(response, 'Updated application settings') self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_captcha_private_key'], '1234567890') response = self.app.get(url('register')) response.mustcontain('captcha') def test_captcha_deactivate(self): self.log_user() old_title = 'RhodeCode' old_realm = 'RhodeCode authentication' new_ga_code = '' response = self.app.post(url('admin_settings_global'), params=dict(rhodecode_title=old_title, rhodecode_realm=old_realm, rhodecode_ga_code=new_ga_code, rhodecode_captcha_private_key='', rhodecode_captcha_public_key='1234567890', )) self.checkSessionFlash(response, 'Updated application settings') self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_captcha_private_key'], '') response = self.app.get(url('register')) response.mustcontain(no=['captcha']) def test_title_change(self): self.log_user() old_title = 'RhodeCode' new_title = old_title + '_changed' old_realm = 'RhodeCode authentication' for new_title in ['Changed', 'Żółwik', old_title]: response = self.app.post(url('admin_settings_global'), params=dict(rhodecode_title=new_title, rhodecode_realm=old_realm, rhodecode_ga_code='', rhodecode_captcha_private_key='', rhodecode_captcha_public_key='', )) self.checkSessionFlash(response, 'Updated application settings') self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_title'], new_title.decode('utf-8')) response = response.follow() response.mustcontain("""