- Publicity: Public Only All
site-nodes-test-procs.tcl
Test site node procs
- Location:
- packages/acs-tcl/tcl/test/site-nodes-test-procs.tcl
- Created:
- Mon Oct 20 16:16:04 2003
- Author:
- Vinod Kurup [vinod@kurup.com]
- CVS Identification:
$Id: site-nodes-test-procs.tcl,v 1.14 2024/09/11 06:15:48 gustafn Exp $
Procedures in this file
- _acs-tcl__site_node_closest_ancestor_package (private)
- _acs-tcl__site_node_update_cache (private)
Detailed information
_acs-tcl__site_node_closest_ancestor_package (private)
_acs-tcl__site_node_closest_ancestor_package
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
_acs-tcl__site_node_update_cache (private)
_acs-tcl__site_node_update_cache
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Content File Source
# /packages/acs-tcl/tcl/test/site-nodes-test-procs.tcl ad_library { Test site node procs @author Vinod Kurup [vinod@kurup.com] @creation-date Mon Oct 20 16:16:04 2003 @cvs-id $Id: site-nodes-test-procs.tcl,v 1.14 2024/09/11 06:15:48 gustafn Exp $ } aa_register_case \ -cats { api } \ -procs { site_node::delete site_node::get site_node::get_node_id site_node::get_url site_node::get_url_from_object_id site_node::init_cache site_node::instantiate_and_mount site_node::rename site_node::unmount } \ site_node_update_cache { Test site_node::update_cache } { aa_run_with_teardown -rollback -test_code { set root_node_id [site_node::get_node_id -url /] set root_object_id [dict get [site_node::get -node_id $root_node_id] object_id] set subsite_urls [site_node::get_url_from_object_id -object_id $root_object_id] aa_section "1) mount /doc1 /doc2 /doc1/doc3" set doc1_name [ad_generate_random_string] set doc2_name [ad_generate_random_string] set doc3_name [ad_generate_random_string] set node1_pkg_id [site_node::instantiate_and_mount \ -node_name $doc1_name \ -package_key acs-templating] set node1_node_id [site_node::get_node_id -url "/$doc1_name"] set node1_object_id [dict get [site_node::get -node_id $node1_node_id] object_id] set node2_pkg_id [site_node::instantiate_and_mount \ -node_name $doc2_name \ -package_key acs-core-docs] set node2_node_id [site_node::get_node_id -url "/$doc2_name"] set node2_object_id [dict get [site_node::get -node_id $node2_node_id] object_id] set node3_pkg_id [site_node::instantiate_and_mount \ -parent_node_id $node1_node_id \ -node_name $doc3_name \ -package_key acs-core-docs] set node3_node_id [site_node::get_node_id -url "/$doc1_name/$doc3_name"] set node3_object_id [dict get [site_node::get -node_id $node3_node_id] object_id] aa_equals "Verify url /doc1 for node1" \ [site_node::get_url -node_id $node1_node_id] "/$doc1_name/" aa_equals "Verify url /doc1/doc3 for node3" \ [site_node::get_url -node_id $node3_node_id] "/$doc1_name/$doc3_name/" aa_equals "Verify url /doc2 for node2" \ [site_node::get_url -node_id $node2_node_id] "/$doc2_name/" aa_log "node1_object_id urls [site_node::get_url_from_object_id -object_id $node1_object_id]" aa_log "root object_id urls [site_node::get_url_from_object_id -object_id $root_object_id]" aa_equals "Get urls from root_object_id $root_object_id unchanged" \ [llength [site_node::get_url_from_object_id -object_id $root_object_id]] \ [llength $subsite_urls] aa_true "Get url from node1 object_id $node1_object_id contains /$doc1_name/" { "/$doc1_name/" in [site_node::get_url_from_object_id -object_id $node1_object_id] } aa_true "Get url from node2 object_id $node2_object_id contains /$doc2_name/" { "/$doc2_name/" in [site_node::get_url_from_object_id -object_id $node2_object_id] } aa_true "Get url from node3 object_id $node3_object_id contains /$doc1_name/$doc3_name/" { "/$doc1_name/$doc3_name/" in [site_node::get_url_from_object_id -object_id $node3_object_id] } #aa_log "node1 [site_node::get -node_id $node1_node_id]" # # Rename the url from /doc1 to /doc4 # aa_section "2) rename /doc1 => doc4: Test /doc4 /doc4/doc3 /doc2" set doc4_name [ad_generate_random_string] site_node::rename -node_id $node1_node_id -name $doc4_name aa_equals "Check new url /doc4" [site_node::get_node_id -url "/$doc4_name"] $node1_node_id aa_equals "Check new url /doc4/doc3" [site_node::get_node_id -url "/$doc4_name/$doc3_name"] $node3_node_id aa_equals "Check old url /doc2" [site_node::get_node_id -url "/$doc2_name"] $node2_node_id aa_equals "Make sure old url /doc1 now matches /" [site_node::get_node_id -url "/$doc1_name/"] $root_node_id aa_equals "Make sure old url /doc1/doc3 now matches /" [site_node::get_node_id -url "/$doc1_name/$doc3_name/"] $root_node_id aa_equals "Verify url /doc4 for node1" [site_node::get_url -node_id $node1_node_id] "/$doc4_name/" aa_equals "Verify url /doc4/doc3 for node3" [site_node::get_url -node_id $node3_node_id] "/$doc4_name/$doc3_name/" aa_equals "Verify url /doc2 for node2" [site_node::get_url -node_id $node2_node_id] "/$doc2_name/" #::acs::site_nodes_cache flush_all #::acs::site_nodes_id_cache flush_all #::acs::site_nodes_children_cache flush_all aa_equals "Get urls from root_object_id $root_object_id unchanged" \ [llength [site_node::get_url_from_object_id -object_id $root_object_id]] \ [llength $subsite_urls] aa_true "Get url from node1 object_id $node1_object_id contains /$doc4_name/" { "/$doc4_name/" in [site_node::get_url_from_object_id -object_id $node1_object_id] } aa_false "Get url from node1 object_id $node1_object_id contains /$doc1_name/" { "/$doc1_name/" in [site_node::get_url_from_object_id -object_id $node1_object_id] } aa_true "Get url from node2 object_id $node2_object_id contains /$doc2_name/" { "/$doc2_name/" in [site_node::get_url_from_object_id -object_id $node2_object_id] } aa_true "Get url from node3 object_id $node3_object_id contains /$doc4_name/$doc3_name/" { "/$doc4_name/$doc3_name/" in [site_node::get_url_from_object_id -object_id $node3_object_id] } aa_false "Get url from node3 object_id $node3_object_id contains /$doc1_name/$doc3_name/" { "/$doc1_name/$doc3_name/" in [site_node::get_url_from_object_id -object_id $node3_object_id] } aa_section "3) init_cache: Test /doc5 /doc5/doc3 /doc2" # # Rename node1 to doc5_name in the database. # set doc5_name [ad_generate_random_string] db_dml rename_node1 { update site_nodes set name = :doc5_name where node_id = :node1_node_id } # # Renaming in the database bypassed the API and does not flush # the cache automatically. So flush the caches filled up with # the tests from the previous tests section. # ns_cache_transaction_rollback site_node::init_cache ns_cache_transaction_begin aa_equals "Check url /doc5" [site_node::get_node_id -url "/$doc5_name"] $node1_node_id aa_equals "Check url /doc5/doc3" [site_node::get_node_id -url "/$doc5_name/$doc3_name"] $node3_node_id aa_equals "Check url /doc2" [site_node::get_node_id -url "/$doc2_name"] $node2_node_id aa_equals "Make sure old url /doc1 now matches" [site_node::get_node_id -url "/$doc1_name/"] $root_node_id aa_equals "Make sure old url /doc1/doc3 now matches" [site_node::get_node_id -url "/$doc1_name/$doc3_name/"] $root_node_id aa_equals "Make sure old url /doc4 now matches" [site_node::get_node_id -url "/$doc4_name/"] $root_node_id aa_equals "Make sure old url /doc4/doc3 now matches" [site_node::get_node_id -url "/$doc4_name/$doc3_name/"] $root_node_id aa_equals "Verify url /doc5 for node1" [site_node::get_url -node_id $node1_node_id] "/$doc5_name/" aa_equals "Verify url /doc5/doc3 for node3" [site_node::get_url -node_id $node3_node_id] "/$doc5_name/$doc3_name/" aa_equals "Verify url /doc2 for node2" [site_node::get_url -node_id $node2_node_id] "/$doc2_name/" aa_true "Get url from node1 object_id $node1_object_id contains /$doc5_name/" { "/$doc5_name/" in [site_node::get_url_from_object_id -object_id $node1_object_id] } aa_true "Get url from node3 object_id $node3_object_id contains /$doc5_name/" { "/$doc5_name/$doc3_name/" in [site_node::get_url_from_object_id -object_id $node3_object_id] } aa_section "4) delete doc3: Test /doc5 /doc2, nonexisting /doc5/doc3" # # unmount and delete site node3. # site_node::unmount -node_id $node3_node_id site_node::delete -node_id $node3_node_id aa_equals "Check url /doc5" [site_node::get_node_id -url "/$doc5_name"] $node1_node_id aa_equals "Check url /doc2" [site_node::get_node_id -url "/$doc2_name"] $node2_node_id aa_equals "Make sure old url /doc5/doc3 now matches /doc5" \ [site_node::get_node_id -url "/$doc5_name/$doc3_name/"] $node1_node_id aa_equals "Verify url /doc5 for node1" [site_node::get_url -node_id $node1_node_id] "/$doc5_name/" aa_equals "Verify url /doc2 for node2" [site_node::get_url -node_id $node2_node_id] "/$doc2_name/" # # In section 3, we checked this case positively # aa_false "Get url from node3 object_id $node3_object_id contains /$doc5_name/" { "/$doc5_name/$doc3_name/" in [site_node::get_url_from_object_id -object_id $node3_object_id] } } } aa_register_case \ -cats { api } \ -procs { site_node::closest_ancestor_package site_node::get_node_id site_node::instantiate_and_mount site_node::new subsite::main_site_id } \ site_node_closest_ancestor_package { Test site_node::closest_ancestor_package } { aa_run_with_teardown -rollback -test_code { # 1) set up the site-map # /{acs-core-docs}/{empty-folder} # node-names generated randomly set doc_name [ad_generate_random_string] set folder_name [ad_generate_random_string] # # get root package_id and node_id # set root_pkg_id [subsite::main_site_id] set root_node_id [site_node::get_node_id -url /] # # create the acs-core-docs instance # set doc_pkg_id [site_node::instantiate_and_mount \ -node_name $doc_name \ -package_key acs-core-docs] set doc_node_id [site_node::get_node_id -url "/$doc_name"] # # create a folder underneate acs-core-docs # set folder_node_id [site_node::new \ -parent_id $doc_node_id \ -name $folder_name] # 2) test -url parameter # test doc's parent set package_id [site_node::closest_ancestor_package -url /$doc_name] aa_equals "Doc's parent is correct" $package_id $root_pkg_id # test folder's parent set package_id [site_node::closest_ancestor_package \ -url /$doc_name/$folder_name] aa_equals "Folder's parent is correct" $package_id $doc_pkg_id # 3) test -node_id parameter # test doc's parent set package_id [site_node::closest_ancestor_package \ -node_id $doc_node_id] aa_equals "Doc's parent based on node_id <$doc_node_id> is correct" $package_id $root_pkg_id # test folder's parent set package_id [site_node::closest_ancestor_package \ -node_id $folder_node_id] aa_equals "Folder's parent is correct" $package_id $doc_pkg_id # find ancestors of the main-site (should fail) set package_id [site_node::closest_ancestor_package \ -node_id $root_node_id] aa_equals "Root has no ancestors" $package_id "" # 4) test -package_key parameter # find ancestors of doc which are subsites set package_id [site_node::closest_ancestor_package \ -node_id $doc_node_id \ -package_key acs-subsite] aa_equals "Doc ancestor is a subsite" $package_id $root_pkg_id # find ancestors of doc which are photo-albums (should fail) set package_id [site_node::closest_ancestor_package \ -node_id $doc_node_id \ -package_key photo-album] aa_equals "Doc has no photo-album ancestors" $package_id "" # find ancestors of folder which are subsites (2 levels up) set package_id [site_node::closest_ancestor_package \ -node_id $folder_node_id \ -package_key acs-subsite] aa_equals "Folder's closest subsite ancestor is root" \ $package_id $root_pkg_id # 5) test -self parameter # find ancestors of doc, including doc in the search set package_id [site_node::closest_ancestor_package \ -node_id $doc_node_id \ -package_key acs-core-docs \ -include_self] aa_equals "Doc found itself" $package_id $doc_pkg_id } } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: