- The theme settings form allows to configure an absolute local filesystem path for the site logo and favicon, but such a path cannot be resolved into a web-accessible URL afterwards and thus can't be supported.
- The related tests manifest the bug by explicitly asserting that an entirely bogus URL is output for the logo.
- Fix this utter mess.
- Currently, the theme settings form supports stream wrapper URIs (
public://mylogo.png), relative paths within the public file system (
mylogo.png), and lastly (but this is bogus) absolute paths to local files (
- While absolute paths to local files are reported as valid, Drupal is not able to reliably figure out the web-accessible URL to such a file. Because this is actually unsupported in every way, you get what you deserve:
However, you can successfully submit the theme settings form.
Thus, absolute paths never worked. And support for that can be safely dropped.
- The functional test for theme settings actually verifies that aforementioned, utterly bogus URL is output in the theme. (Victory!...)
- Users are highly confused about what kind of path can actually be entered for the custom logo and favicon, because pretty much everything that isn't a stream wrapper URI is rejected as invalid.
User interface changes
- The fix committed to D8 includes the following string changes:
- Several descriptions removed
- "Use the default logo" changed to "Use the default logo supplied by the theme"
- "Use the default shortcut icon" changed to "Use the default shortcut icon supplied by the theme"
- Automatically generated example paths added.
- The current backport in #43 removes these string changes.
- We need to decide if the string changes are backportable.
SystemThemeFunctionalTest::testThemeSettings() submits a drupal_realpath() to configure the site logo in theme settings. That should not and cannot work, but does, for some unknown reason, with the Standard profile.
PASSED: [[SimpleTest]]: [MySQL] 39,114 pass(es).
FAILED: [[SimpleTest]]: [MySQL] 39,015 pass(es), 3 fail(s), and 0 exception(s).
PASSED: [[SimpleTest]]: [MySQL] 38,765 pass(es).