3 defined('AK_ACTIVE_RECORD_PROTECT_GET_RECURSION') ?
null : define('AK_ACTIVE_RECORD_PROTECT_GET_RECURSION', false);
4 defined('AK_TEST_DATABASE_ON') ?
null : define('AK_TEST_DATABASE_ON', true);
6 require_once(dirname(__FILE__
).'/../../../../fixtures/config/config.php');
8 require_once('_HelpersUnitTester.php');
9 require_once(AK_LIB_DIR
.DS
.'AkActionView'.DS
.'helpers'.DS
.'active_record_helper.php');
10 require_once(AK_LIB_DIR
.DS
.'AkActionController.php');
11 require_once(AK_LIB_DIR
.DS
.'AkRequest.php');
13 ak_generate_mock('AkRequest');
16 class ActiveRecordHelperTests
extends HelpersUnitTester
20 $this->controller
= &new AkActionController();
21 $this->controller
->Request
=& new MockAkRequest($this);
22 $this->controller
->controller_name
= 'test';
23 $this->controller
->instantiateHelpers();
25 $this->active_record_helper
=& $this->controller
->active_record_helper
;
26 $this->installAndIncludeModels(array('ProtectedPerson','Property'));
28 $this->controller
->ProtectedPerson
=& new ProtectedPerson();
29 $this->LuckyLuke
=& $this->controller
->ProtectedPerson
;
30 $this->controller
->ProtectedPerson
->name
= "Lucky Luke";
31 $this->controller
->ProtectedPerson
->created_by
= "1";
32 $this->controller
->ProtectedPerson
->birthday
= Ak
::getDate(mktime(8,42,36,3,27,1982));
33 $this->controller
->ProtectedPerson
->save();
34 $this->controller
->ProtectedPerson
->created_at
= Ak
::getDate(mktime(8,42,36,3,27,1982));
35 $this->controller
->ProtectedPerson
->updated_at
= Ak
::getDate(mktime(8,42,36,3,27,1982));
37 $this->controller
->Property
=& new Property('description->','阿尔罕布拉宫','details->','阿尔罕布拉宫 <> & (阿拉伯语: الحمراء = Al Ħamrā\'; 即"红色城堡")');
38 $this->alhambra
=& $this->controller
->Property
;
39 $this->alhambra
->save();
43 function tests_input()
46 $this->active_record_helper
->input('ProtectedPerson', 'name'),
47 '<input id="ProtectedPerson_name" name="ProtectedPerson[name]" size="30" type="text" value="Lucky Luke" />'
50 $this->active_record_helper
->input('ProtectedPerson', 'id'),
55 $this->active_record_helper
->input('ProtectedPerson', 'birthday'),
56 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_input_date.txt')
61 $this->active_record_helper
->input('ProtectedPerson', 'is_active'),
62 '<input name="ProtectedPerson[is_active]" type="hidden" value="0" /><input checked="checked" id="ProtectedPerson_is_active" name="ProtectedPerson[is_active]" type="checkbox" value="1" />'
69 $this->active_record_helper
->form('ProtectedPerson'),
70 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_form.txt')
74 function test_should_render_limited_form_fields()
77 $this->active_record_helper
->form('ProtectedPerson', array('columns'=>array('id','name'))),
78 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_limited_form.txt')
82 function test_error_message_on()
84 $this->LuckyLuke
->addError('name');
86 $this->active_record_helper
->error_message_on('ProtectedPerson', 'name'),
87 '<div class="formError">is invalid</div>'
91 $this->active_record_helper
->error_message_on('ProtectedPerson', 'name', 'before ',' after','nameError'),
92 '<div class="nameError">before is invalid after</div>'
96 function test_error_messages_for()
98 $this->LuckyLuke
->addError('birthday');
100 $this->active_record_helper
->error_messages_for('ProtectedPerson'),
101 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_errors.txt')
105 $this->active_record_helper
->error_messages_for('ProtectedPerson', array('header_tag'=>'h3','id'=>'LuckyLukeErrors','class'=>'errors')),
106 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_errors_2.txt')
110 function test_textarea_should_escape_characters_correctly()
113 $this->active_record_helper
->form('Property'),
114 file_get_contents(AK_TEST_HELPERS_DIR
.DS
.'active_record_textarea_should_escape_characters_correctly.txt')
120 ak_test('ActiveRecordHelperTests');