diff --git a/modules/cms/classes/CmsObject.php b/modules/cms/classes/CmsObject.php
index 02f160017..f17ae5c50 100644
--- a/modules/cms/classes/CmsObject.php
+++ b/modules/cms/classes/CmsObject.php
@@ -99,7 +99,19 @@ class CmsObject extends HalcyonModel implements CmsObjectContract
*/
public static function listInTheme($theme, $skipCache = false)
{
- return static::inTheme($theme)->get();
+ $instance = static::inTheme($theme);
+
+ if ($skipCache) {
+ return $instance->get();
+ }
+
+ $items = $instance->newQuery()->lists('fileName');
+
+ $items = array_map(function ($item) use ($theme) {
+ return static::loadCached($theme, $item);
+ }, $items);
+
+ return $instance->newCollection($items);
}
/**
diff --git a/modules/cms/classes/Page.php b/modules/cms/classes/Page.php
index 625fac40d..b25c550f0 100644
--- a/modules/cms/classes/Page.php
+++ b/modules/cms/classes/Page.php
@@ -75,7 +75,7 @@ class Page extends CmsCompoundObject
}
/**
- * Returns a list of layouts available in the theme.
+ * Returns a list of layouts available in the theme.
* This method is used by the form widget.
* @return array Returns an array of strings.
*/
diff --git a/tests/unit/cms/classes/SectionParserTest.php b/tests/unit/cms/classes/SectionParserTest.php
deleted file mode 100644
index 0f200ad2f..000000000
--- a/tests/unit/cms/classes/SectionParserTest.php
+++ /dev/null
@@ -1,338 +0,0 @@
-assertInternalType('array', $result);
- $this->assertCount(3, $result);
- $this->assertArrayHasKey("settings", $result);
- $this->assertArrayHasKey("code", $result);
- $this->assertArrayHasKey("markup", $result);
- $this->assertEmpty($result["settings"]);
- $this->assertNull($result["code"]);
- $this->assertNotNull($result["markup"]);
- $this->assertEquals("this is a twig content", $result["markup"]);
-
- // Test two sections
- $result = SectionParser::parse("url = \"/blog/post/\" \n==\n this is a twig content");
- $this->assertInternalType('array', $result);
- $this->assertCount(3, $result);
- $this->assertArrayHasKey("settings", $result);
- $this->assertArrayHasKey("code", $result);
- $this->assertArrayHasKey("markup", $result);
- $this->assertNotNull($result["markup"]);
- $this->assertNotNull($result["settings"]);
- $this->assertNull($result["code"]);
- $this->assertEquals("this is a twig content", $result["markup"]);
- $this->assertInternalType("array", $result["settings"]);
- $this->assertArrayHasKey("url", $result["settings"]);
- $this->assertEquals("/blog/post/", $result["settings"]["url"]);
-
- // Test three sections
- $result = SectionParser::parse("url = \"/blog/post/\"\n[section]\nindex = value \n===\n \$var = 23; \n phpinfo(); \n===\n this is a twig content");
- $this->assertInternalType('array', $result);
- $this->assertCount(3, $result);
- $this->assertArrayHasKey("settings", $result);
- $this->assertArrayHasKey("code", $result);
- $this->assertArrayHasKey("markup", $result);
- $this->assertNotNull($result["settings"]);
- $this->assertNotNull($result["markup"]);
- $this->assertNotNull($result["code"]);
- $this->assertEquals("this is a twig content", $result["markup"]);
- $this->assertInternalType("array", $result["settings"]);
- $this->assertArrayHasKey("url", $result["settings"]);
- $this->assertEquals("/blog/post/", $result["settings"]["url"]);
- $this->assertContains("\$var = 23;", $result["code"]);
- $this->assertContains("phpinfo();", $result["code"]);
-
- $this->assertArrayHasKey("section", $result["settings"]);
- $this->assertInternalType("array", $result["settings"]["section"]);
- $this->assertArrayHasKey("index", $result["settings"]["section"]);
- $this->assertEquals("value", $result["settings"]["section"]["index"]);
-
- // Test zero sections
- $result = SectionParser::parse("");
- $this->assertCount(3, $result);
- $this->assertArrayHasKey("settings", $result);
- $this->assertArrayHasKey("code", $result);
- $this->assertArrayHasKey("markup", $result);
- $this->assertEmpty($result["settings"]);
- $this->assertNotNull($result["markup"]);
- $this->assertNull($result["code"]);
- $this->assertEquals("", $result["markup"]);
- }
-
- public function testParseOffset()
- {
-
- // Test three sections
- $content = <<
Line 2
-Line 3
-ESC; - $result = SectionParser::parseOffset($content); - $this->assertArrayHasKey("settings", $result); - $this->assertArrayHasKey("code", $result); - $this->assertArrayHasKey("markup", $result); - $this->assertNotNull($result["markup"]); - $this->assertNull($result["settings"]); - $this->assertNull($result["code"]); - $this->assertEquals(1, $result["markup"]); - - - // Test empty PHP - $content = <<Line 10
-ESC; - - $result = SectionParser::parseOffset($content); - $this->assertArrayHasKey("settings", $result); - $this->assertArrayHasKey("code", $result); - $this->assertArrayHasKey("markup", $result); - $this->assertNotNull($result["settings"]); - $this->assertNotNull($result["code"]); - $this->assertNotNull($result["markup"]); - $this->assertEquals(1, $result["settings"]); - $this->assertEquals(5, $result["code"]); - $this->assertEquals(10, $result["markup"]); - - // Test with PHP tags and whitespace - $content = <<Line 18
-ESC; - - $result = SectionParser::parseOffset($content); - $this->assertArrayHasKey("settings", $result); - $this->assertArrayHasKey("code", $result); - $this->assertArrayHasKey("markup", $result); - $this->assertNotNull($result["settings"]); - $this->assertNotNull($result["code"]); - $this->assertNotNull($result["markup"]); - $this->assertEquals(1, $result["settings"]); - $this->assertEquals(13, $result["code"]); - $this->assertEquals(18, $result["markup"]); - - // Test with PHP tags and whitespace both sides - $content = <<Line 25
-ESC; - - $result = SectionParser::parseOffset($content); - $this->assertArrayHasKey("settings", $result); - $this->assertArrayHasKey("code", $result); - $this->assertArrayHasKey("markup", $result); - $this->assertNotNull($result["settings"]); - $this->assertNotNull($result["code"]); - $this->assertNotNull($result["markup"]); - $this->assertEquals(1, $result["settings"]); - $this->assertEquals(20, $result["code"]); - $this->assertEquals(25, $result["markup"]); - - // Test with whitespace on PHP and Twig - $content = <<