This patch fixes an issue when creating new events in week view the week after the daylight saving change. The problem was in the calc of the selected date, that's done couting the 30 minutes slots and adding that minutes to the week_start datetime. When there's a daylight saving change, the real date to select should be adjusted. This patch adds a new util function to make it easy to add minutes ignoring the tz so we can make this calc directly with gcal_date_time_add_floating_minutes. This also includes a new test file with some checks for the new util function and spring / autumn changes. This new function could be used in other places to fix specific issues that could be caused by the same logic error, calculate a selection or event position based on GDateTime operations. Fix https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/482
57 lines
1.2 KiB
Meson
57 lines
1.2 KiB
Meson
test_env = [
|
|
'G_TEST_SRCDIR=' + meson.current_source_dir(),
|
|
'G_TEST_BUILDDIR=' + meson.current_build_dir(),
|
|
'GSETTINGS_SCHEMA_DIR=' + meson.current_build_dir() / 'data',
|
|
'GSETTINGS_BACKEND=memory',
|
|
'MALLOC_CHECK_=2'
|
|
]
|
|
|
|
test_cflags = '-DTEST_DATA_DIR="@0@"'.format(meson.global_source_root() / 'data')
|
|
|
|
################
|
|
# libgcal-test #
|
|
################
|
|
|
|
sources = files(
|
|
'gcal-simple-server.c',
|
|
'gcal-stub-calendar.c',
|
|
)
|
|
|
|
libgcal_test = shared_library(
|
|
'gcal-test-private',
|
|
sources: sources,
|
|
include_directories: calendar_incs,
|
|
dependencies: libgcal_dep,
|
|
install: false,
|
|
)
|
|
|
|
libgcal_test_dep = declare_dependency(
|
|
link_with: libgcal_test,
|
|
dependencies: libgcal_dep,
|
|
include_directories: calendar_incs,
|
|
)
|
|
|
|
tests = [
|
|
'server',
|
|
'daylight-saving',
|
|
'discoverer',
|
|
'event',
|
|
'range',
|
|
'range-tree',
|
|
]
|
|
|
|
foreach test : tests
|
|
test_name = 'test-@0@'.format(test)
|
|
test_source = ['@0@.c'.format(test_name)]
|
|
|
|
test_executable = executable(
|
|
test_name,
|
|
[test_source, compiled_schemas],
|
|
c_args: test_cflags,
|
|
dependencies: libgcal_test_dep,
|
|
)
|
|
|
|
test(test, test_executable, env: test_env)
|
|
endforeach
|
|
|