Skip to content

Commit

Permalink
Merge branch '5' into 6
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Sep 24, 2024
2 parents dca4404 + df82162 commit b985f05
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 15 deletions.
19 changes: 6 additions & 13 deletions code/Model/SiteTree.php
Original file line number Diff line number Diff line change
Expand Up @@ -2747,8 +2747,6 @@ public function isNew()
protected function getClassDropdown()
{
$classes = SiteTree::page_type_classes();
$currentClass = null;

$result = [];
foreach ($classes as $class) {
$instance = singleton($class);
Expand All @@ -2774,20 +2772,15 @@ protected function getClassDropdown()
}
}

$pageTypeName = $instance->i18n_singular_name();

$currentClass = $class;
$result[$class] = $pageTypeName;
$result[$class] = $instance->i18n_singular_name();
}

// sort alphabetically, and put current on top
// Sort alphabetically, and put current on top
asort($result);
if ($currentClass) {
$currentPageTypeName = $result[$currentClass];
unset($result[$currentClass]);
$result = array_reverse($result ?? []);
$result[$currentClass] = $currentPageTypeName;
$result = array_reverse($result ?? []);
if (isset($result[$this->ClassName])) {
$currentPageTypeName = $result[$this->ClassName];
unset($result[$this->ClassName]);
$result = [$this->ClassName => $currentPageTypeName] + $result;
}

return $result;
Expand Down
18 changes: 16 additions & 2 deletions tests/php/Model/SiteTreeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1272,7 +1272,7 @@ public function testAllowedChildrenContainsCoreSubclassesButNotHiddenClass()
#[DataProvider('allowedChildrenProvider')]
public function testAllowedChildren($className, $expected, $assertionMessage)
{
$class = new $className;
$class = new $className();
$this->assertEquals($expected, $class->allowedChildren(), $assertionMessage);
}

Expand Down Expand Up @@ -1351,6 +1351,9 @@ public function testAllowedChildrenValidation()
);
}

/**
* @return void
*/
public function testClassDropdown()
{
$sitetree = new SiteTree();
Expand All @@ -1372,7 +1375,18 @@ public function testClassDropdown()

$this->assertArrayNotHasKey(SiteTreeTest_NotRoot::class, $method->invoke($rootPage));
$this->assertArrayHasKey(SiteTreeTest_NotRoot::class, $method->invoke($nonRootPage));

foreach ([SiteTreeTest_ClassA::class, SiteTreeTest_ClassB::class] as $className) {
$otherPage = new $className();
$otherPage->write();
$result = $method->invoke(object: $otherPage);
$this->assertEquals(array_key_first($result), $className);
// remove the first element as this is not alphabetical
array_shift($result);
// create a sorted array
$resultSorted = $result;
asort($resultSorted);
$this->assertEquals($result, $resultSorted);
}
Security::setCurrentUser(null);
}

Expand Down

0 comments on commit b985f05

Please sign in to comment.