[!!!][TASK] Remove deprecated functionality within PageRenderer 10/59310/5
authorBenni Mack <benni@typo3.org>
Sun, 30 Dec 2018 19:25:41 +0000 (20:25 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Fri, 4 Jan 2019 20:28:01 +0000 (21:28 +0100)
Various jQuery and MetaTag API related methods within
PageRenderer have been removed.

Resolves: #87310
Releases: master
Change-Id: I309718b6576aca8ba6a5323d16f9395a752a0b0d
Reviewed-on: https://review.typo3.org/59310
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/backend/Classes/Form/FormResultCompiler.php
typo3/sysext/core/Classes/Page/PageRenderer.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-87193-DeprecatedFunctionalityRemoved.rst
typo3/sysext/core/Tests/Functional/Page/PageRendererTest.php
typo3/sysext/core/Tests/UnitDeprecated/Page/PageRendererTest.php [deleted file]
typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodArgumentDroppedMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php

index a9aae2a..fcfa240 100644 (file)
@@ -267,8 +267,8 @@ class FormResultCompiler
                 $pageRenderer->addInlineLanguageLabelFile($additionalInlineLanguageLabelFile);
             }
         }
-        // @TODO: Refactor jsfunc.inline.js to an AMD module / TypsScript. If this is done, remove loadJquery() call.
-        $pageRenderer->loadJquery(null, null, PageRenderer::JQUERY_NAMESPACE_NONE, true);
+        // @TODO: Refactor jsfunc.inline.js to an AMD module / TypsScript. If this is done, remove the jQuery loading call.
+        $pageRenderer->addJsFile('EXT:core/Resources/Public/JavaScript/Contrib/jquery/jquery.min.js');
         $pageRenderer->addJsFile('EXT:backend/Resources/Public/JavaScript/jsfunc.inline.js');
 
         // todo: change these things in JS
index 303ac76..decf6bd 100644 (file)
@@ -38,12 +38,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
     const PART_COMPLETE = 0;
     const PART_HEADER = 1;
     const PART_FOOTER = 2;
-    // @deprecated will be removed in TYPO3 v10.0.
-    // jQuery Core version that is shipped with TYPO3
-    const JQUERY_VERSION_LATEST = '3.3.1';
-    // jQuery namespace options
-    // @deprecated will be removed in TYPO3 v10.0.
-    const JQUERY_NAMESPACE_NONE = 'none';
 
     /**
      * @var bool
@@ -60,12 +54,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected $removeLineBreaksFromTemplate = false;
 
-    /**
-     * @var bool
-     * @deprecated will be removed in TYPO3 v10.0, in favor of concatenateJavaScript and concatenateCss
-     */
-    protected $concatenateFiles = false;
-
     /**
      * @var bool
      */
@@ -274,57 +262,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected $requireJsPath = 'EXT:core/Resources/Public/JavaScript/Contrib/';
 
-    /**
-     * The local directory where one can find jQuery versions and plugins
-     *
-     * @var string
-     * @deprecated will be removed in TYPO3 v10.0.
-     */
-    protected $jQueryPath = 'EXT:core/Resources/Public/JavaScript/Contrib/jquery/';
-
     // Internal flags for JS-libraries
