Index: openacs-4/packages/acs-tcl/tcl/test/application-data-link-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/test/application-data-link-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-tcl/tcl/test/application-data-link-procs.tcl 19 Jul 2018 11:43:19 -0000 1.7 +++ openacs-4/packages/acs-tcl/tcl/test/application-data-link-procs.tcl 25 Jul 2018 13:42:48 -0000 1.8 @@ -2,93 +2,103 @@ Tests for application data links. } -aa_register_case -cats api data_links_scan_links { - Test scanning content for object URLs +aa_register_case \ + -cats api \ + -procs {} \ + data_links_scan_links { + Test scanning content for object URLs } { # get a new object_id from the sequence, this object will not exist set nonexistent_object_id [db_nextval "acs_object_id_seq"] set text {Some random text Some More Random Text /o/10 /file/11 /image/12 - /o/[junk] /file/[junk] /image/[junk] + /o/[junk] /file/[junk] /image/[junk] /o/" /file/" /image/" /o/[ /file/[ /image/[ - - } + + } ;#"] append text " " aa_log "ad_url = '[ad_url]'" set links [application_data_link::scan_for_links -text $text] set correct_links [list 0] aa_log "Links = '${links}'" - aa_true "Number of links found is correct" \ - {[llength $correct_links] eq [llength $links]} - + aa_true "Number of links found is correct" {[llength $correct_links] eq [llength $links]} } -aa_register_case -cats api data_links_update_links { - Test updating references, - tests scan_for_links - and delete_links in the process +aa_register_case \ + -cats api \ + -procs { + application_data_link::scan_for_links + application_data_link::update_links_from + application_data_link::get_links_from + content::item::new + } \ + data_links_update_links { + + Test updating references, tests scan_for_links and delete_links in + the process. + } { - aa_run_with_teardown \ - -rollback \ - -test_code \ - { - # create some test objects - set name [ns_mktemp "cr_item__XXXXXX"] - - for {set i 0} {$i<10} {incr i} { - set o($i) [content::item::new \ - -name ${name}_$i \ - -title ${name}_$i] - } - - # generate some text with links between the objects - foreach n [array names o] { - append text "\nTest Content Link to $o($n) Link \n" - } - # update the links - foreach n [array names o] { - application_data_link::update_links_from \ - -object_id $o($n) \ - -text $text - } - # scan for links and compare - set correct_links [lsort \ - [application_data_link::scan_for_links \ - -text $text]] - aa_true "Correct links is not empty" [llength $correct_links] - foreach n [array names o] { - set links [lsort \ - [application_data_link::get_links_from \ - -object_id $o($n)]] - aa_true "Object \#${n} references correct" \ - {$correct_links eq $links} - } - # now change the text and update one of the objects - for {set i 0} {$i < 5} {incr i} { - append new_text "\nTest Content Link to $o($i) /o/$o($i) \n" - } - for {set i 0} {$i < 5} {incr i} { - application_data_link::update_links_from \ - -object_id $o($i) \ - -text $new_text - } - set new_correct_links [lsort \ - [application_data_link::scan_for_links \ - -text $new_text]] + aa_run_with_teardown -rollback -test_code { + # create some test objects + set name [ns_mktemp "cr_item__XXXXXX"] - for {set i 0} {$i < 5} {incr i} { - set links [lsort \ - [application_data_link::get_links_from \ - -object_id $o($i)]] - aa_true "Object \#${i} updated references correct" \ - {$new_correct_links eq $links} - } - } + for {set i 0} {$i<10} {incr i} { + set o($i) [content::item::new \ + -name ${name}_$i \ + -title ${name}_$i] + } + + # generate some text with links between the objects + foreach n [array names o] { + append text "\nTest Content Link to $o($n) Link \n" + } + # update the links + foreach n [array names o] { + application_data_link::update_links_from \ + -object_id $o($n) \ + -text $text + } + # scan for links and compare + set correct_links [lsort [application_data_link::scan_for_links \ + -text $text]] + aa_true "Correct links is not empty" [llength $correct_links] + foreach n [array names o] { + set links [lsort [application_data_link::get_links_from \ + -object_id $o($n)]] + aa_true "Object \#${n} references correct" \ + {$correct_links eq $links} + } + # now change the text and update one of the objects + for {set i 0} {$i < 5} {incr i} { + append new_text "\nTest Content Link to $o($i) /o/$o($i) \n" + } + for {set i 0} {$i < 5} {incr i} { + application_data_link::update_links_from \ + -object_id $o($i) \ + -text $new_text + } + set new_correct_links [lsort [application_data_link::scan_for_links \ + -text $new_text]] + + for {set i 0} {$i < 5} {incr i} { + set links [lsort [application_data_link::get_links_from \ + -object_id $o($i)]] + aa_true "Object \#${i} updated references correct" \ + {$new_correct_links eq $links} + } + } } -aa_register_case -cats api data_links_scan_links_with_tag { - Test scanning content for object URLs with relation tag +aa_register_case \ + -cats api \ + -procs { + application_data_link::scan_for_links + } \ + data_links_scan_links_with_tag { + + Test scanning content for object URLs with relation tag. + } { # get a new object_id from the sequence, this object will not exist set nonexistent_object_id [db_nextval "acs_object_id_seq"] @@ -97,8 +107,8 @@ /o/[junk] /file/[junk] /image/[junk] /o/" /file/" /image/" /o/[ /file/[ /image/[ - - } + + } ;#"] append text " " aa_log "ad_url = '[ad_url]'" set links [application_data_link::scan_for_links -text $text] @@ -109,25 +119,30 @@ } -aa_register_case -cats api data_links_update_links_with_tag { - Test updating references, - tests scan_for_links - and delete_links in the process. - Uses relation tags +aa_register_case \ + -cats api \ + -procs { + application_data_link::get_links_from + application_data_link::scan_for_links + application_data_link::update_links_from + content::item::new + } \ + data_links_update_links_with_tag { + + Test updating references, tests scan_for_links and + delete_links in the process. Uses relation tags. + } { - aa_run_with_teardown \ - -rollback \ - -test_code \ - { + aa_run_with_teardown -rollback -test_code { # create some test objects set name [ns_mktemp "cr_item__XXXXXX"] - + for {set i 0} {$i<10} {incr i} { set o($i) [content::item::new \ -name ${name}_$i \ -title ${name}_$i] } - + # generate some text with links between the objects foreach n [array names o] { append text "\nTest Content Link to $o($n) Link \n" @@ -177,16 +192,28 @@ } -aa_register_case -cats api data_links_with_tag { - Test creating new link, exists test, get, get_linked and delete. Uses relation tags. +aa_register_case \ + -cats api \ + -procs { + acs_object_type + application_data_link::delete_links + application_data_link::get + application_data_link::get_linked + application_data_link::get_linked_content + application_data_link::link_exists + application_data_link::new + content::item::new + } \ + data_links_with_tag { + + Test creating new link, exists test, get, get_linked and + delete. Uses relation tags. + } { - aa_run_with_teardown \ - -rollback \ - -test_code \ - { + aa_run_with_teardown -rollback -test_code { # create some test objects set name [ns_mktemp "cr_item__XXXXXX"] - + for {set i 0} {$i<6} {incr i} { set o($i) [content::item::new \ -name ${name}_$i \ @@ -195,49 +222,50 @@ aa_log "Creating link between objects" application_data_link::new -this_object_id $o(0) -target_object_id $o(1) -relation_tag tag - + aa_true "Verify objects are linked" \ - [application_data_link::link_exists \ - -from_object_id $o(0) \ - -to_object_id $o(1) \ - -relation_tag tag] - + [application_data_link::link_exists \ + -from_object_id $o(0) \ + -to_object_id $o(1) \ + -relation_tag tag] + aa_log "Deleting links attached to first object" application_data_link::delete_links -object_id $o(0) - + aa_false "Verify objects are deleted" \ - [application_data_link::link_exists \ - -from_object_id $o(0) \ - -to_object_id $o(1) \ - -relation_tag tag] - + [application_data_link::link_exists \ + -from_object_id $o(0) \ + -to_object_id $o(1) \ + -relation_tag tag] + aa_log "Creating many links between objects" application_data_link::new -this_object_id $o(0) -target_object_id $o(1) -relation_tag tag1 application_data_link::new -this_object_id $o(0) -target_object_id $o(2) -relation_tag tag1 application_data_link::new -this_object_id $o(0) -target_object_id $o(3) -relation_tag tag2 application_data_link::new -this_object_id $o(3) -target_object_id $o(4) -relation_tag tag2 application_data_link::new -this_object_id $o(3) -target_object_id $o(5) -relation_tag tag2 - + aa_true "Verify link for tag1" \ - {[llength [application_data_link::get_linked -from_object_id $o(0) \ - -to_object_type [acs_object_type $o(0)] -relation_tag tag1]] == 2} + {[llength [application_data_link::get_linked -from_object_id $o(0) \ + -to_object_type [acs_object_type $o(0)] -relation_tag tag1]] == 2} aa_true "Verify link for tag2" \ - {[llength [application_data_link::get_linked -from_object_id $o(3) \ - -to_object_type [acs_object_type $o(3)] -relation_tag tag2]] == 3} + {[llength [application_data_link::get_linked -from_object_id $o(3) \ + -to_object_type [acs_object_type $o(3)] -relation_tag tag2]] == 3} aa_true "Verify content link" \ - {[llength [application_data_link::get_linked_content -from_object_id $o(0) \ - -to_content_type content_revision -relation_tag tag1]] == 2} - + {[llength [application_data_link::get_linked_content -from_object_id $o(0) \ + -to_content_type content_revision -relation_tag tag1]] == 2} + aa_true "Verify links to one object with multiple link tags" \ - {[llength [application_data_link::get -object_id $o(0) -relation_tag tag1]] == 2} - + {[llength [application_data_link::get -object_id $o(0) -relation_tag tag1]] == 2} + aa_true "Verify links to one object with multiple link tags" \ - {[llength [application_data_link::get -object_id $o(0) -relation_tag tag2]] == 1} + {[llength [application_data_link::get -object_id $o(0) -relation_tag tag2]] == 1} } } + # Local variables: # mode: tcl # tcl-indent-level: 4