Index: openacs-4/packages/dotlrn-portlet/tcl/test/dotlrn-portlet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-portlet/tcl/test/dotlrn-portlet-procs.tcl,v diff -u -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/dotlrn-portlet/tcl/test/dotlrn-portlet-procs.tcl 6 Oct 2020 16:08:03 -0000 1.1.2.3 +++ openacs-4/packages/dotlrn-portlet/tcl/test/dotlrn-portlet-procs.tcl 6 Oct 2020 16:25:00 -0000 1.1.2.4 @@ -33,6 +33,132 @@ aa_equals "dotLRN admin portlet package key" "[dotlrn_admin_portlet::my_package_key]" "dotlrn-portlet" } +aa_register_case -procs { + dotlrn_portlet::add_self_to_page + dotlrn_portlet::remove_self_from_page + dotlrn_members_portlet::add_self_to_page + dotlrn_members_portlet::remove_self_from_page + dotlrn_members_staff_portlet::add_self_to_page + dotlrn_members_staff_portlet::remove_self_from_page + dotlrn_admin_portlet::add_self_to_page + dotlrn_admin_portlet::remove_self_from_page + } -cats { + api + } dotlrn_portlet_add_remove_from_page { + Test add/remove portlet procs. +} { + # + # Helper proc to check portal elements + # + proc portlet_exists_p {portal_id portlet_name} { + return [db_0or1row portlet_in_portal { + select 1 from dual where exists ( + select 1 + from portal_element_map pem, + portal_pages pp + where pp.portal_id = :portal_id + and pp.page_id = pem.page_id + and pem.name = :portlet_name + ) + }] + } + # + # Start the tests + # + aa_run_with_teardown -rollback -test_code { + # + # Create a community. + # + # As this is running in a transaction, it should be cleaned up + # automatically. + # + set community_id [dotlrn_community::new -community_type dotlrn_community -pretty_name foo] + if {$community_id ne ""} { + aa_log "Community created: $community_id" + set portal_id [dotlrn_community::get_admin_portal_id -community_id $community_id] + set package_id [dotlrn::instantiate_and_mount $community_id [dotlrn_portlet::my_package_key]] + # + # dotlrn_portlet + # + set portlet_name [dotlrn_portlet::get_my_name] + # + # Add portlet. + # + dotlrn_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # Remove portlet. + # + dotlrn_portlet::remove_self_from_page -portal_id $portal_id + aa_false "Portlet is in community portal after removal" "[portlet_exists_p $portal_id $portlet_name]" + # + # Add portlet. + # + dotlrn_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # dotlrn_members_portlet + # + set portlet_name [dotlrn_members_portlet::get_my_name] + # + # Add portlet. + # + dotlrn_members_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Members portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # Remove portlet. + # + dotlrn_members_portlet::remove_self_from_page -portal_id $portal_id + aa_false "Members portlet is in community portal after removal" "[portlet_exists_p $portal_id $portlet_name]" + # + # Add portlet. + # + dotlrn_members_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Members portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # dotlrn_members_staff_portlet + # + set portlet_name [dotlrn_members_staff_portlet::get_my_name] + # + # Add portlet. + # + dotlrn_members_staff_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Members staff portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # Remove portlet. + # + dotlrn_members_staff_portlet::remove_self_from_page -portal_id $portal_id + aa_false "Members staff portlet is in community portal after removal" "[portlet_exists_p $portal_id $portlet_name]" + # + # Add portlet. + # + dotlrn_members_staff_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Members staff portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # admin_portlet + # + set portlet_name [dotlrn_admin_portlet::get_my_name] + # + # Add portlet. + # + dotlrn_admin_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Admin portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + # + # Remove portlet. + # + dotlrn_admin_portlet::remove_self_from_page -portal_id $portal_id + aa_false "Admin portlet is in community portal after removal" "[portlet_exists_p $portal_id $portlet_name]" + # + # Add portlet. + # + dotlrn_admin_portlet::add_self_to_page -portal_id $portal_id -community_id $community_id + aa_true "Admin portlet is in community portal after addition" "[portlet_exists_p $portal_id $portlet_name]" + } else { + aa_error "Community creation failed" + } + } +} + # Local variables: # mode: tcl # tcl-indent-level: 4