-    /**
-     * This array holds all jQuery versions that should be included in the
-     * current page.
-     * Each version is described by "source", "version" and "namespace"
-     *
-     * The namespace of every particular version is the key
-     * of that array, because only one version per namespace can exist.
-     *
-     * The type "source" describes where the jQuery core should be included from
-     * currently, TYPO3 supports "local" (make use of jQuery path), "google",
-     * "jquery", "msn" and "cloudflare".
-     *
-     * Currently there are downsides to "local" which supports only the latest/shipped
-     * jQuery core out of the box.
-     *
-     * @var array
-     * @deprecated will be removed in TYPO3 v10.0.
-     */
-    protected $jQueryVersions = [];
-
-    /**
-     * Array of jQuery version numbers shipped with the core
-     *
-     * @var array
-     * @deprecated will be removed in TYPO3 v10.0.
-     */
-    protected $availableLocalJqueryVersions = [
-        self::JQUERY_VERSION_LATEST
-    ];
-
-    /**
-     * Array of jQuery CDNs with placeholders
-     *
-     * @var array
-     */
-    protected $jQueryCdnUrls = [
-        'google' => 'https://ajax.googleapis.com/ajax/libs/jquery/%1$s/jquery%2$s.js',
-        'msn' => 'https://ajax.aspnetcdn.com/ajax/jQuery/jquery-%1$s%2$s.js',
-        'jquery' => 'https://code.jquery.com/jquery-%1$s%2$s.js',
-        'cloudflare' => 'https://cdnjs.cloudflare.com/ajax/libs/jquery/%1$s/jquery%2$s.js'
-    ];
-
     /**
      * if set, the requireJS library is included
      * @var bool
@@ -337,11 +275,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected $requireJsConfig = [];
 
-    /**
-     * @var bool
-     */
-    protected $enableJqueryDebug = false;
-
     /**
      * @var array
      */
@@ -441,7 +374,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         $this->headerData = [];
         $this->footerData = [];
         $this->extOnReadyCode = [];
-        $this->jQueryVersions = [];
     }
 
     /*****************************************************/
@@ -653,26 +585,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         $this->compressCss = false;
     }
 
-    /**
-     * Enables concatenation of js and css files
-     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10.0
-     */
-    public function enableConcatenateFiles()
-    {
-        trigger_error('This method will be removed in TYPO3 v10.0. Use concatenateCss() and concatenateJavascript() instead.', E_USER_DEPRECATED);
-        $this->concatenateFiles = true;
-    }
-
-    /**
-     * Disables concatenation of js and css files
-     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10.0
-     */
-    public function disableConcatenateFiles()
-    {
-        trigger_error('This method will be removed in TYPO3 v10.0. Use concatenateCss() and concatenateJavascript() instead.', E_USER_DEPRECATED);
-        $this->concatenateFiles = false;
-    }
-
     /**
      * Enables concatenation of js files
      */
@@ -732,7 +644,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         $this->concatenateCss = false;
         $this->concatenateJavascript = false;
         $this->removeLineBreaksFromTemplate = false;
-        $this->enableJqueryDebug = true;
     }
 
     /*****************************************************/
@@ -881,18 +792,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         return $this->compressCss;
     }
 
-    /**
-     * Gets concatenate of js and css files
-     *
-     * @return bool
-     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10.0
-     */
-    public function getConcatenateFiles()
-    {
-        trigger_error('This method will be removed in TYPO3 v10.0. Use concatenateCss() and concatenateJavascript() instead.', E_USER_DEPRECATED);
-        return $this->concatenateFiles;
-    }
-
     /**
      * Gets concatenate of js files
      *
@@ -959,18 +858,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
     /*                                                   */
     /*                                                   */
     /*****************************************************/
