Merge branch 'master' into patch-3

This commit is contained in:
Ingo Schommer 2016-12-08 21:28:21 +13:00 committed by GitHub
commit 4fea439139
15 changed files with 53 additions and 55 deletions

3
.codecov.yml Normal file
View File

@ -0,0 +1,3 @@
comment: false
codecov:
branch: master

View File

@ -34,12 +34,13 @@ matrix:
- php: 5.6
env: NPM_TEST=1
- php: 7.0
env: DB=MYSQL PDO=1 PHPUNIT_TEST=1
env: DB=MYSQL PDO=1 PHPUNIT_COVERAGE_TEST=1
before_script:
- composer self-update || true
- phpenv rehash
- phpenv config-rm xdebug.ini
- echo 'memory_limit = 2G' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- composer install --prefer-dist
- "if [ \"$DB\" = \"PGSQL\" ]; then composer require silverstripe/postgresql:2.0.x-dev --prefer-dist; fi"
- "if [ \"$DB\" = \"SQLITE\" ]; then composer require silverstripe/sqlite3:2.0.x-dev --prefer-dist; fi"
@ -56,6 +57,8 @@ script:
- "if [ \"$PHPUNIT_TEST\" = \"1\" ]; then vendor/bin/phpunit tests flush=1; fi"
- "if [ \"$BEHAT_TEST\" = \"1\" ]; then vendor/bin/behat .; fi"
- "if [ \"$NPM_TEST\" = \"1\" ]; then (nvm use 4 && npm run lint); fi"
- "if [ \"$PHPUNIT_COVERAGE_TEST\" = \"1\" ]; then phpdbg -qrr vendor/bin/phpunit tests flush=1 --coverage-clover=coverage.xml; fi"
- "if [ \"$PHPUNIT_COVERAGE_TEST\" = \"1\" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi"
after_failure:
- php ~/travis-support/travis_upload_artifacts.php --if-env BEHAT_TEST,ARTIFACTS_BUCKET,ARTIFACTS_KEY,ARTIFACTS_SECRET --target-path $TRAVIS_REPO_SLUG/$TRAVIS_BUILD_ID/$TRAVIS_JOB_ID --artifacts-base-url https://s3.amazonaws.com/$ARTIFACTS_BUCKET/

View File

