diff --git a/tests/GridFieldAddNewMultiClassTest.php b/tests/GridFieldAddNewMultiClassTest.php new file mode 100644 index 0000000..9882e0b --- /dev/null +++ b/tests/GridFieldAddNewMultiClassTest.php @@ -0,0 +1,58 @@ +setModelClass('GridFieldAddNewMultiClassTest_A'); + + $component = new GridFieldAddNewMultiClass(); + + $this->assertEquals( + array( + 'GridFieldAddNewMultiClassTest_A' => 'A', + 'GridFieldAddNewMultiClassTest_B' => 'B', + 'GridFieldAddNewMultiClassTest_C' => 'C' + ), + $component->getClasses($grid), + 'Subclasses are populated by default and sorted' + ); + + $component->setClasses(array( + 'GridFieldAddNewMultiClassTest_B' => 'Custom Title', + 'GridFieldAddNewMultiClassTest_A' + )); + + $this->assertEquals( + array( + 'GridFieldAddNewMultiClassTest_B' => 'Custom Title', + 'GridFieldAddNewMultiClassTest_A' => 'A' + ), + $component->getClasses($grid), + 'Sorting and custom titles can be specified' + ); + } + +} + +/**#@+ + * @ignore + */ + +class GridFieldAddNewMultiClassTest_A { + public function i18n_singular_name() { + $class = get_class($this); + return substr($class, strpos($class, '_') + 1); + } + + public function canCreate() { + return true; + } +} + +class GridFieldAddNewMultiClassTest_B extends GridFieldAddNewMultiClassTest_A {} +class GridFieldAddNewMultiClassTest_C extends GridFieldAddNewMultiClassTest_A {} + +/**#@-*/