_file-storage__fs_add_delete_copy (private)

 _file-storage__fs_add_delete_copy

Defined in packages/file-storage/tcl/test/file-storage-procs.tcl

Partial Call Graph (max 5 caller/called nodes):
%3 aa_equals aa_equals (public) aa_false aa_false (public) aa_log aa_log (public) aa_log_result aa_log_result (public) aa_run_with_teardown aa_run_with_teardown (public) _file-storage__fs_add_delete_copy _file-storage__fs_add_delete_copy _file-storage__fs_add_delete_copy->aa_equals _file-storage__fs_add_delete_copy->aa_false _file-storage__fs_add_delete_copy->aa_log _file-storage__fs_add_delete_copy->aa_log_result _file-storage__fs_add_delete_copy->aa_run_with_teardown

Testcases:
No testcase defined.
Source code:
        
        set _aa_export {}
        set body_count 1
        foreach testcase_body {{
        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]

            set root_folder_id [fs::get_root_folder -package_id $package_id]

            aa_log "Create a folder"

            set folder_id_1 [fs::new_folder  -name __test_fs_folder_1  -pretty_name __test_fs_folder_1_pretty  -parent_id $root_folder_id]

            aa_log "Create a new file"

            set content "This is a test file"
            set wfd [ad_opentmpfile tmp_filename]
            puts $wfd $content
            close $wfd

            set revision_id [fs::add_file  -name __test_fs_file  -parent_id $folder_id_1  -package_id $package_id  -tmp_filename $tmp_filename]
            set item_id [db_string get_item {
                select item_id from cr_items where live_revision = :revision_id
            }]

            aa_log "Create a new revision from file"

            set content "This is a test file 2"
            set wfd [ad_opentmpfile tmp_filename_2]
            puts $wfd $content
            close $wfd

            set revision_id [fs::add_version  -item_id $item_id  -tmp_filename $tmp_filename_2]

            aa_log "Create a new revision from text"

            set revision_id [fs::add_version  -item_id $item_id  -content_body "My Content Body"]

            aa_equals "There are now 3 revisions"  [db_string count {select count(*) from cr_revisions where item_id = :item_id}]  3

            aa_log "Create another folder"

            set folder_id_2 [fs::new_folder  -name __test_fs_folder_2  -pretty_name __test_fs_folder_2  -parent_id $root_folder_id]

            aa_log "Copy the file in the new folder"
            set copy_item_id [fs::file_copy -file_id $item_id  -target_folder_id $folder_id_2]

            aa_true "File was copied"  [db_0or1row check {
                    select 1 from fs_objects
                    where name = '__test_fs_file'
                    and parent_id = :folder_id_2
                }]

            aa_equals "Only live revision was copied"  [db_string count {select count(*) from cr_revisions where item_id = :copy_item_id}]  1

            set file_info [fs::get_object_info -file_id $copy_item_id]
            set rfd [open [dict get $file_info cr_file_path] r]
            set txt [read $rfd]
            close $rfd
            aa_equals "Content is expected"  $txt  "My Content Body"

            aa_true "File '$item_id' is an fs object" [fs::object_p -object_id $item_id]
            aa_true "File '$item_id' is an fs file" [fs_file_p $item_id]
            aa_true "File '$folder_id_1' is an fs folder" [fs_folder_p $folder_id_1]
            aa_true "Folder '$folder_id_1' is an fs object" [fs::object_p -object_id $folder_id_1]
            aa_false "Folder '$folder_id_1' is not an fs file" [fs_file_p $folder_id_1]
            aa_false "File '$item_id' is not an fs folder" [fs_folder_p $item_id]
            aa_false "File '$item_id' is not an fs version" [fs_version_p $item_id]
            aa_false "Folder '$folder_id_1' is not an fs version" [fs_version_p $folder_id_1]

            aa_log "We now delete the first file revision by revision"
            set n_revisions 3
            db_foreach get_revisions {
                select revision_id
                from cr_revisions
                where item_id = :item_id
            } {
                aa_true "File version '$revision_id' is an fs version"  [fs_version_p $revision_id]
                fs::delete_version  -item_id $item_id  -version_id $revision_id
                incr n_revisions -1
                aa_equals "Revisions are now $n_revisions"  [db_string q {
                        select count(*) from cr_revisions
                        where item_id = :item_id
                    }]  $n_revisions
                aa_false "File version '$revision_id' is not an fs version anymore"  [fs_version_p $revision_id]
            }

            aa_false "File '$item_id' is not an fs object anympore"  [fs::object_p -object_id $item_id]
            aa_false "File '$item_id' is not an fs file anymore"  [fs_file_p $item_id]

            aa_log "Change description for folder '$folder_id_1'"
            fs::set_folder_description  -folder_id $folder_id_1  -description "A test description"
            aa_equals "Description was changed"  [db_string q {
                    select description from cr_folders
                    where folder_id = :folder_id_1
                }]  "A test description"

            aa_equals "Pretty name is expected for folder '$folder_id_1'"  [fs::get_object_prettyname -object_id $folder_id_1]  __test_fs_folder_1_pretty

            aa_equals "Safe filesystem name for Folder '$folder_id_1' is expected"  [fs::get_file_system_safe_object_name -object_id $folder_id_1]  [ad_sanitize_filename  -collapse_spaces  -tolower [fs::get_object_name -object_id $folder_id_1]]

        }
    }} {
          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_add_delete_copy (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo"
          }
          incr body_count
        }
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: