Commit Graph

182 Commits

Author SHA1 Message Date
Côme Chilliet a51886569e chore: Pass correct type for alias in QueryBuilderTest
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-06-11 09:45:31 +02:00
provokateurin 405d250aef test: Add missing calls to the parent setUp method
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-06-10 18:07:52 +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
Anna Larch 18c5c0711e test: remove no-op checkbox assertions
Replace assertTrue(true), addToAssertionCount(1) and delete-without-assert
patterns with meaningful assertions or proper test removal.

Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 12:12:44 +02:00
Anna Larch a9f177e743 test(db): call parent::tearDown() in DB test classes that skipped it
Eight test classes overrode tearDown() for custom DB cleanup but never
called parent::tearDown(). TestCase::tearDown() does three things these
tests were silently skipping after every test method:

- ILockingProvider::releaseAll() — unreleased locks bleed into subsequent
  tests and can cause deadlocks or unexpected NotFoundException
- Storage::getGlobalCache()->clearCache() — stale filecache entries from
  share/storage tests cause unrelated ObjectStore tests to receive false
  from fopen() (fseek() then fails with "Argument must be of type resource")
- UserMountCache::flush() — stale mount cache causes share lookups in
  later tests to fail with ShareNotFound

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-26 21:20:57 +02:00
Ferdinand Thiessen e5b1799079 chore: add missing Override attribute to test files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:28 +02:00
Ferdinand Thiessen 691aedd13e fix(db): set session timezone to UTC
Some (well all except sqlite) database platforms support timezone
configuration. The problem is that we expect everything in UTC,
but some servers might have set some different default (e.g. in database
configuration or even just because of `TZ` environment variable).

This causes incorrect values when expecting `NOW()` to return the
current time in UTC.

For PHP we already enforce UTC as timezone, this PR adds a middleware
that enforces UTC also as the database connection / session timezone.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-01 13:47:03 +02:00
nextcloud-command 663018455e refactor: Apply rector changes
Signed-off-by: GitHub <noreply@github.com>
2026-03-01 14:43:11 +00:00
Carl Schwan fa75c1b659 fix(ExpressionBuilderTest): Fix test and improve typing
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:47 +01:00
Carl Schwan 7b6078875b refactor: Run rector on lib/private
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Carl Schwan 5d0d0c17e5 chore(rector): Run rector on apps, core and tests directory
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:23:23 +01:00
Ferdinand Thiessen 67eef32b07 fix(DB): support up to 63 character long table and index names
We do not support Oracle 11 anymore but at least Oracle 12c (12.2).
So the limitation is gone (Oracle now supports up to 128 character long
names).

Instead we are now limited by MySQL (64 characters) and PostgreSQL (63
characters).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-18 14:50:34 +01:00
provokateurin 341fd348e6 fix(UserMountCache): Add back unique index for oc_mounts and use normal insert
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-15 12:26:23 +01:00
Joas Schilling 7a4167fe28 fix(oracle): Don't run tests against unsupported Oracle version anymore
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-27 14:39:51 +01:00
Tobias Kaminsky 6f0537b4e9 Merge pull request #56494 from nextcloud/carl/result-improv
Improve IResult
2025-11-20 15:38:17 +01:00
Carl Schwan 2b61abd9ad refactor(db-adapter): Add tests about fetch methods
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:57 +01:00
Carl Schwan 4d47fdaa85 chore: Run rector with new rules for fetch
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:57 +01:00
Joas Schilling 75a8b9aff5 fix(db): Skip test on Oracle 11g
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 16:10:12 +01:00
Joas Schilling 4676b12a32 fix(db): Fix comparing JSON data in MySQL and MariaDB
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:32 +01:00
Joas Schilling fb8caecbb0 fix(db): Fix JSON handling in WHERE statements for postgres
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:31 +01:00
Ferdinand Thiessen 1eeed0a170 refactor(tests): teardown is now always called - also when skipped
* ref: https://github.com/sebastianbergmann/phpunit/issues/6394

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-05 15:42:34 +01:00
Ferdinand Thiessen d6d6747a73 refactor: apply rector rules for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Carl Schwan 9095a36b94 refactor(dbal): Port away from getDatabasePlatform() instanceof pattern
Use getDatabaseProvider instead.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-13 13:44:08 +02:00
provokateurin 6a12fbc4f3 refactor: Run rector
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-27 18:52:58 +02:00
Côme Chilliet 3e4531dd05 fix: Fix methods returning null for arrays in schema Mock
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-27 13:05:34 +02:00
Côme Chilliet ac61839d1e fix(tests): Fix PHPUnit deprecation warnings in tests
Turn data providers into static methods, mostly.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-27 13:05:32 +02:00
Benjamin Gaussorgues 5883914422 feat(db): add SSL/TLS support for PostgreSQL
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-09-22 11:51:04 +02:00
Carl Schwan 837fe3586d feat(db): Restaure support for non-nullable boolean column
We disabled them because they are not supported on Oracle DB and it is
still the case for OCI < 23. But instead of disabling the support
completely for every database types, mark non-nullable boolean column as
actually nullable when using Oracle.