@ -1,6 +1,13 @@
## SilverStripe CMS
[![Build Status](https://secure.travis-ci.org/silverstripe/silverstripe-cms.png?branch=master)](http://travis-ci.org/silverstripe/silverstripe-cms)
[![Build Status](https://api.travis-ci.org/silverstripe/silverstripe-cms.svg?branch=master)](https://travis-ci.org/silverstripe/silverstripe-cms)
[![Latest Stable Version](https://poser.pugx.org/silverstripe/cms/version.svg)](http://www.silverstripe.org/stable-download/)
[![Latest Unstable Version](https://poser.pugx.org/silverstripe/cms/v/unstable.svg)](https://packagist.org/packages/silverstripe/cms)
[![codecov](https://codecov.io/gh/silverstripe/silverstripe-cms/branch/master/graph/badge.svg)](https://codecov.io/gh/silverstripe/silverstripe-cms)
[![Total Downloads](https://poser.pugx.org/silverstripe/cms/downloads.svg)](https://packagist.org/packages/silverstripe/cms)
[![License](https://poser.pugx.org/silverstripe/cms/license.svg)](https://github.com/silverstripe/silverstripe-cms#license)
[![Dependency Status](https://www.versioneye.com/php/silverstripe:cms/badge.svg)](https://www.versioneye.com/php/silverstripe:cms)
[![Reference Status](https://www.versioneye.com/php/silverstripe:cms/reference_badge.svg?style=flat)](https://www.versioneye.com/php/silverstripe:cms/references)
![helpfulrobot](https://helpfulrobot.io/silverstripe/cms/badge)
PHP5 Content Management System (CMS), see [http://silverstripe.org](http://silverstripe.org). Requires the [`framework`](http://github.com/silverstripe/silverstripe-framework) module and a [`silverstripe-installer`](http://github.com/silverstripe/silverstripe-installer) base project.

View File

@ -11,7 +11,7 @@ use SilverStripe\Assets\File;
*/
define('CMS_PATH', realpath(__DIR__));
if(strpos(CMS_PATH, BASE_PATH) === 0) {
define('CMS_DIR', trim(substr(CMS_PATH, strlen(BASE_PATH)), '/'));
define('CMS_DIR', trim(substr(CMS_PATH, strlen(BASE_PATH)), DIRECTORY_SEPARATOR));
} else {
throw new Exception("Path error: CMS_PATH " . CMS_PATH . " not within BASE_PATH " . BASE_PATH);
}

View File

@ -6,7 +6,6 @@ use SilverStripe\Forms\HeaderField;
use SilverStripe\Forms\OptionsetField;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\TreeDropdownField;
use SilverStripe\View\Requirements;
use Page;
/**
@ -139,8 +138,6 @@ class RedirectorPage extends Page {
}
public function getCMSFields() {
Requirements::javascript(CMS_DIR . '/client/dist/js/RedirectorPage.js');
$fields = parent::getCMSFields();
$fields->removeByName('Content', true);

View File

@ -1,21 +1,3 @@
<!--
PHPUnit configuration for SilverStripe
Requires PHPUnit 3.5+
Usage:
- "phpunit": Runs all tests in all folders
- "phpunit framework/tests/": Run all tests of the framework module
- "phpunit framework/tests/filesystem": Run all filesystem tests within the framework module
- "phpunit framework/tests/filesystem/FolderTest.php": Run a single test
- "phpunit <dash><dash>coverage-html assets/": Generate coverage report (replace <dash> with "-", requires xdebug)
More information:
- http://www.phpunit.de/manual/current/en/textui.html
- http://doc.silverstripe.org/framework/en/topics/testing/#configuration
It is safe to remove this file for normal website operation.
-->
<phpunit bootstrap="tests/bootstrap.php" colors="true">
<testsuite name="Default">
@ -26,12 +8,6 @@
<listener class="SilverStripe\Dev\TestListener" />
</listeners>
<groups>
<exclude>
<group>sanitychecks</group>
</exclude>
</groups>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">.</directory>

View File

@ -1,4 +1,4 @@
<div id="pages-controller-cms-content" class="has-panel cms-content flexbox-area-grow fill-height $BaseCSSClasses" data-layout-type="border" data-pjax-fragment="Content" data-ignore-tab-state="true">
<div id="pages-controller-cms-content" class="has-panel cms-content flexbox-area-grow fill-width fill-height $BaseCSSClasses" data-layout-type="border" data-pjax-fragment="Content" data-ignore-tab-state="true">
<div class="fill-width fill-height flexbox-area-grow">
$Tools
@ -30,7 +30,7 @@
</div>
</div>
<div class="flexbox-area-grow fill-height fill-width">
<div class="flexbox-area-grow fill-height">
$EditForm
</div>
</div>

View File

@ -1,9 +1,11 @@
<div class="cms-preview fill-height flexbox-area-grow" data-layout-type="border">
<div class="panel panel--scrollable flexbox-area-grow">
<div class="panel flexbox-area-grow fill-height">
<div class="preview-note"><span><!-- --></span><%t CMSPageHistoryController_versions_ss.PREVIEW 'Website preview' %></div>
<div class="preview-device-outer">
<div class="preview-device-inner">
<iframe src="about:blank" class="center" name="cms-preview-iframe"></iframe>
<div class="preview__device">
<div class="preview-device-outer">
<div class="preview-device-inner">
<iframe src="about:blank" class="center" name="cms-preview-iframe"></iframe>
</div>
</div>
</div>
</div>

View File

@ -145,7 +145,7 @@ class ContentControllerTest extends FunctionalTest {
/**
* Tests that {@link ContentController::getViewer()} chooses the correct templates.
*
* @covers ContentController::getViewer()
* @covers SilverStripe\CMS\Controllers\ContentController::getViewer()
**/
public function testGetViewer() {

View File

@ -5,6 +5,8 @@ use SilverStripe\Assets\File;
use SilverStripe\Control\Session;
use SilverStripe\View\Parsers\ShortcodeParser;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Assets\Tests\Storage\AssetStoreTest\TestAssetStore;
class ErrorPageFileExtensionTest extends SapphireTest {
@ -17,7 +19,7 @@ class ErrorPageFileExtensionTest extends SapphireTest {
parent::setUp();
$this->versionedMode = Versioned::get_reading_mode();
Versioned::set_stage(Versioned::DRAFT);
AssetStoreTest_SpyStore::activate('ErrorPageFileExtensionTest');
TestAssetStore::activate('ErrorPageFileExtensionTest');
$file = new File();
$file->setFromString('dummy', 'dummy.txt');
$file->write();
@ -25,7 +27,7 @@ class ErrorPageFileExtensionTest extends SapphireTest {
public function tearDown() {
Versioned::set_reading_mode($this->versionedMode);
AssetStoreTest_SpyStore::reset();
TestAssetStore::reset();
parent::tearDown(); // TODO: Change the autogenerated stub
}

View File

@ -4,6 +4,8 @@ use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\CMS\Model\ErrorPage;
use SilverStripe\Core\Config\Config;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\Assets\Tests\Storage\AssetStoreTest\TestAssetStore;
@ -25,14 +27,14 @@ class ErrorPageTest extends FunctionalTest {
public function setUp() {
parent::setUp();
// Set temporary asset backend store
AssetStoreTest_SpyStore::activate('ErrorPageTest');
TestAssetStore::activate('ErrorPageTest');
Config::inst()->update('SilverStripe\\CMS\\Model\\ErrorPage', 'enable_static_file', true);
Config::inst()->update('SilverStripe\\Control\\Director', 'environment_type', 'live');
$this->logInWithPermission('ADMIN');
}
public function tearDown() {
AssetStoreTest_SpyStore::reset();
TestAssetStore::reset();
parent::tearDown();
}
@ -88,7 +90,7 @@ class ErrorPageTest extends FunctionalTest {
public function testStaticCaching() {
// Test new error code does not have static content
$this->assertEmpty(ErrorPage::get_content_for_errorcode('401'));
$expectedErrorPagePath = AssetStoreTest_SpyStore::base_path() . '/error-401.html';
$expectedErrorPagePath = TestAssetStore::base_path() . '/error-401.html';
$this->assertFileNotExists($expectedErrorPagePath, 'Error page is not automatically cached');
// Write new 401 page
@ -101,7 +103,7 @@ class ErrorPageTest extends FunctionalTest {
// Static cache should now exist
$this->assertNotEmpty(ErrorPage::get_content_for_errorcode('401'));
$expectedErrorPagePath = AssetStoreTest_SpyStore::base_path() . '/error-401.html';
$expectedErrorPagePath = TestAssetStore::base_path() . '/error-401.html';
$this->assertFileExists($expectedErrorPagePath, 'Error page is cached');
}
@ -126,7 +128,7 @@ class ErrorPageTest extends FunctionalTest {
// Static content is not available
$this->assertEmpty(ErrorPage::get_content_for_errorcode('405'));
$expectedErrorPagePath = AssetStoreTest_SpyStore::base_path() . '/error-405.html';
$expectedErrorPagePath = TestAssetStore::base_path() . '/error-405.html';
$this->assertFileNotExists($expectedErrorPagePath, 'Error page is not cached in static location');
}
}

View File

@ -6,6 +6,8 @@ use SilverStripe\CMS\Model\VirtualPage;
use SilverStripe\Assets\File;
use SilverStripe\Assets\Filesystem;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Assets\Tests\Storage\AssetStoreTest\TestAssetStore;
@ -20,13 +22,13 @@ class FileLinkTrackingTest extends SapphireTest {
Versioned::set_stage(Versioned::DRAFT);
AssetStoreTest_SpyStore::activate('FileLinkTrackingTest');
TestAssetStore::activate('FileLinkTrackingTest');
$this->logInWithPermission('ADMIN');
// Write file contents
$files = File::get()->exclude('ClassName', 'SilverStripe\\Assets\\Folder');
foreach($files as $file) {
$destPath = AssetStoreTest_SpyStore::getLocalPath($file);
$destPath = TestAssetStore::getLocalPath($file);
Filesystem::makeFolder(dirname($destPath));
file_put_contents($destPath, str_repeat('x', 1000000));
// Ensure files are published, thus have public urls
@ -44,7 +46,7 @@ class FileLinkTrackingTest extends SapphireTest {
}
public function tearDown() {
AssetStoreTest_SpyStore::reset();
TestAssetStore::reset();
parent::tearDown();
}

View File

@ -7,6 +7,8 @@ use SilverStripe\CMS\Model\VirtualPage;
use SilverStripe\CMS\Model\RedirectorPage;
use SilverStripe\Assets\File;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Assets\Tests\Storage\AssetStoreTest\TestAssetStore;
@ -23,12 +25,12 @@ class SiteTreeBrokenLinksTest extends SapphireTest {
parent::setUp();
Versioned::set_stage(Versioned::DRAFT);
AssetStoreTest_SpyStore::activate('SiteTreeBrokenLinksTest');
TestAssetStore::activate('SiteTreeBrokenLinksTest');
$this->logInWithPermission('ADMIN');
}
public function tearDown() {
AssetStoreTest_SpyStore::reset();
TestAssetStore::reset();
parent::tearDown();
}

View File

@ -6,6 +6,8 @@ use SilverStripe\Assets\Filesystem;
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
use SilverStripe\Dev\CSSContentParser;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\Assets\Tests\Storage\AssetStoreTest\TestAssetStore;
class SiteTreeHTMLEditorFieldTest extends FunctionalTest {
protected static $fixture_file = 'SiteTreeHTMLEditorFieldTest.yml';
@ -14,20 +16,20 @@ class SiteTreeHTMLEditorFieldTest extends FunctionalTest {
public function setUp() {
parent::setUp();
AssetStoreTest_SpyStore::activate('SiteTreeHTMLEditorFieldTest');
TestAssetStore::activate('SiteTreeHTMLEditorFieldTest');
$this->logInWithPermission('ADMIN');
// Write file contents
$files = File::get()->exclude('ClassName', 'SilverStripe\\Assets\\Folder');
foreach($files as $file) {
$destPath = AssetStoreTest_SpyStore::getLocalPath($file);
$destPath = TestAssetStore::getLocalPath($file);
Filesystem::makeFolder(dirname($destPath));
file_put_contents($destPath, str_repeat('x', 1000000));
}
}
public function tearDown() {
AssetStoreTest_SpyStore::reset();
TestAssetStore::reset();
parent::tearDown();
}

View File

@ -838,7 +838,7 @@ class SiteTreeTest extends SapphireTest {
}
/**
* @covers SiteTree::validURLSegment
* @covers SilverStripe\CMS\Model\SiteTree::validURLSegment
*/
public function testValidURLSegmentURLSegmentConflicts() {
$sitetree = new SiteTree();
@ -869,7 +869,7 @@ class SiteTreeTest extends SapphireTest {
}
/**
* @covers SiteTree::validURLSegment
* @covers SilverStripe\CMS\Model\SiteTree::validURLSegment
*/
public function testValidURLSegmentClassNameConflicts() {
$sitetree = new SiteTree();
@ -879,7 +879,7 @@ class SiteTreeTest extends SapphireTest {
}
/**
* @covers SiteTree::validURLSegment
* @covers SilverStripe\CMS\Model\SiteTree::validURLSegment
*/
public function testValidURLSegmentControllerConflicts() {
Config::inst()->update('SilverStripe\\CMS\\Model\\SiteTree', 'nested_urls', true);