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 implements TestOnly { 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 implements TestOnly { } class GridFieldAddNewMultiClassTest_C extends GridFieldAddNewMultiClassTest_A implements TestOnly { } /**#@-*/