public function testCheckConfiguration()
 {
     $this->init();
     $configurationHandler = new ConfigurationHandler(vfsStream::url('RedKiteCMS'), 'redkitecms.com', 'vendor/redkitecms-framework');
     $configurationHandler->boot();
     $this->assertEquals('vfs://RedKiteCMS/app', $configurationHandler->appDir());
     $this->assertEquals('vfs://RedKiteCMS/app/logs', $configurationHandler->logDir());
     $this->assertEquals('vfs://RedKiteCMS/app/cache', $configurationHandler->cacheDir());
     $this->assertEquals('vfs://RedKiteCMS/app/cache/redkitecms.com', $configurationHandler->siteCacheDir());
     $this->assertEquals('vfs://RedKiteCMS/app/data', $configurationHandler->dataDir());
     $this->assertEquals('vfs://RedKiteCMS/app/data/redkitecms.com', $configurationHandler->siteDir());
     $this->assertEquals('vfs://RedKiteCMS/app/data/redkitecms.com/users', $configurationHandler->usersDir());
     $this->assertEquals('vfs://RedKiteCMS/web', $configurationHandler->webDir());
     $this->assertEquals('vfs://RedKiteCMS/vendor/redkitecms-framework/plugins/RedKiteCms', $configurationHandler->corePluginsDir());
     $this->assertEquals('vfs://RedKiteCMS/app/plugins/RedKiteCms', $configurationHandler->customPluginsDir());
     $this->assertEquals('vfs://RedKiteCMS/app/data/redkitecms.com/pages', $configurationHandler->pagesRootDir());
     $this->assertEquals('vfs://RedKiteCMS/app/data/redkitecms.com/pages/removed', $configurationHandler->pagesRemovedDir());
     $this->assertEquals('vfs://RedKiteCMS/web/upload/assets/redkitecms.com/backend', $configurationHandler->uploadAssetsDir());
     $this->assertEquals('vfs://RedKiteCMS/web/upload/assets/redkitecms.com/production', $configurationHandler->uploadAssetsDirProduction());
     $this->assertEquals('/upload/assets/redkitecms.com/backend', $configurationHandler->absoluteUploadAssetsDir());
     $this->assertEquals('vfs://RedKiteCMS/vendor/redkitecms-framework/config', $configurationHandler->coreConfigDir());
     $this->assertEquals('web', $configurationHandler->webDirname());
     $this->assertEquals(true, $configurationHandler->isProduction());
     $this->assertEquals(false, $configurationHandler->isTheme());
     $this->assertEquals(array("vfs://RedKiteCMS/vendor/redkitecms-framework/plugins/RedKiteCms", "vfs://RedKiteCMS/app/plugins/RedKiteCms", "/vendor/redkite-labs/redkitecms-plugins/RedKiteCms"), $configurationHandler->pluginFolders());
     $this->assertEmpty($configurationHandler->handledTheme());
     $this->assertEquals("SimpleTheme", $configurationHandler->theme());
     $this->assertEquals("en-gb-homepage", $configurationHandler->homepagePermalink());
     $this->assertEquals("en_GB", $configurationHandler->defaultLanguage());
     $this->assertEquals(array("en_GB"), $configurationHandler->languages());
     $this->assertEquals("homepage", $configurationHandler->homepage());
     $this->assertEquals("home", $configurationHandler->homepageTemplate());
     $expectedSiteInfo = array("theme" => "SimpleTheme", "homepage" => "homepage", "locale_default" => "en_GB", "homepage_permalink" => "en-gb-homepage", "languages" => array("en_GB"), "handled_theme" => "");
     $this->assertEquals($expectedSiteInfo, $configurationHandler->siteInfo());
     $expectedConfiguration = array("assets" => array("prod" => array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/components/redkitecms/twitter-bootstrap/css/bootstrap.min.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/jquery/jquery.min.js")), "cms" => array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/plugins/redkitecms/css/skins/redkite/skin.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/redkitecms/jquery-ui/jquery-ui.min.js")), "dashboard" => array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/components/redkitecms/twitter-bootstrap/css/bootstrap.min.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/jquery/jquery.min.js"))), "general" => array("skin" => "RedKiteCms/public/css/skins/redkite", "baseTemplate" => "RedKiteCms/Resources/views/Frontend/base.html.twig"), "foo" => array("bar"));
     $this->assertEquals($expectedConfiguration, $configurationHandler->configuration());
     $this->assertEquals('en', $configurationHandler->language());
     $this->assertEquals('GB', $configurationHandler->country());
     $this->assertEmpty($configurationHandler->getAssetsByType('foo'));
     $expectedAssets = array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/components/redkitecms/twitter-bootstrap/css/bootstrap.min.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/jquery/jquery.min.js"));
     $this->assertEquals($expectedAssets, $configurationHandler->getAssetsByType('prod'));
     $expectedAssets = array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/plugins/redkitecms/css/skins/redkite/skin.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/redkitecms/jquery-ui/jquery-ui.min.js"));
     $this->assertEquals($expectedAssets, $configurationHandler->getAssetsByType('cms'));
     $expectedAssets = array("getExternalStylesheets" => array("vfs://RedKiteCMS/web/components/redkitecms/twitter-bootstrap/css/bootstrap.min.css"), "getExternalJavascripts" => array("vfs://RedKiteCMS/web/components/jquery/jquery.min.js"));
     $this->assertEquals($expectedAssets, $configurationHandler->getAssetsByType('dashboard'));
     $this->assertEquals("RedKiteCms/public/css/skins/redkite", $configurationHandler->skin());
     $this->assertEquals("RedKiteCms/Resources/views/Frontend/base.html.twig", $configurationHandler->baseTemplate());
     $this->assertEquals(array("bar"), $configurationHandler->foo());
 }