Merge branch '3.0'

Conflicts:
	composer.json
This commit is contained in:
Ingo Schommer 2012-11-22 23:48:18 +01:00
commit e6e12fe00e
16 changed files with 202 additions and 14 deletions

View File

@ -1,6 +1,6 @@
## SilverStripe CMS
[![Build Status](https://secure.travis-ci.org/silverstripe/silverstripe-cms.png)](http://travis-ci.org/silverstripe/silverstripe-cms)
[![Build Status](https://secure.travis-ci.org/silverstripe/silverstripe-cms.png?branch=3.0)](http://travis-ci.org/silverstripe/silverstripe-cms)
PHP5 Content Management System (CMS), see [http://silverstripe.org](http://silverstripe.org). Requires the [`framework`](http://github.com/silverstripe/sapphire) module and a [`silverstripe-installer`](http://github.com/silverstripe/silverstripe-installer) base project.
@ -19,7 +19,7 @@ and [installation from source](http://doc.silverstripe.org/framework/en/installa
## License ##
Copyright (c) 2007-2011, SilverStripe Limited - www.silverstripe.com
Copyright (c) 2007-2012, SilverStripe Limited - www.silverstripe.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

View File

@ -120,11 +120,17 @@ JS
// Category filter
if(isset($params['AppCategory'])) {
$exts = File::$app_categories[$params['AppCategory']];
if(isset(File::$app_categories[$params['AppCategory']])) {
$exts = File::$app_categories[$params['AppCategory']];
} else {
$exts = array();
}
$categorySQLs = array();
foreach($exts as $ext) $categorySQLs[] = '"File"."Name" LIKE \'%.' . $ext . '\'';
// TODO Use DataList->filterAny() once OR connectives are implemented properly
$list = $list->where('(' . implode(' OR ', $categorySQLs) . ')');
if (count($categorySQLs) > 0) {
$list = $list->where('(' . implode(' OR ', $categorySQLs) . ')');
}
}
return $list;

View File

@ -27,6 +27,8 @@ class SiteTreeURLSegmentField extends TextField {
public function Field($properties = array()) {
Requirements::javascript(CMS_DIR . '/javascript/SiteTreeURLSegmentField.js');
Requirements::add_i18n_javascript(CMS_DIR . '/javascript/lang', false, true);
Requirements::css(CMS_DIR . "/css/screen.css");
return parent::Field($properties);
}

View File

@ -44,7 +44,6 @@ class SiteConfig extends DataObject implements PermissionProvider {
* @return FieldList
*/
public function getCMSFields() {
Requirements::javascript(CMS_DIR . "/javascript/SitetreeAccess.js");
$groupsMap = Group::get()->map('ID', 'Breadcrumbs')->toArray();
asort($groupsMap);

View File

@ -24,5 +24,8 @@
"branch-alias": {
"dev-master": "3.1.x-dev"
}
},
"autoload": {
"classmap": ["tests/behat/"]
}
}

View File

@ -166,7 +166,7 @@
// edit button
editAction = $('<button />', {
'class': 'ss-ui-button ss-ui-button-small edit',
'text': ss.i18n._t('URLSEGMENT.Edit'),
'text': ss.i18n._t('URLSEGMENT.Edit', 'Edit'),
'click': function(e) {
e.preventDefault();
self.edit();
@ -177,7 +177,7 @@
// update button
updateAction = $('<button />', {
'class': 'update ss-ui-button-small',
'text': ss.i18n._t('URLSEGMENT.OK'),
'text': ss.i18n._t('URLSEGMENT.OK', 'OK'),
'click': function(e) {
e.preventDefault();
self.update();
@ -188,7 +188,7 @@
cancelAction = $('<button />', {
'class': 'cancel ss-ui-action-minor ss-ui-button-small',
'href': '#',
'text': ss.i18n._t('URLSEGMENT.Cancel'),
'text': ss.i18n._t('URLSEGMENT.Cancel', 'Cancel'),
'click': function(e) {
e.preventDefault();
self.cancel();

View File

@ -1,6 +1,7 @@
en:
AssetAdmin:
ADDFILES: 'Add Files'
ALLOWEDEXTS: 'Allowed extensions'
ActionAdd: 'Add folder'
AppCategoryArchive: Archive
AppCategoryAudio: Audio
@ -138,7 +139,6 @@ en:
MENUTITLE: Pages
TreeView: 'Tree View'
CMSPagesController_ContentToolbar.ss:
ENABLEDRAGGING: 'Drag''n''drop'
MULTISELECT: Multi-selection
CMSPagesController_Tools.ss:
FILTER: Filter
@ -173,7 +173,7 @@ en:
PUBLISHEDSITE: 'Published Site'
Password: Password
PostInstallTutorialIntro: 'This website is a simplistic version of a SilverStripe 3 site. To extend this, please take a look at {link}.'
StartEditing: 'You can start editing your site\''s content by opening <a href="{link}">the CMS</a>.'
StartEditing: 'You can start editing your content by opening <a href="{link}">the CMS</a>.'
UnableDeleteInstall: 'Unable to delete installation files. Please delete the files below manually'
VIEWPAGEIN: 'View Page in:'
ErrorPage:
@ -323,9 +323,9 @@ en:
LINKCHANGENOTE: 'Changing this page''s link will also affect the links of all child pages.'
MENUTITLE: 'Navigation label'
METADESC: 'Meta Description'
METADESCHELP: 'Search engines use this content for displaying search results (although it will not influence their ranking).'
METAEXTRA: 'Custom Meta Tags'
METAEXTRAHELP: 'HTML tags for additional meta information. For example &lt;meta name="customName" content="your custom content here" /&gt;'
METAKEYWORDS: 'Meta Keywords'
METATITLE: 'Meta Title'
MODIFIEDONDRAFTHELP: 'Page has unpublished changes'
MODIFIEDONDRAFTSHORT: Modified
MetadataToggle: Metadata
@ -387,8 +387,6 @@ en:
VIEWLAST: 'View last'
VIEWNEXT: 'View next'
VIEWPREVIOUS: 'View previous'
TreeTools:
DisplayLabel: 'Display:'
ViewArchivedEmail.ss:
CANACCESS: 'You can access the archived site at this link:'
HAVEASKED: 'You have asked to view the content of our site on'

1
tests/behat/README.md Normal file
View File

@ -0,0 +1 @@
See https://github.com/silverstripe-labs/silverstripe-behat-extension

View File

34
tests/behat/behat.yml Normal file
View File

@ -0,0 +1,34 @@
default:
context:
class: SilverStripe\Cms\Test\Behaviour\FeatureContext
extensions:
SilverStripe\BehatExtension\Extension: ~
Behat\MinkExtension\Extension:
# Adjust this to your local environment
base_url: http://localhost/
files_path: %behat.paths.features%/files/
default_session: selenium2
javascript_session: selenium2
goutte: ~
selenium2:
browser: firefox
# Alternative profile, use with "vendor/bin/behat --profile chrome"
chrome:
extensions:
Behat\MinkExtension\Extension:
selenium2:
browser: chrome
# Saucelabs.com sample setup, use with "vendor/bin/behat --profile saucelabs"
saucelabs:
extensions:
Behat\MinkExtension\Extension:
selenium2:
browser: firefox
# Add your own username and API token here
wd_host: <user>:<api-token>@ondemand.saucelabs.com/wd/hub
capabilities:
platform: "Windows 2008"
browser: "firefox"
version: "15"

View File

@ -0,0 +1,38 @@
<?php
namespace SilverStripe\Cms\Test\Behaviour;
use SilverStripe\BehatExtension\Context\SilverStripeContext,
SilverStripe\BehatExtension\Context\BasicContext,
SilverStripe\BehatExtension\Context\LoginContext,
SilverStripe\Test\Behaviour\CmsFormsContext,
SilverStripe\Test\Behaviour\CmsUiContext;
// PHPUnit
require_once 'PHPUnit/Autoload.php';
require_once 'PHPUnit/Framework/Assert/Functions.php';
/**
* Features context
*
* Context automatically loaded by Behat.
* Uses subcontexts to extend functionality.
*/
class FeatureContext extends SilverStripeContext
{
/**
* Initializes context.
* Every scenario gets it's own context object.
*
* @param array $parameters context parameters (set them up through behat.yml)
*/
public function __construct(array $parameters)
{
$this->useContext('BasicContext', new BasicContext($parameters));
$this->useContext('LoginContext', new LoginContext($parameters));
$this->useContext('CmsFormsContext', new CmsFormsContext($parameters));
$this->useContext('CmsUiContext', new CmsUiContext($parameters));
parent::__construct($parameters);
}
}

View File

@ -0,0 +1,15 @@
@database-defaults
Feature: Create a page
As an author
I want to create a page in the CMS
So that I can grow my website
@javascript
Scenario: I can create a page from the pages section
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
And I should see a "Add new" button in CMS Content Toolbar
When I press the "Add new" button
And I check "Page"
And I press the "Create" button
Then I should see an edit page form

View File

@ -0,0 +1,29 @@
@database-defaults
Feature: Edit a page
As an author
I want to edit a page in the CMS
So that I correct errors and provide new information
Background:
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
Then I should see "About Us" in CMS Tree
@javascript
Scenario: I can open a page for editing from the pages tree
When I follow "About Us"
Then I should see an edit page form
@javascript
Scenario: I can edit title and content and see the changes on draft
When I follow "About Us"
Then I should see an edit page form
When I fill in "Title" with "About Us!"
And I fill in the content form with "my new content"
And I press the "Save Draft" button
Then I should see a "Saved." notice
When I follow "About Us"
Then the "Title" field should contain "About Us!"
And the content form should contain "my new content"

View File

@ -0,0 +1,41 @@
@database-defaults
Feature: Preview a page
As an author
I want to preview the page I'm editing in the CMS
So that I can see how it would look like to my visitors
@javascript
Scenario: I can show a preview of the current page from the pages section
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
Then I should see "About Us" in CMS Tree
When I follow "About Us"
And I press the "Preview »" button
Then I can see the preview panel
And the preview contains "About Us"
# TODO:
# - Only tests correctly on fresh database
# - We should continue testing against it after we have fixtures ready
@javascript
Scenario: I can see an updated preview when editing content
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
Then I should see "About Us" in CMS Tree
When I follow "About Us"
And I fill in the content form with "my new content"
And I press the "Save Draft" button
And I press the "Preview »" button
When I follow "Published Site"
Then the preview does not contain "my new content"
And the preview contains "You can fill"
When I follow "Draft Site"
Then the preview does not contain "You can fill"
And the preview contains "my new content"
When I press the "« Edit" button
Then I should see an edit page form

View File

@ -0,0 +1,4 @@
Feature: Create a page
As a site owner
I want content to go to a draft site before being published
So that only high quality changes are seen by our visitors

View File

@ -0,0 +1,18 @@
@database-defaults
Feature: Search for a page
As an author
I want to search for a page in the CMS
So that I can efficiently navigate nested content structures
@javascript
Scenario: I can search for a page by its title
Given I am logged in with "ADMIN" permissions
And I go to "/admin/pages"
Then I should see "About Us" in CMS Tree
And I should see "Contact Us" in CMS Tree
When I expand the "Filter" CMS Panel
And I fill in "Content" with "About Us"
And I press the "Apply Filter" button
Then I should see "About Us" in CMS Tree
But I should not see "Contact Us" in CMS Tree