Adding Config instance to DI and move all Config related test setup code from Config.php and TestingEnvironment.php to TestConfig class. Introduced completely internal EnvironmentManipulator concept so tests can change paths of local/global/common INI config file.
…s different from [database]. It's not necessary to unset the config/global settings provider, this is handled by environment setup.
…re URLs untouched Also adds a missing URL Encoding for action URLs. (when outlink or download urls contained `&` and such characters breaking the URL this possibly corrupted the tracking request). Fixes #6244
…w, and setting config must be done after environment is created.
…vironmentManipulators, don't use custom config files in AssetManagerTest. This includes using custom logic for testing if a plugin is core (since we can't change global.ini.php contents).
…rough DI config. Replaced the singleton GlobalSettingsProvider hack w/ the concept of an EnvironmentManipulator (internal to Piwik, not to be used anywhere but TestingEnvironment.php).
…t whether content impressions are correctly purged/preserved.
…ToDeletePerQuery can be set using values from the DB, make them function parameters instead of service state. Change made in anticipation of move to DI.
…anging some non-pro plugins when merged (LoginLdap only I think).
…in Config.php. Also removed the $initialized property, which is only used to lazily post the test event.
…ment.php to the TestConfig class. Since this logic is meant to be executed directly after a Config instance is created, and is only used when TestConfig is used, we can do this.
…d during test case setup, check the const is defined before defining it. Otherwise, there will be an error regarding redefining the constant.
…inerConfig override is applied when creating the Environment. Also allow SystemTestCases and IntegrationTestCases to override container config from the test class, without creating a custom Fixture.
…required since the environment can be modified during tests, and these modifications must be removed after (eg, event observers can be registered). Since Plugin\Manager is in DI, we must also reload plugins. Integration/Plugin/ManagerTest.php was modified; order of plugins changed because Fixture::loadPlugins() will use TestingEnvironment to gather plugins, which sorts plugins by name.
…d of calling Piwik::addAction, since the latter needs the DI container (which is not setup yet).
…observers, since the container is not created at this point.
…ia the observers.global DI config entry.
…llObservers method. This method is only used to 'reset' the EventDispatcher, and is no longer necessary thanks to DI.