===== Integration Testcases =====
Before doing a release or merging a substantial patch, it might make sense to run some test cases to compare the current thunar behavior/performance with the latest release. That is, in order to prevent regressions.
For all tests, do the following:
* Enable folder specific setting
* Enable intermediate files on copy
* Enable thumbnailing (Always)
== Memory Leakage ==
* Run all below testcases with "valgrind thunar/thunar"
* check used ram of thunar in taskmanager after each test and compare with previous thunar version
* Ram at least should not increase dramatically
* Build thunar with ./autogen.sh --enable-debug=full
* Check if any leakage is reported during testing (report done when closing thunar)
* See the last post of [[https://gitlab.xfce.org/xfce/thunar/-/issues/573|this issue]] for known leaks. Make sure no new leaks were added.
== Performance ==
* Preparation for testing
* Open a folder in list view + shortcuts pane
* Open the same folder in icon view + tree pane
* Open a terminal in that folder
* File IO
* File Creation: ''for i in {1..20000}; do touch "$i"; done''
* STRG+A on both views to select them all
* File Deletion: ''for i in {1..20000}; do rm "$i"; done''
* Trashing1
* Empty trash (to get a clean start)
* ''for i in {1..500}; do touch "$i"; done''
* Select and copy them all (STRG+A + STRG+C + STRG+V)
* STRG+A + right click --> trash
* Press Undo
* Press Redo
* Open trash folder with both windows
* Empty trash
* Trashing2
* This one currently freezes thunar for ~10sec ([[https://gitlab.xfce.org/xfce/thunar/-/issues/141|issue #141]])
* ''mkdir test && cd test''
* ''for i in {1..10000}; do touch ā$iā; done''
* ''gio trash *''
== Synchronization ==
* File Monitoring
* Each terminal command should update the thunar views accordingly
* Open a folder in list view on some local folder + shortcuts pane
* Open the same folder in icon view + tree pane
* Open a terminal in that folder and create a some files
* ''touch file1''
* ''touch file2''
* ''touch .hidden''
* Open all files as well in the bulk renamer
* check G_FILE_MONITOR_EVENT_MOVED_OUT:
* ''mv file1 ..''
* check G_FILE_MONITOR_EVENT_MOVED_IN:
* ''mv ../file1 .''
* check G_FILE_MONITOR_EVENT_RENAMED
* Hidden files - Do the following first with show-hidden enabled on both windows, and then with having it disabled
* ''mv .hidden hidden''
* ''mv hidden .hidden''
* Save file via mousepad (creates some temp files and then replaces the original one via rename/move)
* Create and enter some folder ''foo''. Press back and then rename that folder via F2.
* G_FILE_MONITOR_EVENT_CHANGED
* Sort files by date in both views
* ''touch file1'' should bring file1 to top
* ''touch file2'' should bring file2 to top
* Check if the same works if saved via mousepad
* G_FILE_MONITOR_EVENT_DELETED
* ''rm .hidden'' (try that with and without having hidden files enabled in both views)
* for i in {1..1000}; do touch test; rm test; done (no ghost files should remain)
* On a gvfs mount
* Open some folder at sftp://user@localhost
* Create, rename, delete a file via thunar (The changes have to be visible in thunar)
* Open the same folder via local path. A file created there should show after F5