-    /**
-     * Adds meta data
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0.
-     * @param string $meta Meta data (complete metatag)
-     */
-    public function addMetaTag($meta)
-    {
-        trigger_error('Method pageRenderer->addMetaTag will be removed with TYPO3 v10.0. Use pageRenderer->setMetaTag instead.', E_USER_DEPRECATED);
-        if (!in_array($meta, $this->metaTags)) {
-            $this->metaTags[] = $meta;
-        }
-    }
 
     /**
      * Sets a given meta tag
@@ -1355,41 +1242,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         }
     }
 
-    /**
-     * Call this function if you need to include the jQuery library
-     *
-     * @param string|null $version The jQuery version that should be included, either "latest" or any available version
-     * @param string|null $source The location of the jQuery source, can be "local", "google", "msn", "jquery" or just an URL to your jQuery lib
-     * @param string $namespace The namespace in which the jQuery object of the specific version should be stored.
-     * @param bool $isCoreCall if set, then the deprecation message is suppressed.
-     * @throws \UnexpectedValueException
-     * @deprecated since TYPO3 v9.5, will be removed in TYPO3 v10.0. This is still in use in deprecated code, so it does not trigger a deprecation warning.
-     */
-    public function loadJquery($version = null, $source = null, $namespace = self::JQUERY_NAMESPACE_NONE, bool $isCoreCall = false)
-    {
-        if (!$isCoreCall) {
-            trigger_error('PageRenderer->loadJquery() will be removed in TYPO3 v10.0. Use a package manager for frontend or custom jQuery files instead.', E_USER_DEPRECATED);
-        }
-        // Set it to the version that is shipped with the TYPO3 core
-        if ($version === null || $version === 'latest') {
-            $version = self::JQUERY_VERSION_LATEST;
-        }
-        // Check if the source is set, otherwise set it to "default"
-        if ($source === null) {
-            $source = 'local';
-        }
-        if ($source === 'local' && !in_array($version, $this->availableLocalJqueryVersions)) {
-            throw new \UnexpectedValueException('The requested jQuery version is not available in the local filesystem.', 1341505305);
-        }
-        if (!preg_match('/^[a-zA-Z0-9]+$/', $namespace)) {
-            throw new \UnexpectedValueException('The requested namespace contains non alphanumeric characters.', 1341571604);
-        }
-        $this->jQueryVersions[$namespace] = [
-            'version' => $version,
-            'source' => $source
-        ];
-    }
-
     /**
      * Call function if you need the requireJS library
      * this automatically adds the JavaScript path of all loaded extensions in the requireJS path option
@@ -1548,23 +1400,9 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      * Array will be merged with existing array.
      *
      * @param array $array
-     * @param bool $parseWithLanguageService
      */
-    public function addInlineLanguageLabelArray(array $array, $parseWithLanguageService = null)
+    public function addInlineLanguageLabelArray(array $array)
     {
-        if ($parseWithLanguageService === true) {
-            trigger_error('PageRenderer::addInlineLanguageLabelArray() second method argument set to true will not be supported anymore in TYPO3 v10.0.', E_USER_DEPRECATED);
-            foreach ($array as $key => $value) {
-                if (TYPO3_MODE === 'FE') {
-                    $array[$key] = $this->getTypoScriptFrontendController()->sL($value);
-                } else {
-                    $array[$key] = $this->getLanguageService()->sL($value);
-                }
-            }
-        } elseif ($parseWithLanguageService !== null) {
-            trigger_error('PageRenderer::addInlineLanguageLabelArray() does not need a second method argument anymore, and will be removed in TYPO3 v10.0.', E_USER_DEPRECATED);
-        }
-
         $this->inlineLanguageLabels = array_merge($this->inlineLanguageLabels, $array);
     }
 
