Historically, if you visit a foo action on Page, and Page_foo.ss doesn't exist, then it fails over
to Page.ss. The introduction of ContentController::getViewer() broke this, but this patch adds a
test for this case and fixes it.
It was identified by build failures on silverstripe/userforms when tested against the master branch.
The previous theme test relied on the existence of the tutorial theme, which has been removed.
I'ved added a couple of behat rules for scaffolding fake themes, and altered the test to use these.
With additional modules like Translatable, this test fails because
a 301 is issued to redirect the admin/pages/SearchForm request to the
correct URL containining a locale in the query string.
Regression from f972466880.
Passes tests in 3.1, but fails in master due to Deprecation notices.
Tests needed adjustments because OldPageRedirector::find_old_page()
doesn't have the same method signature...
Relies on changes from silverstripe-behat-extension:
silverstripe-behat-extension/pull/15
silverstripe-behat-extension/pull/14
silverstripe-behat-extension/pull/13
silverstripe-behat-extension/pull/12
Previously by setting the response status code inside the action, this prevented response bodies from being included due to 403/401 being matched by SS_HTTPResponse::isFinished() (which stops popular
I assume SS_HTTPResponse::isFinished() is valid for the permission error use case (and I would be hesitant to change it) so this simply moves the declaration of the response status code till after the parent has populated the body of the response.
The problem is FulltextSearchable::enable() does two things:
It enables the extension, as well as sets the MySQL create table option
to MyISAM. Later tests run with the extension enabled, because it doesn't
get removed at the end of the test, but the table type is set back to
InnoDB when the test is reset and schema recreated.
This produces side-effects where later tests in a suite tries to run
ALTER TABLE on File and add fulltext indexes when the table type
is set to InnoDB, causing an error.
Wrapping in a step to capture cases where the ErrorPage defaults
haven't been generated, and the default ModelAsController
message shows which is slightly different wording.