45 Commits

Author SHA1 Message Date
Simon L. 1d2b23eed7 fix(theming): preserve uploaded favicon and touch icon
PR #58224 dropped the `$iconFile === null` guard around the app-specific
icon generation in getFavicon()/getTouchIcon(), so an uploaded custom
favicon was always overwritten by the generated, context-colored icon
whenever Imagick could produce an ICO/PNG.

Restore the guard so the generation path only runs as a fallback when no
custom favicon was uploaded, while keeping the improved Imagick
capability detection from #58224.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-13 21:43:48 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
SebastianKrupinski e2c4db1541 fix: generate favourite icon without imagick svg support
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-26 13:57:22 -05:00
Carl Schwan 11cf69d8ba fix(psalm): Fix static analysis issues in apps/*/tests
There are still 1200 more to fix before we can enable static analysis
for the tests.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-16 12:00:51 +01:00
Robin Appelman aa15f9d16d chore: run rector
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +02:00
Joas Schilling bcf46ab575 test: Migrate theming and sharebymail to PHPUnit10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 23:39:19 +02:00
provokateurin 381077028a refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00
Christoph Wurst 49dd79eabb refactor: Add void return type to PHPUnit test methods
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-09-15 22:32:31 +02:00
Andy Scherzinger cc1686dba9 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-31 10:38:47 +02:00
Joas Schilling 2fccd090b3 fix(manifest): Check if app exists instead of accessing null as an array
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-17 09:25:44 +01:00
Carl Schwan 7dddbd0c35 Improve caching policy
* Cache css with version in url. This makes most js and css requests to
  be cached by the browser

* Force caching previews, the etag is in the url so that if the propfind
  gives a new etag, we will refresh it otherwise it's no use to try to
  fetch the new etag and do tons of DB queries

Tested with firefox and 'debug' => false (important so that the js/css
urls are generated with ?v= parameter)

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-02-16 11:35:57 +01:00
Côme Chilliet 37f8f7a5a1 Fix tests on PHP 8.1 for encryption, files_sharing, files_version,
files_trashbin and theming apps

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-12-16 09:43:29 +01:00
John Molakvoæ (skjnldsv) 215aef3cbd Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Christoph Wurst 2a054e6c04 Update the license headers for Nextcloud 20
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-08-24 14:54:25 +02:00
Morris Jobke 234b510652 Change PHPDoc type hint from PHPUnit_Framework_MockObject_MockObject to \PHPUnit\Framework\MockObject\MockObject
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-08-12 13:55:19 +02:00
Christoph Wurst caff1023ea Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst 41b5e5923a Use exactly one empty line after the namespace declaration
For PSR2

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 11:48:10 +02:00
Christoph Wurst 74936c49ea Remove unused imports
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-25 22:08:08 +01:00
Christoph Wurst 5bf3d1bb38 Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Roeland Jago Douma 3a7cf40aaa Mode to modern phpunit
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-27 15:27:18 +01:00
Roeland Jago Douma c007ca624f Make phpunit8 compatible
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-27 13:34:41 +01:00
Roeland Jago Douma 68748d4f85 Some php-cs fixes
* Order the imports
* No leading slash on imports
* Empty line before namespace
* One line per import
* Empty after imports
* Emmpty line at bottom of file

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-22 20:52:10 +01:00
Michael Weimann 38ea5d14b3 Disables SVG favicon uploads when imagemagick is missing.
Signed-off-by: Michael Weimann <mail@michael-weimann.eu>
2018-09-05 20:50:21 +02:00
Morris Jobke 8f6acbff62 Merge pull request #9258 from nextcloud/theming-logo-png
Convert theming app logo to PNG to show it properly in emails
2018-06-15 17:02:14 +02:00
Roeland Jago Douma e4db293cc1 Fix possible test timing issues in IconController
Since the response now handles the caching. We need to provide a default
ITimeFactory mock. Else you might have failing tests.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-06-13 22:54:08 +02:00
Julius Härtl 5b0ce806a3 Minor fixes and cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-06 13:15:52 +02:00
Roeland Jago Douma e5cc8be9d5 Fix usage
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-06-04 08:48:54 +02:00
Julius Härtl b385f1c7d5 Fix theming tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-04-19 20:14:40 +02:00
Morris Jobke 0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Morris Jobke 43e498844e Use ::class in test mocks
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-10-24 17:45:32 +02:00
Julius Härtl 489131333a Inject FileAccessHelper for proper testing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-05-18 10:45:42 +02:00
Julius Härtl edb5502b9d Add proper Content-Type to icons
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-05-17 10:11:29 +02:00
Julius Härtl 1157f413c9 Fallback to default favicon
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-05-17 10:11:29 +02:00
Joas Schilling 8c703c954d Fix theming tests
Trying to configure method "shouldReplaceIcons" which cannot be configured
because it does not exist, has not been specified, is final, or is static

Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-04-20 13:10:34 +02:00
Morris Jobke 5b4adf66e5 Move OC_Defaults to OCP\Defaults
* currently there are two ways to access default values:
  OCP\Defaults or OC_Defaults (which is extended by
  OCA\Theming\ThemingDefaults)
* our code used a mixture of both of them, which made
  it hard to work on theme values
* this extended the public interface with the missing
  methods and uses them everywhere to only rely on the
  public interface

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-09 21:43:01 -05:00
Julius Haertl d409fe1c52 Error handling and tests if file was not found
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:25 +01:00
Julius Haertl 78de213b85 Sanitize input and small fixes
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:25 +01:00
Julius Haertl 3a400f92d1 Replace null return with NotFoundException
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:25 +01:00
Julius Haertl 2e8dd21815 Improve caching
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:24 +01:00
Julius Haertl 492d0b9f9b Caching for icon files using AppData
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:24 +01:00
Julius Haertl 9e28a3ba12 Theming: Code cleanup and cache buster for mime icons
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:24 +01:00
Julius Haertl 237034818d Check if dynamic icons can be used
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:24 +01:00
Julius Haertl af8976ab03 Add IconBuilder class to encapsulate icon generation
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:24 +01:00
Julius Haertl b466628bfd Improve unit tests for image generation
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:23 +01:00
Julius Haertl ac7f852ed9 Theming: Add IconController tests
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-18 10:23:23 +01:00