Blame view

framework/tests/forms/ConfirmedPasswordFieldTest.php 3.07 KB
0084d336   Administrator   Importers CRUD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  <?php
  /**
   * @package framework
   * @subpackage tests
   */
  class ConfirmedPasswordFieldTest extends SapphireTest {
  
  	public function testSetValue() {
  		$field = new ConfirmedPasswordField('Test', 'Testing', 'valueA');
  		$this->assertEquals('valueA', $field->Value());
  		$this->assertEquals('valueA', $field->children->fieldByName($field->getName() . '[_Password]')->Value());
  		$this->assertEquals('valueA', $field->children->fieldByName($field->getName() . '[_ConfirmPassword]')->Value());
  		$field->setValue('valueB');
  		$this->assertEquals('valueB', $field->Value());
  		$this->assertEquals('valueB', $field->children->fieldByName($field->getName() . '[_Password]')->Value());
  		$this->assertEquals('valueB', $field->children->fieldByName($field->getName() . '[_ConfirmPassword]')->Value());
  	}
  
  	public function testHashHidden() {
  		$field = new ConfirmedPasswordField('Password', 'Password', 'valueA');
  		$field->setCanBeEmpty(true);
  
  		$this->assertEquals('valueA', $field->Value());
  		$this->assertEquals('valueA', $field->children->fieldByName($field->getName() . '[_Password]')->Value());
  		$this->assertEquals('valueA', $field->children->fieldByName($field->getName() . '[_ConfirmPassword]')->Value());
  
  		$member = new Member();
  		$member->Password = "valueB";
  		$member->write();
  
  		$form = new Form($this, 'Form', new FieldList($field), new FieldList());
  		$form->loadDataFrom($member);
  
  		$this->assertEquals('', $field->Value());
  		$this->assertEquals('', $field->children->fieldByName($field->getName() . '[_Password]')->Value());
  		$this->assertEquals('', $field->children->fieldByName($field->getName() . '[_ConfirmPassword]')->Value());
  	}
  
  	public function testSetShowOnClick() {
  		//hide by default and display show/hide toggle button
  		$field = new ConfirmedPasswordField('Test', 'Testing', 'valueA', null, true);
  		$fieldHTML = $field->Field();
  		$this->assertContains("showOnClickContainer", $fieldHTML,
  			"Test class for hiding/showing the form contents is set");
  		$this->assertContains("showOnClick", $fieldHTML,
  			"Test class for hiding/showing the form contents is set");
  
  		//show all by default
  		$field = new ConfirmedPasswordField('Test', 'Testing', 'valueA', null, false);
  		$fieldHTML = $field->Field();
  		$this->assertNotContains("showOnClickContainer", $fieldHTML,
  			"Test class for hiding/showing the form contents is set");
  		$this->assertNotContains("showOnClick", $fieldHTML,
  			"Test class for hiding/showing the form contents is set");
  	}
  
  	public function testValidation() {
  		$field = new ConfirmedPasswordField('Test', 'Testing', array(
  			"_Password" => "abc123",
  			"_ConfirmPassword" => "abc123"
  		));
  		$validator = new RequiredFields();
  		$form = new Form($this, 'Form', new FieldList($field), new FieldList(), $validator);
  		$this->assertTrue($field->validate($validator));
  		$field->setName("TestNew"); //try changing name of field
  		$this->assertTrue($field->validate($validator));
  		//non-matching password should make the field invalid
  		$field->setValue(array(
  			"_Password" => "abc123",
  			"_ConfirmPassword" => "123abc"
  		));
  		$this->assertFalse($field->validate($validator));
  	}
  
  }