@@ -1795,7 +1633,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
     {
         $this->executePreRenderHook();
         $mainJsLibs = $this->renderMainJavaScriptLibraries();
-        if ($this->concatenateFiles || $this->concatenateJavascript || $this->concatenateCss) {
+        if ($this->concatenateJavascript || $this->concatenateCss) {
             // Do the file concatenation
             $this->doConcatenate();
         }
@@ -1928,7 +1766,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
 
     /**
      * Helper function for render the main JavaScript libraries,
-     * currently: RequireJS, jQuery
+     * currently: RequireJS
      *
      * @return string Content with JavaScript libraries
      */
@@ -1944,13 +1782,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
             $out .= '<script src="' . $this->processJsFile($this->requireJsPath . 'require.js') . '" type="text/javascript"></script>' . LF;
         }
 
-        // Include jQuery Core for each namespace, depending on the version and source
-        if (!empty($this->jQueryVersions)) {
-            foreach ($this->jQueryVersions as $namespace => $jQueryVersion) {
-                $out .= $this->renderJqueryScriptTag($jQueryVersion['version'], $jQueryVersion['source'], $namespace);
-            }
-        }
-
         $this->loadJavaScriptLanguageStrings();
         if (TYPO3_MODE === 'BE') {
             $this->addAjaxUrlsToInlineSettings();
@@ -2053,45 +1884,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         $this->inlineSettings['ajaxUrls'] = $ajaxUrls;
     }
 
-    /**
-     * Renders the HTML script tag for the given jQuery version.
-     *
-     * @param string $version The jQuery version that should be included, either "latest" or any available version
-     * @param string $source The location of the jQuery source, can be "local", "google", "msn" or "jquery
-     * @param string $namespace The namespace in which the jQuery object of the specific version should be stored
-     * @return string
-     */
-    protected function renderJqueryScriptTag($version, $source, $namespace)
-    {
-        switch (true) {
-            case isset($this->jQueryCdnUrls[$source]):
-                if ($this->enableJqueryDebug) {
-                    $minifyPart = '';
-                } else {
-                    $minifyPart = '.min';
-                }
-                $jQueryFileName = sprintf($this->jQueryCdnUrls[$source], $version, $minifyPart);
-                break;
-            case $source === 'local':
-                $jQueryFileName = $this->jQueryPath . 'jquery';
-                if ($this->enableJqueryDebug) {
-                    $jQueryFileName .= '.js';
-                } else {
-                    $jQueryFileName .= '.min.js';
-                }
-                $jQueryFileName = $this->processJsFile($jQueryFileName);
-                break;
-            default:
-                $jQueryFileName = $source;
-        }
-        $scriptTag = '<script src="' . htmlspecialchars($jQueryFileName) . '" type="text/javascript"></script>' . LF;
-        // Set the noConflict mode to be globally available via "jQuery"
-        if ($namespace !== self::JQUERY_NAMESPACE_NONE) {
-            $scriptTag .= GeneralUtility::wrapJS('jQuery.noConflict();') . LF;
-        }
-        return $scriptTag;
-    }
-
     /**
      * Render CSS library files
      *
@@ -2406,7 +2198,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected function doConcatenateJavaScript()
     {
-        if ($this->concatenateFiles || $this->concatenateJavascript) {
+        if ($this->concatenateJavascript) {
             if (!empty($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['jsConcatenateHandler'])) {
                 // use external concatenation routine
                 $params = [
@@ -2430,7 +2222,7 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
      */
     protected function doConcatenateCss()
     {
-        if ($this->concatenateFiles || $this->concatenateCss) {
+        if ($this->concatenateCss) {
             if (!empty($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['cssConcatenateHandler'])) {
                 // use external concatenation routine
                 $params = [
@@ -2609,16 +2401,6 @@ class PageRenderer implements \TYPO3\CMS\Core\SingletonInterface
         return $GLOBALS['TSFE'];
     }
 
-    /**
-     * Returns global language service instance
-     *
-     * @return \TYPO3\CMS\Core\Localization\LanguageService
-     */
-    protected function getLanguageService()
-    {
-        return $GLOBALS['LANG'];
-    }
-
     /*****************************************************/
     /*                                                   */
     /*  Hooks                                            */
index 81ee80f..bb632f4 100644 (file)
@@ -280,6 +280,11 @@ The following PHP class methods that have been previously deprecated for v9 have
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->setMaxHashCount()`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->setMinHashCount()`
 * :php:`TYPO3\CMS\Core\Package\PackageManager->injectDependencyResolver()`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::addMetaTag()`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::disableConcatenateFiles()`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::enableConcatenateFiles()`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::getConcatenateFiles()`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::loadJquery()`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->getFileName()`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->getFromMPmap()`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->init()`
@@ -417,6 +422,7 @@ The following methods changed signature according to previous deprecations in v9
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->getHashedPassword()` - Second argument dropped
 * :php:`TYPO3\CMS\Core\Http\Dispatcher->dispatch()` - Second argument dropped
 * :php:`TYPO3\CMS\Core\Package\PackageManager->__construct()` - First argument mandatory
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::addInlineLanguageLabelArray()` - Second argument dropped
 * :php:`TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded()` - Second argument dropped
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility->explodeUrl2Array()` - Second argument dropped
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility->getUrl()` - Third argument must be an array of arrays if given
@@ -941,6 +947,8 @@ The following class constants have been dropped:
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::HASH_COUNT`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::MAX_HASH_COUNT`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::MIN_HASH_COUNT`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::JQUERY_NAMESPACE_NONE`
+* :php:`TYPO3\CMS\Core\Page\PageRenderer::JQUERY_VERSION_LATEST`
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_ERROR`
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_FATAL`
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_INFO`
index abb3b68..afaf111 100644 (file)
@@ -85,9 +85,6 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Functional\Functiona
         $subject->addCssInlineBlock('general2', 'body {margin:20px;}');
         $subject->addCssInlineBlock('general3', 'h1 {margin:20px;}', null, true);
 
-        $subject->loadJquery(null, null, PageRenderer::JQUERY_NAMESPACE_NONE, true);
-        $expectedJqueryRegExp = '#<script src="typo3/sysext/core/Resources/Public/JavaScript/Contrib/jquery/jquery\\.min\\.(js|\\d+\\.js|js\\?\\d+)" type="text/javascript"></script>#';
-
         $expectedBodyContent = $this->getUniqueId('ABCDE-');
         $subject->setBodyContent($expectedBodyContent);
 
@@ -105,7 +102,6 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Functional\Functiona
         $this->assertContains($expectedJsInlineCodeString, $renderedString);
         $this->assertContains($expectedCssFileString, $renderedString);
         $this->assertContains($expectedCssInlineBlockOnTopString, $renderedString);
-        $this->assertRegExp($expectedJqueryRegExp, $renderedString);
         $this->assertContains($expectedBodyContent, $renderedString);
         $this->assertContains('<meta property="og:type" content="foobar" />', $renderedString);
         $this->assertContains('<meta name="author" content="foobar" />', $renderedString);
@@ -178,151 +174,4 @@ class PageRendererTest extends \TYPO3\TestingFramework\Core\Functional\Functiona
         $this->assertContains($expectedLanguageLabel2, $renderedString);
         $this->assertContains($expectedInlineSettingsReturnValue, $renderedString);
     }
-
-    /**
-     * @return array
-     */
-    public function jqueryNamespaceDataProvider()
-    {
-        return [
-            'Custom namespace falls back to "no conflict"' => [
-                'namespace' => 'MyNameSpace',
-                'matchNoConflict' => true,
-            ],
-            '"None" namespace is respected' => [
-                'namespace' => PageRenderer::JQUERY_NAMESPACE_NONE,
-                'matchNoConflict' => false,
-            ],
-        ];
-    }
-
-    /**
-     * @param string $namespace
-     * @param bool $matchNoConflict
-     * @test
-     * @dataProvider jqueryNamespaceDataProvider
-     */
-    public function loadJqueryRespectsNamespace($namespace, $matchNoConflict)
-    {
-        $subject = new PageRenderer();
-
-        $expectedRegExp = '#<script src="typo3/sysext/core/Resources/Public/JavaScript/Contrib/jquery/jquery\\.min\\.(js|\\d+\\.js|js\\?\\d+)" type="text/javascript"></script>#';
-        $noConflictStatement = 'jQuery.noConflict();';
-        $subject->loadJquery(null, null, $namespace, true);
-
-        //jQuery.noConflict();
-        $out = $subject->render();
-        $this->assertRegExp($expectedRegExp, $out);
-
-        if ($matchNoConflict) {
-            $this->assertContains($noConflictStatement, $out);
-        } else {
-            $this->assertNotContains($noConflictStatement, $out);
-        }
-    }
-
-    /**
-     * @test
-     */
-    public function loadJqueryWithDefaultNoConflictModeDoesNotSetNamespace()
-    {
-        $subject = new PageRenderer();
-
-        $expectedRegExp = '#<script src="typo3/sysext/core/Resources/Public/JavaScript/Contrib/jquery/jquery\\.min\\.(js|\\d+\\.js|js\\?\\d+)" type="text/javascript"></script>#';
-        $expectedStatement = 'jQuery.noConflict();';
-        $subject->loadJquery(null, null, 'MyNameSpace', true);
-        $out = $subject->render();
-        $this->assertRegExp($expectedRegExp, $out);
-        $this->assertContains($expectedStatement, $out);
-        $this->assertNotContains('var TYPO3 = TYPO3 || {}; TYPO3.', $out);
-    }
-
-    /**
-     * @test
-     */
-    public function loadJqueryWithNamespaceNoneDoesNotIncludeNoConflictHandling()
-    {
-        $subject = new PageRenderer();
-
-        $expectedRegExp = '#<script src="typo3/sysext/core/Resources/Public/JavaScript/Contrib/jquery/jquery\\.min\\.(js|\\d+\\.js|js\\?\\d+)" type="text/javascript"></script>#';
-        $subject->loadJquery(null, null, PageRenderer::JQUERY_NAMESPACE_NONE, true);
-        $out = $subject->render();
-        $this->assertRegExp($expectedRegExp, $out);
-        $this->assertNotContains('jQuery.noConflict', $out);
-    }
-
-    /**
-     * @test
-     */
-    public function loadJqueryLoadsTheLatestJqueryVersionInNoConflictModeUncompressedInDebugMode()
-    {
-        $subject = new PageRenderer();
-
-        $expectedRegExp = '#<script src="typo3/sysext/core/Resources/Public/JavaScript/Contrib/jquery/jquery\\.(js|\\d+\\.js|js\\?\\d+)" type="text/javascript"></script>#';
-        $expectedStatement = 'jQuery.noConflict();';
-        $subject->loadJquery(null, null, 'MyNameSpace', true);
-        $subject->enableDebugMode();
-        $out = $subject->render();
-        $this->assertRegExp($expectedRegExp, $out);
-        $this->assertContains($expectedStatement, $out);
-    }
-
-    /**
-     * @return array
-     */
-    public function loadJqueryFromSourceDataProvider()
-    {
-        return [
-            'google with version number' => [
-                '1.6.3',
-                'google',
-                '#<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.js" type="text/javascript"></script>#'
-            ],
-            'msn with version number' => [
-                '1.6.3',
-                'msn',
-                '#<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.3.js" type="text/javascript"></script>#'
-            ],
-            'jquery with version number' => [
-                '1.6.3',
-                'jquery',
-                '#<script src="https://code.jquery.com/jquery-1.6.3.js" type="text/javascript"></script>#'
-            ],
-            'jquery with custom URL' => [
-                '1.6.3',
-                'https://my.cool.cdn/foo/jquery.js',
-                '#<script src="https://my.cool.cdn/foo/jquery.js" type="text/javascript"></script>#'
-            ],
-        ];
-    }
-
-    /**
-     * @param string $version
-     * @param string $source
-     * @param string $regex
-     * @dataProvider loadJqueryFromSourceDataProvider
-     * @test
-     */
-    public function isJqueryLoadedFromSourceUncompressedIfDebugModeIsEnabled($version, $source, $regex)
-    {
-        $subject = new PageRenderer();
-
-        $subject->loadJquery($version, $source, PageRenderer::JQUERY_NAMESPACE_NONE, true);
-        $subject->enableDebugMode();
-        $out = $subject->render();
-        $this->assertRegExp($regex, $out);
-    }
-
-    /**
-     * @test
-     */
-    public function isJqueryLoadedMinifiedFromGoogleByDefault()
-    {
-        $subject = new PageRenderer();
-
-        $expectedRegex = '#<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js" type="text/javascript"></script>#';
-        $subject->loadJquery('1.6.3', 'google', PageRenderer::JQUERY_NAMESPACE_NONE, true);
-        $out = $subject->render();
-        $this->assertRegExp($expectedRegex, $out);
-    }
 }
diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Page/PageRendererTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Page/PageRendererTest.php
deleted file mode 100644 (file)
index 63969f3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Page;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Core\Page\PageRenderer;
-use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
-
-/**
- * Test case
- */
-class PageRendererTest extends UnitTestCase
-{
-    /**
-     * @test
-     */
-    public function includingNotAvailableLocalJqueryVersionThrowsException()
-    {
-        $this->expectException(\UnexpectedValueException::class);
-        $this->expectExceptionCode(1341505305);
-
-        /** @var PageRenderer|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\TestingFramework\Core\AccessibleObjectInterface $subject */
-        $subject = $this->getAccessibleMock(PageRenderer::class, ['dummy'], [], '', false);
-        $subject->_set('availableLocalJqueryVersions', ['1.1.1']);
-        $subject->loadJquery('2.2.2');
-    }
-
-    /**
-     * @test
-     */
-    public function includingJqueryWithNonAlphnumericNamespaceThrowsException()
-    {
-        $this->expectException(\UnexpectedValueException::class);
-        $this->expectExceptionCode(1341571604);
-
-        /** @var PageRenderer|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\TestingFramework\Core\AccessibleObjectInterface $subject */
-        $subject = $this->getAccessibleMock(PageRenderer::class, ['dummy'], [], '', false);
-        $subject->loadJquery(null, null, '12sd.12fsd');
-        $subject->render();
-    }
-}
index 5c2eaf1..4ece6e5 100644 (file)
@@ -151,11 +151,13 @@ return [
     'TYPO3\CMS\Core\Page\PageRenderer::JQUERY_VERSION_LATEST' => [
         'restFiles' => [
             'Deprecation-86438-PageRenderer-loadJQuery.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Page\PageRenderer::JQUERY_NAMESPACE_NONE' => [
         'restFiles' => [
             'Deprecation-86438-PageRenderer-loadJQuery.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Extbase\Validation\ValidatorResolver::PATTERN_MATCH_VALIDATORS' => [
index c4e11c9..ac72a48 100644 (file)
@@ -213,6 +213,7 @@ return [
         'maximumNumberOfArguments' => 1,
         'restFiles' => [
             'Deprecation-85806-SecondArgumentOfPageRendereraddInlineLanguageLabelArray.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Authentication\BackendUserAuthentication->modAccess' => [
index 33c35d2..2f2ffad 100644 (file)
@@ -1536,7 +1536,7 @@ return [
         'maximumNumberOfArguments' => 1,
         'restFiles' => [
             'Deprecation-81464-AddAPIForMetaTagManagement.rst',
-
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Extbase\Reflection\PropertyReflection->isTaggedWith' => [
@@ -2814,6 +2814,7 @@ return [
         'maximumNumberOfArguments' => 0,
         'restFiles' => [
             'Deprecation-65578-ConfigconcatenateJsAndCssAndConcatenateFiles.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Page\PageRenderer->getConcatenateFiles' => [
@@ -2821,6 +2822,7 @@ return [
         'maximumNumberOfArguments' => 0,
         'restFiles' => [
             'Deprecation-65578-ConfigconcatenateJsAndCssAndConcatenateFiles.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Page\PageRenderer->disableConcatenateFiles' => [
@@ -2828,6 +2830,7 @@ return [
         'maximumNumberOfArguments' => 0,
         'restFiles' => [
             'Deprecation-65578-ConfigconcatenateJsAndCssAndConcatenateFiles.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Frontend\Page\PageRepository->checkWorkspaceAccess' => [
@@ -3976,7 +3979,8 @@ return [
         'numberOfMandatoryArguments' => 0,
         'maximumNumberOfArguments' => 3,
         'restFiles' => [
-            'Deprecation-86438-PageRenderer-loadJQuery.rst'
+            'Deprecation-86438-PageRenderer-loadJQuery.rst',
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->fetchUserRecord' => [