This allow to use some slighly lighter schema on normal databases who
support natively booleans wheen we don't need to store 3 states
true|false|null.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-17 14:45:48 +02:00
Carl Schwan 9b2fff5931 refactor(querybuilder): Port away from qb::execute() in tests/
Replace by either executeStatement or executeQuery

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-09-02 11:55:58 +02:00
Côme Chilliet b7c15949ce chore: Get rid of AppLocator helper
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:40 +02:00
Robin Appelman 222cbd0af6 fix: fix oci string length with empty strings
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-01 17:45:35 +02:00
Robin Appelman aa15f9d16d chore: run rector
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +02:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Maxence Lange e39ab65239 feat(lexicon): migrate config key/value
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-06-24 12:10:57 -01:00
Robin Appelman 29e39c0a2e chore: run rector on tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-06-12 18:31:58 +02:00
Joas Schilling 437f380fd9 test: Fix most tests/lib/DB/QueryBuilder
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling 3e7db013c1 test: Fix non-static data providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-15 08:25:01 +02:00
Joas Schilling b77011a918 test: Prepare more tests for PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-30 09:18:01 +02:00
Robin Appelman 0a77ba99a2 feat: support migrating an instance to sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-02-25 17:52:40 +01:00
Ferdinand Thiessen db94e10af0 fix: Prevent breaking change in IQueryBuilder
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-10-17 18:31:44 +02:00
Ferdinand Thiessen ee02e3246d feat(AppFramework): Add full support for date / time / datetime columns
This adds support for all Doctrine supported types, for the column types only the immutable variants needed to be added.
But especially those types are the important ones, as our **Entity** class works by detecting changes through setters.
Meaning if it is mutable, changes like `$entity->date->modfiy()` can not be detected, so the immutable types make more sense here.

Similar the parameter types needed to be added.

`Enity` and `QBMapper` needed to be adjusted so they support (auto map) those types, required when insert or update an entity.

Also added more tests, especially to make sure the mapper really serializes the values correctly.

Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-10-17 18:31:42 +02:00
John Molakvoæ ff0cab5956 Merge pull request #47852 from nextcloud/sharding-code-fixes 2024-09-16 11:39:58 +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
Robin Appelman da59fd4389 fix: misc code fixes around db sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-09-09 16:59:59 +02:00
Arthur Schiwon b71c539b5c test(phpunit): skip sharding tests on 32bit
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-29 20:18:35 +02:00
Louis Chemineau 2574cbfa61 chore: Apply php:cs recommendations
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-08-28 10:44:18 +02:00
Robin Appelman 62f8b6517f feat: implement distributing partitioned queries over multiple shards
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:21:19 +02:00
Robin Appelman f5b3486744 feat: add option to automatically partition queries by specific tables
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 10:18:53 +02:00
Daniel Kesselberg af6de04e9e style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Maxence Lange ad490c963b feat(migration-attributes): tests
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-07-29 12:44:52 -01:00