Blame view

framework/tests/forms/gridfield/GridFieldConfigTest.php 3.48 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
  <?php
  /**
   * @package framework
   * @subpackage tests
   */
  
  class GridFieldConfigTest extends SapphireTest {
  
  	public function testGetComponents() {
  		$config = GridFieldConfig::create();
  		$this->assertInstanceOf('ArrayList', $config->getComponents());
  		$this->assertEquals($config->getComponents()->Count(), 0);
  
  		$config
  			->addComponent($c1 = new GridFieldConfigTest_MyComponent())
  			->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
  			->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
  
  		$this->assertEquals(
  			new ArrayList(array($c1, $c2, $c3)), 
  			$config->getComponents()
  		);
  	}
  
  	public function testGetComponentsByType() {
  		$config = GridFieldConfig::create()
  			->addComponent($c1 = new GridFieldConfigTest_MyComponent())
  			->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
  			->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
  
  		$this->assertEquals(
  			new ArrayList(array($c1)), 
  			$config->getComponentsByType('GridFieldConfigTest_MyComponent')
  		);
  		$this->assertEquals(
  			new ArrayList(array($c2, $c3)),
  			$config->getComponentsByType('GridFieldConfigTest_MyOtherComponent')
  		);
  		$this->assertEquals(
  			new ArrayList(array($c1, $c2, $c3)),
  			$config->getComponentsByType('GridField_URLHandler')
  		);
  		$this->assertEquals(
  			new ArrayList(),
  			$config->getComponentsByType('GridFieldConfigTest_UnknownComponent')
  		);
  	}	
  
  	public function testGetComponentByType() {
  		$config = GridFieldConfig::create()
  			->addComponent($c1 = new GridFieldConfigTest_MyComponent())
  			->addComponent($c2 = new GridFieldConfigTest_MyOtherComponent())
  			->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent());
  
  		$this->assertEquals(
  			$c1, 
  			$config->getComponentByType('GridFieldConfigTest_MyComponent')
  		);
  		$this->assertEquals(
  			$c2,
  			$config->getComponentByType('GridFieldConfigTest_MyOtherComponent')
  		);
  		$this->assertNull(
  			$config->getComponentByType('GridFieldConfigTest_UnknownComponent')
  		);
  	}
  
  	public function testAddComponents() {
  		$config = GridFieldConfig::create()
  			->addComponents(
  				$c1 = new GridFieldConfigTest_MyComponent(),
  				$c2 = new GridFieldConfigTest_MyOtherComponent()
  			);
  
  		$this->assertEquals(
  			$c1, 
  			$config->getComponentByType('GridFieldConfigTest_MyComponent')
  		);
  		$this->assertEquals(
  			$c2,
  			$config->getComponentByType('GridFieldConfigTest_MyOtherComponent')
  		);
  	}
  	
  	public function testRemoveComponents() {
  		$config = GridFieldConfig::create()
  			->addComponent($c1 = new GridFieldConfigTest_MyComponent())
  			->addComponent($c2 = new GridFieldConfigTest_MyComponent())
  			->addComponent($c3 = new GridFieldConfigTest_MyOtherComponent())
  			->addComponent($c4 = new GridFieldConfigTest_MyOtherComponent());
  
  		$this->assertEquals(
  			4, 
  			$config->getComponents()->count()
  		);
  		
  		$config->removeComponent($c1);
  		$this->assertEquals(
  			3, 
  			$config->getComponents()->count()
  		);
  		
  		$config->removeComponentsByType("GridFieldConfigTest_MyComponent");
  		$this->assertEquals(
  			2, 
  			$config->getComponents()->count()
  		);
  		
  		$config->removeComponentsByType("GridFieldConfigTest_MyOtherComponent");
  		$this->assertEquals(
  			0, 
  			$config->getComponents()->count()
  		);
  	}
  	
  }
  
  class GridFieldConfigTest_MyComponent implements GridField_URLHandler, TestOnly {
  	public function getURLHandlers($gridField) {return array();}
  }
  
  class GridFieldConfigTest_MyOtherComponent implements GridField_URLHandler, TestOnly {
  	public function getURLHandlers($gridField) {return array();}
  }