_file-storage__fs_publish_file (private)
_file-storage__fs_publish_file
Defined in packages/file-storage/tcl/test/file-storage-procs.tcl
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: set _aa_export {} set body_count 1 foreach testcase_body {{ set user_id [dict get [acs::test::user::create] user_id] aa_run_with_teardown -rollback -test_code { aa_log "Create a root folder" set package_id [site_node::instantiate_and_mount -package_key file-storage -node_name __[clock seconds]_file_storage] permission::set_not_inherit -object_id $package_id set root_folder_id [fs::get_root_folder -package_id $package_id] aa_log "Create a folder" set folder_id [fs::new_folder -name __test_fs_folder_1 -pretty_name __test_fs_folder_1_pretty -parent_id $root_folder_id] set revisions [list] set content "This is a test file 1" set wfd [ad_opentmpfile tmp_filename] puts $wfd $content close $wfd lappend revisions [fs::add_file -name __test_fs_publish_file_1 -parent_id $folder_id -package_id $package_id -tmp_filename $tmp_filename] set content "This is a test file 2" set wfd [ad_opentmpfile tmp_filename] puts $wfd $content close $wfd lappend revisions [fs::add_file -name __test_fs_publish_file_2 -parent_id $folder_id -package_id $package_id -tmp_filename $tmp_filename] set content "This is a test file 3" set wfd [ad_opentmpfile tmp_filename] puts $wfd $content close $wfd lappend revisions [fs::add_file -name __test_fs_publish_file_3 -parent_id $folder_id -package_id $package_id -tmp_filename $tmp_filename] aa_equals "fs::get_folder_objects returns nothing for unprivileged user" [fs::get_folder_objects -folder_id $folder_id -user_id $user_id] "" set security_root [acs_magic_object security_context_root] set swa_id [db_string get_swa { select max(user_id) from users u where acs_permission.permission_p(:security_root, u.user_id, 'admin') }] aa_equals "fs::get_folder_objects returns expected for SWA" [lsort [fs::get_folder_objects -folder_id $folder_id -user_id $swa_id]] [lsort [db_list query "select item_id from cr_items where live_revision in ([join $revisions ,])"]] set revision_id [lindex $revisions end] set item_id [db_string get_item_id { select item_id from cr_revisions where revision_id = :revision_id }] set webdav_url [fs::webdav_url -item_id $item_id -package_id $package_id -root_folder_id $root_folder_id] if {[fs::webdav_p] && [oacs_dav::folder_enabled -folder_id $root_folder_id]} { set url_stub [content::item::get_virtual_path -root_folder_id $root_folder_id -item_id $item_id] set package_url [apm_package_url_from_id $package_id] set webdav_prefix [oacs_dav::uri_prefix] if { [security::RestrictLoginToSSLP] } { set expected_url [security::get_secure_location]${webdav_prefix}${package_url}${url_stub} } else { set expected_url [ad_url]${webdav_prefix}${package_url}${url_stub} } } else { set expected_url "" } aa_equals "WebDAV URL is expected" $webdav_url $expected_url aa_equals "Package id from the API and from the database are consistent" [fs::get_file_package_id -file_id $revision_id] $package_id set file_hash [ns_md file $tmp_filename] set exported [fs::publish_versioned_object_to_file_system -object_id $item_id] aa_equals "fs::publish_versioned_object_to_file_system: original and exported files are identical" [ns_md file $exported] $file_hash set exported [fs::publish_object_to_file_system -object_id $item_id] aa_equals "fs::publish_object_to_file_system: original and exported files are identical" [ns_md file $exported] $file_hash aa_log "Add a link to the folder" set url https://test.website.url set link_id [content::extlink::new -url $url -parent_id $folder_id] set exported [fs::publish_url_to_file_system -object_id $link_id] set rfd [open $exported r]; set exported [read $rfd]; close $rfd aa_true "Link was exported" { [string first $url $exported] >= 0 } aa_log "Add a symlink to the folder" content::folder::register_content_type -folder_id $folder_id -content_type content_symlink content::symlink::new -target_id $item_id -parent_id $folder_id fs::new_folder -name __test_fs_subfolder -pretty_name __test_fs_subfolder_pretty -parent_id $folder_id set exported_folder [fs::publish_folder_to_file_system -folder_id $folder_id -user_id $swa_id] set folders 0 set file_hashes 0 set tot_files 0 foreach c [glob -directory $exported_folder *] { set folder_p [file isdirectory $c] incr folders $folder_p incr file_hashes [expr {!$folder_p && $file_hash eq [ns_md file $c]}] incr tot_files } aa_equals "Tot folder content is 6" $tot_files 6 aa_equals "We have the same file twice (symlink)" $file_hashes 2 aa_equals "We have 1 folder" $folders 1 } -teardown_code { acs::test::user::delete -user_id $user_id } }} { aa_log "Running testcase body $body_count" set ::__aa_test_indent [info level] set catch_val [catch $testcase_body msg] if {$catch_val != 0 && $catch_val != 2} { aa_log_result "fail" "fs_publish_file (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo" } incr body_count }XQL Not present: Generic, PostgreSQL, Oracle