{"pviz_slice":true,"schema_version":"pviz-slice@v1","tool":"affected_tests","generated_at":"2026-11-03T17:29:56.330960+00:00","bundle":{"path":"/b/bundle.json","repo":"bookstack","node_count":2276,"edge_count":7744},"params":{"command":"affected-tests","symbol":"app/App/helpers.php#setting","file":null,"match":"exact","depth":8,"max_nodes":5000,"max_rows":100},"result":{"schema":"pviz.slice.affected_tests.v1","query":{"symbol":"app/App/helpers.php#setting","file":null,"match":"exact","resolved_as":"symbol","depth":8},"framework":{"rows_source":"sidecar","population":{"state":"used","sidecar":"bundle.framework_facts.json","sha256":"bcad206d1330635e2770f8d9846049394eb4e506274cfeab715a2a0d45b01b05","rows_total":362},"rows_complete":true},"call_graph_complete":true,"call_diagnostics":{"rows_source":"sidecar","population":{"state":"used","sidecar":"bundle.call_diagnostics.json","sha256":"c27a912f6128693a3be32b904ad0297fa6314a77061c2328e58258453fc4c699","rows_total":51255,"path":"/b/bundle.call_diagnostics.json"}},"seeds":["app/App/helpers.php#setting"],"seeds_total":1,"seeds_truncated":false,"reach_tests":[],"reach_tests_total":0,"reach_tests_truncated":false,"reach_test_files":[],"reach_test_files_total":0,"reach_test_files_truncated":false,"tests":[{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notifications_sent_in_right_language","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notifications_sent_in_right_language","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Api/ApiAuthTest.php#Tests\\Api\\ApiAuthTest::test_access_prevented_for_guest_users_with_api_permission_while_public_access_disabled","test_file":"tests/Api/ApiAuthTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Api/ApiAuthTest.php#Tests\\Api\\ApiAuthTest::test_access_prevented_for_guest_users_with_api_permission_while_public_access_disabled","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Api/SystemApiTest.php#Tests\\Api\\SystemApiTest::test_read_returns_app_info","test_file":"tests/Api/SystemApiTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Api/SystemApiTest.php#Tests\\Api\\SystemApiTest::test_read_returns_app_info","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Api/UsersApiTest.php#Tests\\Api\\UsersApiTest::test_create_endpoint","test_file":"tests/Api/UsersApiTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Api/UsersApiTest.php#Tests\\Api\\UsersApiTest::test_create_endpoint","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Api/UsersApiTest.php#Tests\\Api\\UsersApiTest::test_update_endpoint","test_file":"tests/Api/UsersApiTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Api/UsersApiTest.php#Tests\\Api\\UsersApiTest::test_update_endpoint","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/LdapTest.php#Tests\\Auth\\LdapTest::test_login_group_mapping_does_not_conflict_with_default_role","test_file":"tests/Auth/LdapTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/LdapTest.php#Tests\\Auth\\LdapTest::test_login_group_mapping_does_not_conflict_with_default_role","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/LdapTest.php#Tests\\Auth\\LdapTest::test_login_with_email_confirmation_required_maps_groups_but_shows_confirmation_screen","test_file":"tests/Auth/LdapTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/LdapTest.php#Tests\\Auth\\LdapTest::test_login_with_email_confirmation_required_maps_groups_but_shows_confirmation_screen","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/RegistrationTest.php#Tests\\Auth\\RegistrationTest::test_registration_role_unset_by_default","test_file":"tests/Auth/RegistrationTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/RegistrationTest.php#Tests\\Auth\\RegistrationTest::test_registration_role_unset_by_default","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/Saml2Test.php#Tests\\Auth\\Saml2Test::test_group_sync_functions_when_email_confirmation_required","test_file":"tests/Auth/Saml2Test.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/Saml2Test.php#Tests\\Auth\\Saml2Test::test_group_sync_functions_when_email_confirmation_required","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_array_settings","test_file":"tests/Commands/UpdateUrlCommandTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_array_settings","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_page_revisions","test_file":"tests/Commands/UpdateUrlCommandTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_page_revisions","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_settings","test_file":"tests/Commands/UpdateUrlCommandTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Commands/UpdateUrlCommandTest.php#Tests\\Commands\\UpdateUrlCommandTest::test_command_updates_settings","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/BookShelfTest.php#Tests\\Entity\\BookShelfTest::test_shelf_view_sort_takes_action","test_file":"tests/Entity/BookShelfTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/BookShelfTest.php#Tests\\Entity\\BookShelfTest::test_shelf_view_sort_takes_action","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/BookShelfTest.php#Tests\\Entity\\BookShelfTest::test_shelf_view_sorts_by_name_case_insensitively","test_file":"tests/Entity/BookShelfTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/BookShelfTest.php#Tests\\Entity\\BookShelfTest::test_shelf_view_sorts_by_name_case_insensitively","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/BookTest.php#Tests\\Entity\\BookTest::test_books_view_shows_view_toggle_option","test_file":"tests/Entity/BookTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/BookTest.php#Tests\\Entity\\BookTest::test_books_view_shows_view_toggle_option","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/PageEditorTest.php#Tests\\Entity\\PageEditorTest::test_default_editor_is_wysiwyg_for_new_pages","test_file":"tests/Entity/PageEditorTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/PageEditorTest.php#Tests\\Entity\\PageEditorTest::test_default_editor_is_wysiwyg_for_new_pages","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/HtmlExportTest.php#Tests\\Exports\\HtmlExportTest::test_exports_removes_scripts_from_custom_head","test_file":"tests/Exports/HtmlExportTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/HtmlExportTest.php#Tests\\Exports\\HtmlExportTest::test_exports_removes_scripts_from_custom_head","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipExportTest.php#Tests\\Exports\\ZipExportTest::test_export_metadata","test_file":"tests/Exports/ZipExportTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipExportTest.php#Tests\\Exports\\ZipExportTest::test_export_metadata","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/HomepageTest.php#Tests\\HomepageTest::test_set_book_homepage","test_file":"tests/HomepageTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/HomepageTest.php#Tests\\HomepageTest::test_set_book_homepage","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/HomepageTest.php#Tests\\HomepageTest::test_set_bookshelves_homepage","test_file":"tests/HomepageTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/HomepageTest.php#Tests\\HomepageTest::test_set_bookshelves_homepage","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/HomepageTest.php#Tests\\HomepageTest::test_shelves_list_homepage_adheres_to_book_visibility_permissions","test_file":"tests/HomepageTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/HomepageTest.php#Tests\\HomepageTest::test_shelves_list_homepage_adheres_to_book_visibility_permissions","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/LanguageTest.php#Tests\\LanguageTest::test_views_use_rtl_if_rtl_language_is_set","test_file":"tests/LanguageTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/LanguageTest.php#Tests\\LanguageTest::test_views_use_rtl_if_rtl_language_is_set","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Meta/OpensearchTest.php#Tests\\Meta\\OpensearchTest::test_opensearch_endpoint","test_file":"tests/Meta/OpensearchTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Meta/OpensearchTest.php#Tests\\Meta\\OpensearchTest::test_opensearch_endpoint","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Meta/OpensearchTest.php#Tests\\Meta\\OpensearchTest::test_opensearch_linked_to_from_home","test_file":"tests/Meta/OpensearchTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Meta/OpensearchTest.php#Tests\\Meta\\OpensearchTest::test_opensearch_linked_to_from_home","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_access_and_format","test_file":"tests/Meta/PwaManifestTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_access_and_format","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_changes_to_user_preferences","test_file":"tests/Meta/PwaManifestTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_changes_to_user_preferences","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_uses_configured_icons_if_existing","test_file":"tests/Meta/PwaManifestTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Meta/PwaManifestTest.php#Tests\\Meta\\PwaManifestTest::test_manifest_uses_configured_icons_if_existing","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Settings/FooterLinksTest.php#Tests\\Settings\\FooterLinksTest::test_saving_setting","test_file":"tests/Settings/FooterLinksTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Settings/FooterLinksTest.php#Tests\\Settings\\FooterLinksTest::test_saving_setting","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Settings/PageListLimitsTest.php#Tests\\Settings\\PageListLimitsTest::test_invalid_counts_will_use_default_when_fetched_as_an_integer","test_file":"tests/Settings/PageListLimitsTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Settings/PageListLimitsTest.php#Tests\\Settings\\PageListLimitsTest::test_invalid_counts_will_use_default_when_fetched_as_an_integer","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Settings/PageListLimitsTest.php#Tests\\Settings\\PageListLimitsTest::test_saving_setting_and_loading","test_file":"tests/Settings/PageListLimitsTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Settings/PageListLimitsTest.php#Tests\\Settings\\PageListLimitsTest::test_saving_setting_and_loading","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Settings/SettingsTest.php#Tests\\Settings\\SettingsTest::test_updating_and_removing_app_icon","test_file":"tests/Settings/SettingsTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Settings/SettingsTest.php#Tests\\Settings\\SettingsTest::test_updating_and_removing_app_icon","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/RoleManagementTest.php#Tests\\User\\RoleManagementTest::test_index_listing_sorting","test_file":"tests/User/RoleManagementTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/RoleManagementTest.php#Tests\\User\\RoleManagementTest::test_index_listing_sorting","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserManagementTest.php#Tests\\User\\UserManagementTest::test_delete_removes_user_preferences","test_file":"tests/User/UserManagementTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserManagementTest.php#Tests\\User\\UserManagementTest::test_delete_removes_user_preferences","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_body_has_shortcuts_component_when_active","test_file":"tests/User/UserMyAccountTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_body_has_shortcuts_component_when_active","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_notification_comment_options_only_exist_if_comments_active","test_file":"tests/User/UserMyAccountTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_notification_comment_options_only_exist_if_comments_active","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_profile_updating","test_file":"tests/User/UserMyAccountTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_profile_updating","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_update_interface_preferences","test_file":"tests/User/UserMyAccountTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserMyAccountTest.php#Tests\\User\\UserMyAccountTest::test_update_interface_preferences","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_books_view_type_preferences_when_grid","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_books_view_type_preferences_when_grid","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_books_view_type_preferences_when_list","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_books_view_type_preferences_when_list","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_dark_mode_defaults_to_config_option","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_dark_mode_defaults_to_config_option","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_dark_mode_toggle_endpoint_changes_to_light_when_dark_by_default","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_dark_mode_toggle_endpoint_changes_to_light_when_dark_by_default","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_shelf_view_type_change","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_shelf_view_type_change","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_toggle_dark_mode","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_toggle_dark_mode","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_expansion_preference","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_expansion_preference","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_sort_bad_entity_type_handled","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_sort_bad_entity_type_handled","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_sort_preference","test_file":"tests/User/UserPreferencesTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/User/UserPreferencesTest.php#Tests\\User\\UserPreferencesTest::test_update_sort_preference","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_malformed_update","test_file":"tests/View/LayoutEditTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_malformed_update","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_reset","test_file":"tests/View/LayoutEditTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_reset","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_update","test_file":"tests/View/LayoutEditTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_update","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_view_loads_existing_preferences","test_file":"tests/View/LayoutEditTest.php","basis":"call_graph","depth":1,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/View/LayoutEditTest.php#Tests\\View\\LayoutEditTest::test_view_loads_existing_preferences","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_comment_replies","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":2,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_comment_replies","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Settings/UserNotificationPreferences.php#BookStack\\Settings\\UserNotificationPreferences::updateFromSettingsArray","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_own_page_changes","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":2,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_own_page_changes","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Settings/UserNotificationPreferences.php#BookStack\\Settings\\UserNotificationPreferences::updateFromSettingsArray","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_own_page_comments","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":2,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_own_page_comments","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Settings/UserNotificationPreferences.php#BookStack\\Settings\\UserNotificationPreferences::updateFromSettingsArray","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_watch_parent_book_ignore","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":2,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_notify_watch_parent_book_ignore","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Settings/UserNotificationPreferences.php#BookStack\\Settings\\UserNotificationPreferences::updateFromSettingsArray","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_page_path_in_notifications_limited_by_permissions","test_file":"tests/Activity/WatchTest.php","basis":"call_graph","depth":2,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Activity/WatchTest.php#Tests\\Activity\\WatchTest::test_page_path_in_notifications_limited_by_permissions","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Activity/Notifications/Messages/PageCreationNotification.php#BookStack\\Activity\\Notifications\\Messages\\PageCreationNotification::toMail","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_commas_can_be_used_in_external_auth_id_if_escaped","test_file":"tests/Auth/GroupSyncServiceTest.php","basis":"call_graph","depth":3,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_commas_can_be_used_in_external_auth_id_if_escaped","hop":"call","reason":"php_constructed_receiver_call"},{"node":"app/Access/GroupSyncService.php#BookStack\\Access\\GroupSyncService::syncUserWithFoundGroups","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Users/Models/User.php#BookStack\\Users\\Models\\User::attachDefaultRole","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_external_auth_id_matches_ignoring_case","test_file":"tests/Auth/GroupSyncServiceTest.php","basis":"call_graph","depth":3,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_external_auth_id_matches_ignoring_case","hop":"call","reason":"php_constructed_receiver_call"},{"node":"app/Access/GroupSyncService.php#BookStack\\Access\\GroupSyncService::syncUserWithFoundGroups","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Users/Models/User.php#BookStack\\Users\\Models\\User::attachDefaultRole","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_multiple_values_in_role_external_auth_id_handled","test_file":"tests/Auth/GroupSyncServiceTest.php","basis":"call_graph","depth":3,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_multiple_values_in_role_external_auth_id_handled","hop":"call","reason":"php_constructed_receiver_call"},{"node":"app/Access/GroupSyncService.php#BookStack\\Access\\GroupSyncService::syncUserWithFoundGroups","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Users/Models/User.php#BookStack\\Users\\Models\\User::attachDefaultRole","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_user_is_assigned_to_matching_roles","test_file":"tests/Auth/GroupSyncServiceTest.php","basis":"call_graph","depth":3,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Auth/GroupSyncServiceTest.php#Tests\\Auth\\GroupSyncServiceTest::test_user_is_assigned_to_matching_roles","hop":"call","reason":"php_constructed_receiver_call"},{"node":"app/Access/GroupSyncService.php#BookStack\\Access\\GroupSyncService::syncUserWithFoundGroups","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Users/Models/User.php#BookStack\\Users\\Models\\User::attachDefaultRole","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_alert_message_shows_if_editing_draft","test_file":"tests/Entity/PageDraftTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_alert_message_shows_if_editing_draft","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updatePageDraft","hop":"call","reason":"php_self_method_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updateTemplateStatusAndContentFromInput","hop":"call","reason":"php_class_qualified_call"},{"node":"app/Entities/Tools/PageEditorType.php#BookStack\\Entities\\Tools\\PageEditorType::getSystemDefault","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_alert_message_shows_if_someone_else_editing","test_file":"tests/Entity/PageDraftTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_alert_message_shows_if_someone_else_editing","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updatePageDraft","hop":"call","reason":"php_self_method_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updateTemplateStatusAndContentFromInput","hop":"call","reason":"php_class_qualified_call"},{"node":"app/Entities/Tools/PageEditorType.php#BookStack\\Entities\\Tools\\PageEditorType::getSystemDefault","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_draft_content_shows_if_available","test_file":"tests/Entity/PageDraftTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_draft_content_shows_if_available","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updatePageDraft","hop":"call","reason":"php_self_method_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updateTemplateStatusAndContentFromInput","hop":"call","reason":"php_class_qualified_call"},{"node":"app/Entities/Tools/PageEditorType.php#BookStack\\Entities\\Tools\\PageEditorType::getSystemDefault","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_draft_not_visible_by_others","test_file":"tests/Entity/PageDraftTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Entity/PageDraftTest.php#Tests\\Entity\\PageDraftTest::test_draft_not_visible_by_others","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updatePageDraft","hop":"call","reason":"php_self_method_call"},{"node":"app/Entities/Repos/PageRepo.php#BookStack\\Entities\\Repos\\PageRepo::updateTemplateStatusAndContentFromInput","hop":"call","reason":"php_class_qualified_call"},{"node":"app/Entities/Tools/PageEditorType.php#BookStack\\Entities\\Tools\\PageEditorType::getSystemDefault","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_book_covers_are_saved_with_a_valid_image_extension","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_book_covers_are_saved_with_a_valid_image_extension","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_book_import","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_book_import","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_chapter_import","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_chapter_import","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_drawing_references_are_updated_within_content","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_drawing_references_are_updated_within_content","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_data_exceeds_app_file_upload_limit","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_data_exceeds_app_file_upload_limit","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_item_exceeds_app_file_upload_limit","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_item_exceeds_app_file_upload_limit","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_item_file_stream_exceeds_its_reported_length_in_zip_archive","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_error_thrown_if_zip_item_file_stream_exceeds_its_reported_length_in_zip_archive","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_imported_images_have_their_detected_extension_added","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_imported_images_have_their_detected_extension_added","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_page_import","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_page_import","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"},{"test":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_revert_cleans_up_uploaded_files","test_file":"tests/Exports/ZipImportRunnerTest.php","basis":"call_graph","depth":4,"seed":"app/App/helpers.php#setting","chain":[{"node":"tests/Exports/ZipImportRunnerTest.php#Tests\\Exports\\ZipImportRunnerTest::test_revert_cleans_up_uploaded_files","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::run","hop":"call","reason":"php_self_method_call"},{"node":"app/Exports/ZipExports/ZipImportRunner.php#BookStack\\Exports\\ZipExports\\ZipImportRunner::importBook","hop":"call","reason":"php_typed_receiver_call"},{"node":"app/Entities/Repos/BookRepo.php#BookStack\\Entities\\Repos\\BookRepo::create","hop":"call","reason":"php_function_call"},{"node":"app/App/helpers.php#setting","hop":"seed"}],"scope":"handler"}],"tests_total":73,"tests_truncated":false,"test_import_bindings":[],"test_import_bindings_total":0,"test_import_bindings_truncated":false,"test_files":["tests/Activity/WatchTest.php","tests/Api/ApiAuthTest.php","tests/Api/SystemApiTest.php","tests/Api/UsersApiTest.php","tests/Auth/GroupSyncServiceTest.php","tests/Auth/LdapTest.php","tests/Auth/RegistrationTest.php","tests/Auth/Saml2Test.php","tests/Commands/UpdateUrlCommandTest.php","tests/Entity/BookShelfTest.php","tests/Entity/BookTest.php","tests/Entity/PageDraftTest.php","tests/Entity/PageEditorTest.php","tests/Exports/HtmlExportTest.php","tests/Exports/ZipExportTest.php","tests/Exports/ZipImportRunnerTest.php","tests/HomepageTest.php","tests/LanguageTest.php","tests/Meta/OpensearchTest.php","tests/Meta/PwaManifestTest.php","tests/Settings/FooterLinksTest.php","tests/Settings/PageListLimitsTest.php","tests/Settings/SettingsTest.php","tests/User/RoleManagementTest.php","tests/User/UserManagementTest.php","tests/User/UserMyAccountTest.php","tests/User/UserPreferencesTest.php","tests/View/LayoutEditTest.php"],"test_files_total":28,"test_files_truncated":false,"file_level_test_importers":[{"test_file":"tests/Activity/WatchTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Api/ApiAuthTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Api/SystemApiTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Api/UsersApiTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Auth/LdapTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Auth/OidcTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Auth/RegistrationTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Auth/Saml2Test.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Auth/SocialAuthTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Commands/InstallModuleCommandTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Commands/UpdateUrlCommandTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Entity/BookShelfTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Entity/BookTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Entity/PageEditorTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Entity/PageRevisionTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Exports/HtmlExportTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Exports/ZipExportTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/HomepageTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/LanguageTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Meta/OpensearchTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Meta/PwaManifestTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Permissions/EntityPermissionsTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Permissions/Scenarios/PermissionScenarioTestCase.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/PublicActionTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Settings/FooterLinksTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Settings/PageListLimitsTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Settings/SettingsTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/TestCase.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Theme/LogicalThemeEventsTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Theme/LogicalThemeTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Theme/ThemeModuleTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/Theme/VisualThemeTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/User/RoleManagementTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/User/UserManagementTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/User/UserMyAccountTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/User/UserPreferencesTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"},{"test_file":"tests/View/LayoutEditTest.php","imports_file":"app/App/helpers.php","basis":"file_import","seed":"app/App/helpers.php#setting"}],"file_level_test_importers_total":37,"file_level_test_importers_truncated":false,"tests_with_unproven_call_sites":{"tests/Permissions/EntityPermissionsTest.php":457,"tests/Permissions/RolePermissionsTest.php":452,"tests/Uploads/ImageTest.php":338,"tests/Auth/LdapTest.php":305,"tests/Entity/BookShelfTest.php":261,"tests/Search/EntitySearchTest.php":247,"tests/Auth/OidcTest.php":240,"tests/Entity/CopyTest.php":222,"tests/Activity/WatchTest.php":192,"tests/Uploads/AttachmentTest.php":185,"tests/Settings/RecycleBinTest.php":182,"tests/Entity/TagTest.php":181,"tests/Exports/ZipExportTest.php":177,"tests/Auth/SocialAuthTest.php":158,"tests/Entity/DefaultTemplateTest.php":153,"tests/Entity/PageRevisionTest.php":151,"tests/Sorting/BookSortTest.php":151,"tests/Entity/BookTest.php":145,"tests/Entity/PageContentFilteringTest.php":145,"tests/Entity/PageContentTest.php":137,"tests/Entity/PageTest.php":136,"tests/Permissions/Scenarios/EntityRolePermissionsTest.php":128,"tests/User/RoleManagementTest.php":124,"tests/Auth/Saml2Test.php":123,"tests/Sorting/MoveTest.php":122,"tests/Api/ImageGalleryApiTest.php":117,"tests/Entity/PageEditorTest.php":111,"tests/Commands/InstallModuleCommandTest.php":109,"tests/Exports/ZipImportTest.php":109,"tests/User/UserManagementTest.php":109,"tests/Exports/HtmlExportTest.php":107,"tests/User/UserMyAccountTest.php":107,"tests/References/ReferencesTest.php":101,"tests/Commands/RefreshAvatarCommandTest.php":100,"tests/Entity/PageDraftTest.php":96,"tests/Activity/AuditLogTest.php":95,"tests/Auth/RegistrationTest.php":88,"tests/PublicActionTest.php":85,"tests/User/UserApiTokenTest.php":85,"tests/Auth/MfaConfigurationTest.php":84,"tests/Exports/ZipImportRunnerTest.php":83,"tests/Exports/PdfExportTest.php":82,"tests/Entity/ConvertTest.php":77,"tests/Auth/AuthTest.php":74,"resources/js/wysiwyg/lexical/core/__tests__/utils/index.ts":69,"tests/Activity/CommentStoreTest.php":69,"tests/Activity/CommentsApiTest.php":69,"tests/Api/BooksApiTest.php":69,"tests/Auth/MfaVerificationTest.php":69,"tests/Entity/SlugTest.php":68,"tests/Exports/MarkdownExportTest.php":67,"tests/Api/UsersApiTest.php":64,"tests/Theme/LogicalThemeEventsTest.php":64,"tests/User/UserPreferencesTest.php":64,"tests/Sorting/SortRuleTest.php":62,"tests/Api/SearchApiTest.php":60,"tests/SecurityHeaderTest.php":60,"tests/Api/PagesApiTest.php":59,"tests/Commands/CreateAdminCommandTest.php":57,"tests/FavouriteTest.php":57,"tests/HomepageTest.php":55,"tests/Activity/CommentDisplayTest.php":53,"tests/Api/ApiAuthTest.php":53,"tests/Api/AttachmentsApiTest.php":51,"tests/Api/ExportsApiTest.php":51,"tests/Activity/CommentMentionTest.php":50,"resources/js/wysiwyg/lexical/selection/__tests__/utils/index.ts":49,"tests/Uploads/DrawioTest.php":49,"resources/js/wysiwyg/lexical/core/__tests__/unit/LexicalSelection.test.ts":48,"tests/Api/TagsApiTest.php":48,"tests/Api/RecycleBinApiTest.php":47,"tests/Api/ShelvesApiTest.php":47,"tests/Commands/CopyShelfPermissionsCommandTest.php":47,"tests/Entity/ChapterTest.php":47,"tests/Api/RolesApiTest.php":46,"tests/Commands/AssignSortRuleCommandTest.php":46,"tests/Helpers/EntityProvider.php":45,"tests/Auth/UserInviteTest.php":41,"tests/Search/SearchOptionsTest.php":41,"tests/Search/SearchIndexingTest.php":40,"tests/Search/SiblingSearchTest.php":40,"tests/User/UserSearchTest.php":39,"tests/Api/ChaptersApiTest.php":38,"tests/User/UserProfileTest.php":36,"tests/ErrorTest.php":35,"tests/Settings/SettingsTest.php":35,"tests/Uploads/AvatarTest.php":35,"tests/View/LayoutEditTest.php":35,"tests/Api/ContentPermissionsApiTest.php":34,"tests/Meta/OpenGraphTest.php":34,"tests/Api/ApiListingTest.php":33,"tests/Api/ImportsApiTest.php":31,"tests/Exports/TextExportTest.php":31,"tests/TestCase.php":31,"tests/Auth/GroupSyncServiceTest.php":30,"tests/Theme/ThemeModuleTest.php":30,"tests/Auth/ResetPasswordTest.php":29,"tests/Activity/WebhookManagementTest.php":28,"tests/SessionTest.php":28,"resources/js/wysiwyg/lexical/core/__tests__/unit/LexicalSerialization.test.ts":27},"tests_with_unproven_call_sites_total":177,"tests_with_unproven_call_sites_truncated":true,"reverse_reach_truncated":false,"test_visibility":{"js":{"files":121,"test_files":0},"mjs":{"files":4,"test_files":0},"php":{"files":1839,"test_files":167},"svg":{"files":56,"test_files":0},"ts":{"files":256,"test_files":53}},"warnings":["no test-path files of language js are in the bundle: its tests cannot be mapped (see guide.framework_notes.test_sources)","no test-path files of language mjs are in the bundle: its tests cannot be mapped (see guide.framework_notes.test_sources)","no test-path files of language svg are in the bundle: its tests cannot be mapped (see guide.framework_notes.test_sources)"],"notes":["A test is a symbol whose file is a test path (directory markers, Go *_test.go, pytest test_*.py / *_test.py, __tests__/). basis call_graph: every hop is a resolved call; framework_relation: the chain crosses REGISTERS / CROSS_RUNTIME_CALL / EVENT_PUBLISHES / GENERATED_BINDING / ORM_ACCESS / MIDDLEWARE hops.","tests_with_unproven_call_sites counts UNRESOLVED/AMBIGUOUS call sites inside test files: those tests may also be affected but the bundle cannot prove it."]}}