[TASK] Use stable phpunit 4.1 instead of master

We had to update to phpunit "master" recently due to an issue with
phpunit-mock-objects that was not released yet but fixed in master.
The fix was released with phpunit-mock-objects 2.1.5 today, so we
can switch back to a stable combination of those packages.

Resolves: #59958
Related: #59685
Releases: 6.3, 6.2
Change-Id: I92336adef0291239c7dad606002721c91b2991fa
Reviewed-on: https://review.typo3.org/31179
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
(cherry picked from commit ee2dd7719711ec3786a86d8ded7dc5a085a7d7e9)
Reviewed-on: https://review.typo3.org/31182
[BUGFIX] BE shortcuts do not show up for editors

Due to some wrong or missing checks the link to create a shortcut
to a create new record form misses the correct name of the
"motherModName" as a result the shortcut links are not rendered
for non-admins. For admins these links do not work if PHP notices
are transformed to exceptions.

Resolves: #59946
Releases: 6.3, 6.2
Change-Id: I9acd74fd5dfefea62badc79e42e380466ce6c497
Reviewed-on: https://review.typo3.org/31198
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Add a function for clearing the rootline caches

The RootlineUtility uses two local caches and one additional cache from
the caching framework. If a unit test uses the RootlineUtility, it needs
a way of purging these caches so it does not change the environment.

Resolves: #58763
Releases: 6.3, 6.2, 6.1
Change-Id: Ia9878b808acfa03f018086829f90b84d4c5e8512
Reviewed-on: https://review.typo3.org/31199
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Gifbuilder: Fix image-mask-functionality

Mask-functionality is broken since the
introduction of FAL.

Change-Id: Iff28d9561e10f7581041bcc35bd56dfc972954b3
Resolves: #59392
Releases: 6.3, 6.2, 6.1
Reviewed-on: https://review.typo3.org/31201
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[BUGFIX] Fix insufficient mocking in ContentObjectRenderer

Resolves: #59967
Releases: 6.3, 6.2
Change-Id: Ie30b8e522f9045c7cd6cbe9c032413c0ad936b1a
Reviewed-on: https://review.typo3.org/31206
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Update Travis CI notification settings

Notify on Slack and IRC, remove email notification.

Resolves: #59838
Releases: 6.3, 6.2, 4.5
Change-Id: Ic4dacd5c7b6b4e6e2b8cfa92ae7976b666209747
Reviewed-on: https://review.typo3.org/31208
Reviewed-by: Nicole Cordes
Reviewed-by: Michael Stucki
Tested-by: Michael Stucki
[BUGFIX] Create required directories in test bootstrap

When running the core unit tests without setting up TYPO3
using the normal installation procedure then the uploads,
typo3temp, and typo3conf/ext directories do not exist.

Resolves: #59977
Releases: 6.3,6.2
Change-Id: Ib6b8ecd480b83cf818f54d865a4ff61fe62d2893
Reviewed-on: https://review.typo3.org/31216
Reviewed-by: Oliver Klee
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
(cherry picked from commit f0803359e5b1b53fd626bd5d0a846b918c3afced)
Reviewed-on: https://review.typo3.org/31219
[TASK] Improve travis notifications to channels

By default travis notifies on each build when
posting to channels (irc, slack)

We can reduce the number of notifications by only
posting successful builds when it previously failed.

Additionally encrypt the API token for posting to slack.

Releases: 6.3, 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I882d34903c972201454e6cc5b9041393e3bd3661
Reviewed-on: https://review.typo3.org/31224
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
[TASK] Rebuild the calcAge functionality

We have two calcAge functions with same functionality and same issues.
So this is moved to a new DateTimeUtility class and deprecated in the
the original classes. Also time functions from GeneralUtility are moved
to the new class.

Following issues are resolved:
* Age calculation does not respect leap years.
* Age calculation may round up so something seams older than it is.
* Between days and years there are months missing, so we get now 2 months
  instead of 60 days.

Resolves: #20016
Releases: 6.3, 6.2
Change-Id: Ie323f30b1fb97b68f89d43605ccda67f219a965a
Reviewed-on: https://review.typo3.org/31231
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Add extension key to API

Instead of relying on a "magic" global $_EXTKEY
being set, add a new parameter to API where
this was used beforehand.

Resolves: #59770
Releases: 6.2, 6.3
Change-Id: I531bb6067d79aa42c9c592e88f3564dc7f40b29d
Reviewed-on: https://review.typo3.org/31235
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[TASK] Remove TCA building aspect and move code to bootstrap

The patch moves the slot code that implements the override loading
logic back to the bootstrap but keeps the signal.

Resolves: #59770
Related: #59414
Related: #59468
Releases: 6.3, 6.2
Change-Id: Ib4691eaa94f258ebd96f2609fb267cadc8356090
Reviewed-on: https://review.typo3.org/31234
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Revert "[TASK] Rebuild the calcAge functionality"

This change was considered to need some more work during
merge post review:
* 6.2 version adds not allowed deprecations to a released branch
* It adds two arbitrary (public) constants CEIL and FLOOR
* Method names need improvement
* Violation of single responsibility
* The static utility class has dependencies
* The patch adds another "always loaded" file to main bootstrap
* Undocumented (minor) breaking changes
* (Minor) code style issues

Reverted: #20016
Releases: 6.3, 6.2

This reverts commit 4c52cb3cfe4f6819a29f1daa064859affe23989d
Change-Id: I6dff8aaa8bf8cfdb80cca56c9c967f2a2ea6fb52
Reviewed-on: https://review.typo3.org/31237
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Unique IDs for pagetree root nodes

To make sure that every ID in the pagetree is unique in pagetrees
with a virtual root node (which is used for normal editors) the
page UIDs of the webmounts are set in the mountpoint property of
the tree nodes. This makes sure that all tree node ids are unique.

Resolves: #57163
Releases: 6.3, 6.2
Change-Id: Ia938a9bf4839524d60056d55c0186196dbd11289
Reviewed-on: https://review.typo3.org/31246
Reviewed-by: Markus Klein
Tested-by: Markus Klein
[TASK] Re-work/simplify copyright header in JS files

This patch replaces the copyright/license header in JS files with a
new, simplified one. The new header does not show the year figure, nor
an author name, and refers to the LICENSE.txt file for the full
copyright information. License is: GPL2 or any later version.

Resolves: #59916
Releases: 6.3, 6.2
Change-Id: I312bd9682fc1cf30ec327ba5d17567a3e9609c7d
Reviewed-on: https://review.typo3.org/31164
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
(cherry picked from commit 1ae7b94b86a64ab6a86d7417a5dfb1f19777ee75)
Reviewed-on: https://review.typo3.org/31248
[BUGFIX] Use correct array structure for EM error messages

The extension manager stores errors (like exceptions that
are thrown while installing an extension) in an array and
passes them to a fluid template.

The array has to be in a defined structure like
$errorMessages[extension name][i] = array(
»       error code,
»       error message
)

Currently, if an extension is installed from ter and an error occurs
while downloading the extension, the code and text are stored directly
under the extension name and therefore the array is not correctly parsed
by the fluid template.

Resolves: #59991
Releases: 6.3, 6.2
Change-Id: Id330f0af2a99ab99cb8b736332cb8506c857716c
Reviewed-on: https://review.typo3.org/31267
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Show errors on distribution installation

When you install a distribution and an error occurred, you get a fluid
error: "Sorry, the requested view was not found."

There is currently no template / view for the action. This patch renders
the error messages as flash messages and redirects to the list view of
distributions where the errors are shown.

Resolves: #59564
Resolves: #59952
Releases: 6.3, 6.2
Change-Id: Ie0e055dfd5620d4e0a08ecf87b2f458e7877ee76
Reviewed-on: https://review.typo3.org/31268
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Fix PHP warning in BackendUtility::getProcessedValue()

BackendUtility::getProcessedValue() fails to initialize a variable which
causes a PHP warning on array access.

Fix this by initializing the variable to array properly.

Resolves: #59994
Releases: 6.3, 6.2
Change-Id: I26711b512a9a7fad40000de6f2de6a2b4a81ac75
Reviewed-on: https://review.typo3.org/31269
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Let live search use getRecordTitle

Live search uses the label configuration from TCA to get the title of a
record. An existing TODO note already suggests to use the method for
this from BackendUtility. Do this now.

Resolves: #59893
Resolves: #59957
Releases: 6.3, 6.2
Change-Id: Ic4aaabed47922863602e770b588fb8dacd9386de
Reviewed-on: https://review.typo3.org/31247
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[CLEANUP] FormEngine: Use getters for global objects

Introduce getters for global objects like TYPO3_DB or LANG.
This patch does not change any functionality.

Resolves: #59775
Releases: 6.3, 6.2
Change-Id: Ia9a4f3adc656927467f2f51207396d9a41befe8c
Reviewed-on: https://review.typo3.org/31271
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[CLEANUP] Update phpdoc for all FormEngine members

Furthermore ensure the initial values are correct.
All usages of the members have been checked such that no violation can
happen if the initial values have been modified.

This patch contains no change in functionality.

Resolves: #59775
Releases: 6.3, 6.2
Change-Id: I4566849bb930535b9fef8d38dba940d6a6fd86cc
Reviewed-on: https://review.typo3.org/31272
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters