Index: openacs-4/packages/news/tcl/test/news-db-test-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news/tcl/test/news-db-test-init.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/news/tcl/test/news-db-test-init.tcl 26 Feb 2005 17:58:09 -0000 1.6 +++ openacs-4/packages/news/tcl/test/news-db-test-init.tcl 27 Feb 2005 22:45:40 -0000 1.7 @@ -5,12 +5,12 @@ ################################################################################ ad_library { - acs-automated-testing test definitions for the news package to be sourced on - server startup. + acs-automated-testing test definitions for the news package to be sourced on + server startup. - @author peter.harper@open-msg.com - @creation-date 2001-11-18 - @cvs-id $Id$ + @author peter.harper@open-msg.com + @creation-date 2001-11-18 + @cvs-id $Id$ } @@ -25,92 +25,92 @@ # Init Class mount-news-package # aa_register_init_class "mount-news-package" { - Mounts a copy of the news package in "/_test/news". + Mounts a copy of the news package in "/_test/news". } { - # Constructor - # Export variables we want to be visible to the testcase and the destructor. - aa_export_vars {_root_node_id _test_node_id _news_node_id _news_package_id - _news_package_mounted_p _news_package_mounted_err} + # Constructor + # Export variables we want to be visible to the testcase and the destructor. + aa_export_vars {_root_node_id _test_node_id _news_node_id _news_package_id + _news_package_mounted_p _news_package_mounted_err} - # - # Firstly, make sure the mount point "/_test/news" exists. - # - set _news_node_id -1 - set _test_node_id -1 - set _root_node_id -1 - set _news_package_id -1 - db_foreach get-site-nodes { - select node_id, object_id, site_node.url(node_id) as url from site_nodes - } { - switch [string trim $url] { - "/_test/news/" { - set _news_node_id $node_id - if {$object_id != ""} { - set _news_package_id $object_id + # + # Firstly, make sure the mount point "/_test/news" exists. + # + set _news_node_id -1 + set _test_node_id -1 + set _root_node_id -1 + set _news_package_id -1 + db_foreach get-site-nodes { + select node_id, object_id, site_node.url(node_id) as url from site_nodes + } { + switch [string trim $url] { + "/_test/news/" { + set _news_node_id $node_id + if {$object_id != ""} { + set _news_package_id $object_id + } + } + "/_test/" { + set _test_node_id $node_id + } + "/" { + set _root_node_id $node_id + } } - } - "/_test/" { - set _test_node_id $node_id - } - "/" { - set _root_node_id $node_id - } } - } - set _news_package_mounted_p 1 - if {[catch { - # Create the _test directory if it doesn't already exist. -aa_log "here" - if {$_test_node_id == -1} { - set _test_node_id [site_node::new \ - -name "_test" \ - -parent_id $_root_node_id ] - } - # If an old news package exists, delete it. - if {$_news_node_id != -1} { - aa_log "Deleting existing node instance." - site_map_unmount_application -delete_p t -sync_p t $_news_node_id - if {$_news_package_id != -1} { - aa_log "Deleting existing package instance." - set p_package_id $_news_package_id - db_exec_plsql package-delete { - begin - apm_package.del(:p_package_id); - end; + set _news_package_mounted_p 1 + if {[catch { + # Create the _test directory if it doesn't already exist. + aa_log "here" + if {$_test_node_id == -1} { + set _test_node_id [site_node::new \ + -name "_test" \ + -parent_id $_root_node_id ] } - } - } + # If an old news package exists, delete it. + if {$_news_node_id != -1} { + aa_log "Deleting existing node instance." + site_map_unmount_application -delete_p t -sync_p t $_news_node_id + if {$_news_package_id != -1} { + aa_log "Deleting existing package instance." + set p_package_id $_news_package_id + db_exec_plsql package-delete { + begin + apm_package.del(:p_package_id); + end; + } + } + } - # Mount the new news package and lookup the new node_id. - set _news_package_id [site_node::instantiate_and_mount \ - -parent_node_id $_test_node_id \ - -node_name news \ - -package_name "News test" \ - -package_key news] + # Mount the new news package and lookup the new node_id. + set _news_package_id [site_node::instantiate_and_mount \ + -parent_node_id $_test_node_id \ + -node_name news \ + -package_name "News test" \ + -package_key news] - set _news_node_id [site_node_id "/_test/news/"] - } _news_package_mounted_err]} { - set _news_node_id -1 - set _test_node_id -1 - set _root_node_id -1 - set _news_package_mounted_p 0 - } + set _news_node_id [site_node_id "/_test/news/"] + } _news_package_mounted_err]} { + set _news_node_id -1 + set _test_node_id -1 + set _root_node_id -1 + set _news_package_mounted_p 0 + } } { - # Destructor + # Destructor - # - # Unmount the news package and delete its directory. - # - if {$_news_package_mounted_p} { - site_map_unmount_application -delete_p t $_news_node_id - site_node::delete -node_id $_test_node_id - set p_package_id $_news_package_id - db_exec_plsql package-delete { - begin - apm_package.del(:p_package_id) + # + # Unmount the news package and delete its directory. + # + if {$_news_package_mounted_p} { + site_map_unmount_application -delete_p t $_news_node_id + site_node::delete -node_id $_test_node_id + set p_package_id $_news_package_id + db_exec_plsql package-delete { + begin + apm_package.del(:p_package_id) + } } - } } @@ -125,19 +125,19 @@ # Component db-news-globals # aa_register_component "db-news-globals" { - Sets up general information regarding the news package -
- Exports:
- _news_cr_root_folder_id
- _news_cr_news_root_folder_id + Sets up general information regarding the news package +
+ Exports:
+ _news_cr_root_folder_id
+ _news_cr_news_root_folder_id } { - aa_export_vars {_news_cr_root_folder_id _news_cr_news_root_folder_id} - - set _news_cr_root_folder_id [db_string get-cr-root-folder { - select content_item.get_root_folder from dual + aa_export_vars {_news_cr_root_folder_id _news_cr_news_root_folder_id} + + set _news_cr_root_folder_id [db_string get-cr-root-folder { + select content_item.get_root_folder from dual }] - set p_parent_id $_news_cr_root_folder_id - set _news_cr_news_root_folder_id [db_string get-cr-news-root-folder { + set p_parent_id $_news_cr_root_folder_id + set _news_cr_news_root_folder_id [db_string get-cr-news-root-folder { select item_id from cr_items where parent_id = :p_parent_id @@ -150,352 +150,352 @@ # Component db-news-item-create # aa_register_component "db-news-item-create" { - Creates a news item. Expects the following variables to be populated:
- p_title
- p_text
- p_package_id
- p_is_live
- p_full_details
-

- Populates:
- news_id + Creates a news item. Expects the following variables to be populated:
+ p_title
+ p_text
+ p_package_id
+ p_is_live
+ p_full_details
+

+ Populates:
+ news_id } { - aa_export_vars {p_full_details p_title p_text p_package_id p_is_live - p_approval_user p_approval_ip p_approval_date p_archive_date - news_id} - if {$p_full_details == "t"} { - set p_approval_user [ad_conn "user_id"] - set p_approval_ip [ad_conn "peeraddr"] - set p_approval_date [dt_sysdate] - set p_archive_date [dt_sysdate] - } else { - set p_approval_user [db_null] - set p_approval_ip [db_null] - set p_approval_date [db_null] - set p_archive_date [db_null] - } - set news_id [db_exec_plsql item-create { - begin - :1 := news.new( - text => :p_text, - title => :p_title, - package_id => :p_package_id, - archive_date => :p_archive_date, - approval_user => :p_approval_user, - approval_date => :p_approval_date, - approval_ip => :p_approval_ip, - is_live_p => :p_is_live - ); - end; - }] + aa_export_vars {p_full_details p_title p_text p_package_id p_is_live + p_approval_user p_approval_ip p_approval_date p_archive_date + news_id} + if {$p_full_details == "t"} { + set p_approval_user [ad_conn "user_id"] + set p_approval_ip [ad_conn "peeraddr"] + set p_approval_date [dt_sysdate] + set p_archive_date [dt_sysdate] + } else { + set p_approval_user [db_null] + set p_approval_ip [db_null] + set p_approval_date [db_null] + set p_archive_date [db_null] + } + set news_id [db_exec_plsql item-create { + begin + :1 := news.new( + text => :p_text, + title => :p_title, + package_id => :p_package_id, + archive_date => :p_archive_date, + approval_user => :p_approval_user, + approval_date => :p_approval_date, + approval_ip => :p_approval_ip, + is_live_p => :p_is_live + ); + end; + }] } ################################################################################ # # Component db-news-item-delete # aa_register_component "db-news-item-delete" { - Deletes a news item. Expects the following variables to be populated:
- p_news_id
+ Deletes a news item. Expects the following variables to be populated:
+ p_news_id
} { - aa_export_vars {p_item_id} - db_exec_plsql item-delete { - begin - news.del(:p_item_id); - end; - } + aa_export_vars {p_item_id} + db_exec_plsql item-delete { + begin + news.del(:p_item_id); + end; + } } ################################################################################ # # Component db-news-revision-create # aa_register_component "db-news-revision-create" { - Creates a news item revision. Expects the following variables to be populated:
- p_title
- p_text
- p_description
- p_package_id
- p_make_active_revision_p
- p_full_details
-

- Populates:
- revision_id + Creates a news item revision. Expects the following variables to be populated:
+ p_title
+ p_text
+ p_description
+ p_package_id
+ p_make_active_revision_p
+ p_full_details
+

+ Populates:
+ revision_id } { - aa_export_vars {p_item_id - p_full_details p_title p_text p_package_id p_make_active_revision_p - p_description - p_approval_user p_approval_ip p_approval_date p_archive_date - revision_id} - if {$p_full_details == "t"} { - set p_approval_user [ad_conn "user_id"] - set p_approval_ip [ad_conn "peeraddr"] - set p_approval_date [dt_sysdate] - set p_archive_date [dt_sysdate] - } else { - set p_approval_user [db_null] - set p_approval_ip [db_null] - set p_approval_date [db_null] - set p_archive_date [db_null] - } - set revision_id [db_exec_plsql revision-create { - begin - :1 := news.revision_new( - item_id => :p_item_id, - text => :p_text, - title => :p_title, - package_id => :p_package_id, - archive_date => :p_archive_date, - approval_user => :p_approval_user, - approval_date => :p_approval_date, - approval_ip => :p_approval_ip, - make_active_revision_p => :p_make_active_revision_p - ); - end; - }] + aa_export_vars {p_item_id + p_full_details p_title p_text p_package_id p_make_active_revision_p + p_description + p_approval_user p_approval_ip p_approval_date p_archive_date + revision_id} + if {$p_full_details == "t"} { + set p_approval_user [ad_conn "user_id"] + set p_approval_ip [ad_conn "peeraddr"] + set p_approval_date [dt_sysdate] + set p_archive_date [dt_sysdate] + } else { + set p_approval_user [db_null] + set p_approval_ip [db_null] + set p_approval_date [db_null] + set p_archive_date [db_null] + } + set revision_id [db_exec_plsql revision-create { + begin + :1 := news.revision_new( + item_id => :p_item_id, + text => :p_text, + title => :p_title, + package_id => :p_package_id, + archive_date => :p_archive_date, + approval_user => :p_approval_user, + approval_date => :p_approval_date, + approval_ip => :p_approval_ip, + make_active_revision_p => :p_make_active_revision_p + ); + end; + }] } ################################################################################ # # Component db-news-get-live-revision # aa_register_component "db-news-get-live-revision" { - Retrieves the id of the live revision of an item_id - p_item_id
- Provides
- live_revision_id + Retrieves the id of the live revision of an item_id + p_item_id
+ Provides
+ live_revision_id } { - aa_export_vars {p_item_id live_revision_id} - set live_revision_id [db_exec_plsql get-live-revision { - begin - :1 := content_item.get_live_revision(:p_item_id); - end; - }] + aa_export_vars {p_item_id live_revision_id} + set live_revision_id [db_exec_plsql get-live-revision { + begin + :1 := content_item.get_live_revision(:p_item_id); + end; + }] } ################################################################################ # # Component db-news-get-latest-revision # aa_register_component "db-news-get-latest-revision" { - Retrieves the id of the latest revision of an item_id - p_item_id
- Provides
- latest_revision_id + Retrieves the id of the latest revision of an item_id + p_item_id
+ Provides
+ latest_revision_id } { - aa_export_vars {p_item_id latest_revision_id} - set latest_revision_id [db_exec_plsql get-latest-revision { - begin - :1 := content_item.get_latest_revision(:p_item_id); - end; - }] + aa_export_vars {p_item_id latest_revision_id} + set latest_revision_id [db_exec_plsql get-latest-revision { + begin + :1 := content_item.get_latest_revision(:p_item_id); + end; + }] } ################################################################################ # # Component db-news-set-approve # aa_register_component "db-news-set-approve" { - Sets or removes the approved status on a news article
- Expects
- p_revision_id
- p_approve_p
- p_publish_date (if p_approve_p == 't')
- p_archive_date (if p_approve_p == 't')
- p_approval_user (if p_approve_p == 't')
- p_approval_date (if p_approve_p == 't')
- p_approval_ip (if p_approve_p == 't')
- p_live_revision_p (if p_approve_p == 't')
+ Sets or removes the approved status on a news article
+ Expects
+ p_revision_id
+ p_approve_p
+ p_publish_date (if p_approve_p == 't')
+ p_archive_date (if p_approve_p == 't')
+ p_approval_user (if p_approve_p == 't')
+ p_approval_date (if p_approve_p == 't')
+ p_approval_ip (if p_approve_p == 't')
+ p_live_revision_p (if p_approve_p == 't')
} { - aa_export_vars {p_revision_id - p_approve_p p_publish_date p_archive_date - p_approval_user p_approval_date p_approval_ip - p_live_revision_p} + aa_export_vars {p_revision_id + p_approve_p p_publish_date p_archive_date + p_approval_user p_approval_date p_approval_ip + p_live_revision_p} - if {$p_approve_p == "f"} { - db_exec_plsql set-approve-default { - begin - content_item.set_approve-default(revision_id => :p_revision_id, - approve_p => :p_approve_p); - end; + if {$p_approve_p == "f"} { + db_exec_plsql set-approve-default { + begin + content_item.set_approve-default(revision_id => :p_revision_id, + approve_p => :p_approve_p); + end; + } + } else { + db_exec_plsql set-approve { + begin + content_item.set_approve(revision_id => :p_revision_id, + approve_p => :p_approve_p, + publish_date => :p_publish_date + archive_date => :p_archive_date, + approval_user => :p_approval_user, + approval_date => :p_approval_date, + approvel_ip => :p_approval_id, + live_revision_p => :p_live_revision_ip); + end; + } } - } else { - db_exec_plsql set-approve { - begin - content_item.set_approve(revision_id => :p_revision_id, - approve_p => :p_approve_p, - publish_date => :p_publish_date - archive_date => :p_archive_date, - approval_user => :p_approval_user, - approval_date => :p_approval_date, - approvel_ip => :p_approval_id, - live_revision_p => :p_live_revision_ip); - end; - } - } } ################################################################################ # # Component db-news-revision-set-active # aa_register_component "db-news-revision-set-active" { - Sets a specific revision as the live version of the item - Requires:
- p_revision_id
+ Sets a specific revision as the live version of the item + Requires:
+ p_revision_id
} { - aa_export_vars {p_revision_id} - db_exec_plsql revision-set-active { - begin - news.revision_set_active(:p_revision_id); - end; - } + aa_export_vars {p_revision_id} + db_exec_plsql revision-set-active { + begin + news.revision_set_active(:p_revision_id); + end; + } } ################################################################################ # # Component db-news-revision-delete # aa_register_component "db-news-revision-delete" { - Deletes a news revision. Expects the following variables to be populated:
- p_revision_id
+ Deletes a news revision. Expects the following variables to be populated:
+ p_revision_id
} { - aa_export_vars {p_revision_id} - db_exec_plsql revision-delete { - begin - news.revision_delete(:p_revision_id); - end; - } + aa_export_vars {p_revision_id} + db_exec_plsql revision-delete { + begin + news.revision_delete(:p_revision_id); + end; + } } ################################################################################ # # Component db-get-cr-news-row # aa_register_component "db-get-cr-news-row" { - Retrieves the cr_news row information for the given news_id: - Expects:
- p_news_id
- In addition to the actual row data, populates:
- retrieval_ok_p
+ Retrieves the cr_news row information for the given news_id: + Expects:
+ p_news_id
+ In addition to the actual row data, populates:
+ retrieval_ok_p
} { - aa_export_vars {p_news_id - package_id archive_date approval_user approval_date approval_ip - retrieval_ok_p} - set retrieval_ok_p 1 - if {![db_0or1row get-cr-news-row { - select package_id, archive_date, - approval_user, approval_date, approval_ip - from cr_news - where news_id = :p_news_id + aa_export_vars {p_news_id + package_id archive_date approval_user approval_date approval_ip + retrieval_ok_p} + set retrieval_ok_p 1 + if {![db_0or1row get-cr-news-row { + select package_id, archive_date, + approval_user, approval_date, approval_ip + from cr_news + where news_id = :p_news_id }]} { - set retrieval_ok_p 0 - } + set retrieval_ok_p 0 + } } ################################################################################ # # Component db-get-cr-revisions-row # aa_register_component "db-get-cr-revisions-row" { - Retrieves the cr_revisions row information for the given news_id: - Expects:
- p_revision_id
- In addition to the actual row data, populates:
- retrieval_ok_p
+ Retrieves the cr_revisions row information for the given news_id: + Expects:
+ p_revision_id
+ In addition to the actual row data, populates:
+ retrieval_ok_p
} { - aa_export_vars {p_revision_id - item_id title description publish_date mime_type nls_language - content content_length - retrieval_ok_p} - set retrieval_ok_p 1 - if {![db_0or1row get-cr-revisions-row { - select item_id, title, description, publish_date, mime_type, - nls_language, content, content_length - from cr_revisions - where revision_id = :p_revision_id + aa_export_vars {p_revision_id + item_id title description publish_date mime_type nls_language + content content_length + retrieval_ok_p} + set retrieval_ok_p 1 + if {![db_0or1row get-cr-revisions-row { + select item_id, title, description, publish_date, mime_type, + nls_language, content, content_length + from cr_revisions + where revision_id = :p_revision_id }]} { - set retrieval_ok_p 0 - } + set retrieval_ok_p 0 + } } ################################################################################ # # Component db-get-cr-items-row # aa_register_component "db-get-cr-items-row" { - Retrieves the cr_revisions row information for the given news_id: - Expects:
- p_revision_id
- In addition to the actual row data, populates:
- retrieval_ok_p
+ Retrieves the cr_revisions row information for the given news_id: + Expects:
+ p_revision_id
+ In addition to the actual row data, populates:
+ retrieval_ok_p
} { - aa_export_vars {p_item_id - parent_id name live_revision latest_revision publish_status content_type - retrieval_ok_p} - set retrieval_ok_p 1 - if {![db_0or1row get-cr-items-row { - select parent_id, name, live_revision, latest_revision, - publish_status, content_type - from cr_items - where item_id = :p_item_id - }]} { - set retrieval_ok_p 0 - } + aa_export_vars {p_item_id + parent_id name live_revision latest_revision publish_status content_type + retrieval_ok_p} + set retrieval_ok_p 1 + if {![db_0or1row get-cr-items-row { + select parent_id, name, live_revision, latest_revision, + publish_status, content_type + from cr_items + where item_id = :p_item_id + }]} { + set retrieval_ok_p 0 + } } ################################################################################ # # Component db-news-make-permanent # aa_register_component "db-news-make-permanent" { - Calls the news packages make_permanent function. - p_item_id
+ Calls the news packages make_permanent function. + p_item_id
} { - aa_export_vars {p_item_id} - db_exec_plsql make-permanent { - begin - news.make_permanent(:p_item_id); - end; - } + aa_export_vars {p_item_id} + db_exec_plsql make-permanent { + begin + news.make_permanent(:p_item_id); + end; + } } ################################################################################ # # Component db-news-archive # aa_register_component "db-news-archive" { - Calls the news packages archive function. - p_item_id
- p_archive_date
+ Calls the news packages archive function. + p_item_id
+ p_archive_date
} { - aa_export_vars {p_item_id p_archive_date} - if {$p_archive_date == ""} { - db_exec_plsql archive-default { - begin - news.archive(:p_item_id, null); - end; + aa_export_vars {p_item_id p_archive_date} + if {$p_archive_date == ""} { + db_exec_plsql archive-default { + begin + news.archive(:p_item_id, null); + end; + } + } else { + db_exec_plsql archive { + begin + news.archive(:p_item_id, :p_archive_date); + end; + } } - } else { - db_exec_plsql archive { - begin - news.archive(:p_item_id, :p_archive_date); - end; - } - } } ################################################################################ # # Component db-news-status # aa_register_component "db-news-status" { - Calls the news packages status function. - p_news_id
+ Calls the news packages status function. + p_news_id
} { - aa_export_vars {p_publish_date p_archive_date status} + aa_export_vars {p_publish_date p_archive_date status} - set status [db_exec_plsql get-status {}] + set status [db_exec_plsql get-status {}] } @@ -510,60 +510,60 @@ # Testcase check-permissions # aa_register_case -cats { - db - config + db + config } -on_error { - At least some of the news permission privileges aren't present, or have incorrect - configurations. The most probable cause of this is that the news package datamodel - hasn't been installed. + At least some of the news permission privileges aren't present, or have incorrect + configurations. The most probable cause of this is that the news package datamodel + hasn't been installed. } "check-permissions" { - Checks the news related permissions. - Checks that the permissions exist, and that they have the correct - heirachy. + Checks the news related permissions. + Checks that the permissions exist, and that they have the correct + heirachy. } { - # - # Extract the list of all privileges and privilege heirachies. - # - set priv_list {} - db_foreach "get-privileges" { - select privilege from acs_privileges - } { - lappend priv_list $privilege - } + # + # Extract the list of all privileges and privilege heirachies. + # + set priv_list {} + db_foreach "get-privileges" { + select privilege from acs_privileges + } { + lappend priv_list $privilege + } - set priv_h_list {} - db_foreach "get-privilege-heirarchys" { - select privilege, child_privilege from acs_privilege_hierarchy - } { - lappend priv_h_list "$privilege,$child_privilege" - } + set priv_h_list {} + db_foreach "get-privilege-heirarchys" { + select privilege, child_privilege from acs_privilege_hierarchy + } { + lappend priv_h_list "$privilege,$child_privilege" + } - aa_log "Check the news privileges exist" - foreach priv {news_read news_create news_delete news_admin} { - aa_true "Check $priv privilege exists" {[lsearch $priv_list $priv] != -1} - } + aa_log "Check the news privileges exist" + foreach priv {news_read news_create news_delete news_admin} { + aa_true "Check $priv privilege exists" {[lsearch $priv_list $priv] != -1} + } - aa_log "Check the news privilege heirachies are correct" - foreach priv_pair {"read,news_read" - "delete,news_delete" - "news_admin,news_read" - "news_admin,news_create" - "news_admin,news_delete" - "admin,news_admin"} { - aa_true "Check $priv_pair privilege exists" {[lsearch $priv_h_list $priv_pair] != -1} - } + aa_log "Check the news privilege heirachies are correct" + foreach priv_pair {"read,news_read" + "delete,news_delete" + "news_admin,news_read" + "news_admin,news_create" + "news_admin,news_delete" + "admin,news_admin"} { + aa_true "Check $priv_pair privilege exists" {[lsearch $priv_h_list $priv_pair] != -1} + } - # - # Now check that correct groups have the right privileges. - # - set registered_users_id [acs_magic_object registered_users] - set the_public_id [acs_magic_object the_public] + # + # Now check that correct groups have the right privileges. + # + set registered_users_id [acs_magic_object registered_users] + set the_public_id [acs_magic_object the_public] - aa_log "Check the correct groups have the right privileges." - aa_true "Check public have news_read privilege" \ - [ad_permission_p $the_public_id news_read] - aa_true "Check registered_users have news_create privilege" \ - [ad_permission_p $registered_users_id news_read] + aa_log "Check the correct groups have the right privileges." + aa_true "Check public have news_read privilege" \ + [ad_permission_p $the_public_id news_read] + aa_true "Check registered_users have news_create privilege" \ + [ad_permission_p $registered_users_id news_read] } @@ -572,83 +572,83 @@ # Testcase check-views # aa_register_case -cats { - db - config + db + config } -on_error { } "check-views" { - Checks the news related views. - Checks that the views are valid by performing a select from each of them. + Checks the news related views. + Checks that the views are valid by performing a select from each of them. } { - aa_log "Check the news_items_approved view." - set error_p 0 - db_transaction { - db_1row select-from-news-items-approved { - select count(*) from news_items_approved + aa_log "Check the news_items_approved view." + set error_p 0 + db_transaction { + db_1row select-from-news-items-approved { + select count(*) from news_items_approved + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_items_approved view okay" {$error_p} + aa_false "Select from news_items_approved view okay" {$error_p} - aa_log "Check the news_items_live_or_submitted view." - set error_p 0 - db_transaction { - db_1row select-from-news-items-live-or-submitted { - select count(*) from news_items_live_or_submitted + aa_log "Check the news_items_live_or_submitted view." + set error_p 0 + db_transaction { + db_1row select-from-news-items-live-or-submitted { + select count(*) from news_items_live_or_submitted + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_items_live_or_submitted view okay" {$error_p} + aa_false "Select from news_items_live_or_submitted view okay" {$error_p} - aa_log "Check the news_items_unapproved view." - set error_p 0 - db_transaction { - db_1row select-from-news-items-unapproved { - select count(*) from news_items_unapproved + aa_log "Check the news_items_unapproved view." + set error_p 0 + db_transaction { + db_1row select-from-news-items-unapproved { + select count(*) from news_items_unapproved + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_items_unapproved view okay" {$error_p} + aa_false "Select from news_items_unapproved view okay" {$error_p} - aa_log "Check the news_item_revisions view." - set error_p 0 - db_transaction { - db_1row select-from-news-item-revisions { - select count(*) from news_item_revisions + aa_log "Check the news_item_revisions view." + set error_p 0 + db_transaction { + db_1row select-from-news-item-revisions { + select count(*) from news_item_revisions + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_item_revisions view okay" {$error_p} + aa_false "Select from news_item_revisions view okay" {$error_p} - aa_log "Check the news_item_unapproved view." - set error_p 0 - db_transaction { - db_1row select-from-news-item-unapproved { - select count(*) from news_item_unapproved + aa_log "Check the news_item_unapproved view." + set error_p 0 + db_transaction { + db_1row select-from-news-item-unapproved { + select count(*) from news_item_unapproved + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_item_unapproved view okay" {$error_p} + aa_false "Select from news_item_unapproved view okay" {$error_p} - aa_log "Check the news_item_full_active view." - set error_p 0 - db_transaction { - db_1row select-from-news-item-full-active { - select count(*) from news_item_full_active + aa_log "Check the news_item_full_active view." + set error_p 0 + db_transaction { + db_1row select-from-news-item-full-active { + select count(*) from news_item_full_active + } + } on_error { + set error_p 1 } - } on_error { - set error_p 1 - } - aa_false "Select from news_item_full_active view okay" {$error_p} + aa_false "Select from news_item_full_active view okay" {$error_p} } @@ -657,69 +657,69 @@ # Testcase check-object-type # aa_register_case -cats { - db - config + db + config } -on_error { - The "news" object type doesn't exist, or has isn't configured correctly. - The most probable cause of this is that the news package datamodel hasn't been - installed. + The "news" object type doesn't exist, or has isn't configured correctly. + The most probable cause of this is that the news package datamodel hasn't been + installed. } "check-object-type" { - Checks the news object type. + Checks the news object type. } { - set news_type_exists_p [db_0or1row "get-news-type-info" { - select supertype - from acs_object_types - where object_type = 'news' - }] + set news_type_exists_p [db_0or1row "get-news-type-info" { + select supertype + from acs_object_types + where object_type = 'news' + }] - aa_true "Check news object type exists" {$news_type_exists_p} + aa_true "Check news object type exists" {$news_type_exists_p} - if {$news_type_exists_p} { - aa_equals "Check the supertype is content_revision" $supertype "content_revision" + if {$news_type_exists_p} { + aa_equals "Check the supertype is content_revision" $supertype "content_revision" - db_foreach "get-news-type-attribs" { - select attribute_name - from acs_attributes - where object_type = 'news' - } { - lappend attribs $attribute_name - } - aa_log "Check the news object attributes exist" - foreach attribute_name {"archive_date" - "approval_user" - "approval_date" - "approval_ip"} { - aa_true "Check $attribute_name exists" {[lsearch $attribs $attribute_name] != -1} - } + db_foreach "get-news-type-attribs" { + select attribute_name + from acs_attributes + where object_type = 'news' + } { + lappend attribs $attribute_name + } + aa_log "Check the news object attributes exist" + foreach attribute_name {"archive_date" + "approval_user" + "approval_date" + "approval_ip"} { + aa_true "Check $attribute_name exists" {[lsearch $attribs $attribute_name] != -1} + } - set news_folder_exists_p [db_0or1row "get-news-cr-folder" { - select folder_id - from cr_folders - where label = 'news' - }] - aa_true "Check news content_repository folder exists" {$news_folder_exists_p} - } + set news_folder_exists_p [db_0or1row "get-news-cr-folder" { + select folder_id + from cr_folders + where label = 'news' + }] + aa_true "Check news content_repository folder exists" {$news_folder_exists_p} + } } ################################################################################ # # Testcase check-package-mount # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } -on_error { } "check-package-mount" { - Checks the mountability of the news package. + Checks the mountability of the news package. } { - aa_true "Check that the news package mount properly" $_news_package_mounted_p - if {$_news_package_mounted_p} { - aa_log "News node_id :$_news_node_id" - aa_log "News package_id :$_news_package_id" - } else { - aa_error "Error from initialiser: $_news_package_mounted_err" - } + aa_true "Check that the news package mount properly" $_news_package_mounted_p + if {$_news_package_mounted_p} { + aa_log "News node_id :$_news_node_id" + aa_log "News package_id :$_news_package_id" + } else { + aa_error "Error from initialiser: $_news_package_mounted_err" + } } @@ -728,121 +728,121 @@ # Testcase db-check-news_create # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } "db-check-news-create" { - Creates and deletes a simple news article. Checks contents of cr_news, - cr_items and cr_revisions table after insert. Calls the news name function to retrieve - the article name. Tests news.new, news.delete and news.name. + Creates and deletes a simple news article. Checks contents of cr_news, + cr_items and cr_revisions table after insert. Calls the news name function to retrieve + the article name. Tests news.new, news.delete and news.name. } { - set news_id -1 + set news_id -1 - if {!$_news_package_mounted_p} { - aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" - } else { - # - # Attempt to create the article - # - set p_title "My title" - set p_text "My text" - set p_package_id $_news_package_id - set p_is_live "t" - set p_full_details "t" - aa_call_component db-news-globals - aa_call_component db-news-item-create - } -} { - aa_true "Check the news_id is populated" {$news_id != -1} - set item_id -1 - if {$news_id != -1} { - aa_log "News id: $news_id" - # - # Retrieve the row from cr_news table and check its contents. Notice that we - # only check the date portion of the date strings. - # - aa_log "Retrieve cr_news row and check its contents" - set p_news_id $news_id - aa_call_component db-get-cr-news-row - if {!$retrieval_ok_p} { - aa_error "cr_news column not found for news_id $news_id" + if {!$_news_package_mounted_p} { + aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" } else { - aa_equals "Check package_id correct" $package_id $_news_package_id - aa_equals "Check archive_date correct" \ - [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ - $p_archive_date - aa_equals "Check approval_user correct" $approval_user $p_approval_user - aa_equals "Check approval_date correct" \ - [string range $approval_date 0 [expr [string length $p_approval_date] - 1]] \ - $p_approval_date - aa_equals "Check approval_ip correct" $approval_ip $p_approval_ip + # + # Attempt to create the article + # + set p_title "My title" + set p_text "My text" + set p_package_id $_news_package_id + set p_is_live "t" + set p_full_details "t" + aa_call_component db-news-globals + aa_call_component db-news-item-create } - - # - # Retrieve the row from cr_revisions table and check its contents. - # NB: The get_cr_revisions_row populates item_id - # - aa_log "Retrieve cr_revisions row and check its contents" - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row - if {!$retrieval_ok_p} { - aa_error "cr_revisions row not found for news_id (revision_id) $news_id" - } else { - aa_equals "Check title correct" $title $p_title - aa_equals "Check description correct" $description "initial submission" - aa_equals "Check mime_type correct" $mime_type "text/plain" - - # - # Retrieve the row from cr_items table and check its contents. - # - aa_log "Retrieve cr_items row and check its contents" - set p_item_id $item_id - aa_call_component db-get-cr-items-row - if {!$retrieval_ok_p} { - aa_error "cr_items row not found for item_id (revision_id) $news_id" - } else { - aa_equals "Check parent_id correct" $parent_id $_news_cr_news_root_folder_id - aa_equals "Check live_revision correct" $live_revision $news_id - aa_equals "Check latest_revision correct" $latest_revision $news_id - aa_equals "Check publish_status correct" $publish_status "ready" - aa_equals "Check content_type correct" $content_type "news" - +} { + aa_true "Check the news_id is populated" {$news_id != -1} + set item_id -1 + if {$news_id != -1} { + aa_log "News id: $news_id" # - # Call the news.name function to retrieve the item name. + # Retrieve the row from cr_news table and check its contents. Notice that we + # only check the date portion of the date strings. # - aa_log "Call news.name function to retrieve title of content revision" + aa_log "Retrieve cr_news row and check its contents" set p_news_id $news_id - set name [db_exec_plsql news-name { - begin - :1 := news.name(news_id => :p_news_id); - end; - }] - aa_equals "Check the return from news.name is correct" $name $p_title - } + aa_call_component db-get-cr-news-row + if {!$retrieval_ok_p} { + aa_error "cr_news column not found for news_id $news_id" + } else { + aa_equals "Check package_id correct" $package_id $_news_package_id + aa_equals "Check archive_date correct" \ + [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ + $p_archive_date + aa_equals "Check approval_user correct" $approval_user $p_approval_user + aa_equals "Check approval_date correct" \ + [string range $approval_date 0 [expr [string length $p_approval_date] - 1]] \ + $p_approval_date + aa_equals "Check approval_ip correct" $approval_ip $p_approval_ip + } + + # + # Retrieve the row from cr_revisions table and check its contents. + # NB: The get_cr_revisions_row populates item_id + # + aa_log "Retrieve cr_revisions row and check its contents" + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row + if {!$retrieval_ok_p} { + aa_error "cr_revisions row not found for news_id (revision_id) $news_id" + } else { + aa_equals "Check title correct" $title $p_title + aa_equals "Check description correct" $description "initial submission" + aa_equals "Check mime_type correct" $mime_type "text/plain" + + # + # Retrieve the row from cr_items table and check its contents. + # + aa_log "Retrieve cr_items row and check its contents" + set p_item_id $item_id + aa_call_component db-get-cr-items-row + if {!$retrieval_ok_p} { + aa_error "cr_items row not found for item_id (revision_id) $news_id" + } else { + aa_equals "Check parent_id correct" $parent_id $_news_cr_news_root_folder_id + aa_equals "Check live_revision correct" $live_revision $news_id + aa_equals "Check latest_revision correct" $latest_revision $news_id + aa_equals "Check publish_status correct" $publish_status "ready" + aa_equals "Check content_type correct" $content_type "news" + + # + # Call the news.name function to retrieve the item name. + # + aa_log "Call news.name function to retrieve title of content revision" + set p_news_id $news_id + set name [db_exec_plsql news-name { + begin + :1 := news.name(news_id => :p_news_id); + end; + }] + aa_equals "Check the return from news.name is correct" $name $p_title + } + } } - } } { - # - # Delete the item. - # - if {$item_id != -1} { - aa_log "Deleting the item." - set p_item_id $item_id - aa_call_component db-news-item-delete + # + # Delete the item. + # + if {$item_id != -1} { + aa_log "Deleting the item." + set p_item_id $item_id + aa_call_component db-news-item-delete - aa_log "Checking all table data removed." - set p_news_id $news_id - aa_call_component db-get-cr-news-row - aa_false "Check the cr_news row was deleted" {$retrieval_ok_p} + aa_log "Checking all table data removed." + set p_news_id $news_id + aa_call_component db-get-cr-news-row + aa_false "Check the cr_news row was deleted" {$retrieval_ok_p} - set p_item_id $item_id - aa_call_component db-get-cr-items-row - aa_false "Check the cr_items row was deleted" {$retrieval_ok_p} - - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row - aa_false "Check the cr_revisions row was deleted" {$retrieval_ok_p} - } + set p_item_id $item_id + aa_call_component db-get-cr-items-row + aa_false "Check the cr_items row was deleted" {$retrieval_ok_p} + + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row + aa_false "Check the cr_revisions row was deleted" {$retrieval_ok_p} + } } @@ -851,263 +851,263 @@ # Testcase check-news-revision # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } -on_error { - This test may have failed because of a bug in the - content_item.get_latest_revision - database function; where two revisions are created so quickly that they - have the same creation_date value associated with them. This breaks the - logic of the get latest revision function. This problem was found in the - Alpha release of the OpenACS, and may have been fixed in later releases. -

- A posting - here at the OpenACS bboard was started concerning this problem. + This test may have failed because of a bug in the + content_item.get_latest_revision + database function; where two revisions are created so quickly that they + have the same creation_date value associated with them. This breaks the + logic of the get latest revision function. This problem was found in the + Alpha release of the OpenACS, and may have been fixed in later releases. +

+ A posting + here at the OpenACS bboard was started concerning this problem. } "db-check-news-revision" { - Checks the news database functions for revision creation, deletion and management. - Tests news.revison_new, news.revision_delete, - news.revision_set_active functions. + Checks the news database functions for revision creation, deletion and management. + Tests news.revison_new, news.revision_delete, + news.revision_set_active functions. } { - set news_id -1 + set news_id -1 - if {!$_news_package_mounted_p} { - aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" - } else { - # - # Create the article - # - set p_title "My title" - set p_text "My text" - set p_package_id $_news_package_id - set p_is_live "t" - set p_full_details "t" - aa_call_component db-news-globals - aa_call_component db-news-item-create - } -} { - aa_true "Check the news_id is populated" {$news_id != -1} - set item_id -1 - set revision1_id -1 - set revision2_id -1 - if {$news_id != -1} { - aa_log "News id: $news_id" - # - # Retrieve the row from cr_revisions table to get item_id - # - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row - set revision1_id $news_id - - # - # Check the first revision is the latest, and is live. - # - set p_item_id $item_id - aa_call_component db-news-get-live-revision - aa_call_component db-news-get-latest-revision - aa_equals "Confirm that the initial revision of the article is the latest" \ - $latest_revision_id $revision1_id - aa_equals "Confirm that the initial revision of the article is live" \ - $live_revision_id $revision1_id - - # - # Create a new revision of the news article. - # - set p_item_id $item_id - set p_title "My title 2" - set p_text "My text 2" - set p_description "Description 2" - set p_package_id $_news_package_id - set p_full_details "t" - set p_make_active_revision_p "t" - aa_call_component db-news-revision-create - set revision2_id $revision_id - - # - # Retrieve the cr_news column for the new revision - # - set p_news_id $revision2_id - aa_call_component db-get-cr-news-row - if {!$retrieval_ok_p} { - aa_error "cr_news row not found for new revision news_id $revision2_id" + if {!$_news_package_mounted_p} { + aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" } else { - aa_log "Check the cr_news fields for the second revision" - aa_equals "Check package_id correct" $package_id $_news_package_id - aa_equals "Check archive_date correct" \ - [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ - $p_archive_date - aa_equals "Check approval_user correct" $approval_user $p_approval_user - aa_equals "Check approval_date correct" \ - [string range $approval_date 0 [expr [string length $p_approval_date] - 1]] \ - $p_approval_date - aa_equals "Check approval_ip correct" $approval_ip $p_approval_ip - - # - # Retrieve the row from cr_revisions table to get item_id - # - set p_revision_id $revision2_id - aa_call_component db-get-cr-revisions-row - if {!$retrieval_ok_p} { - aa_error "cr_revisions row not found for new revision revision_id $revision2_id" - } else { - aa_equals "Check revision2 title correct" $title "My title 2" - aa_equals "Check revision2 description correct" $description "Description 2" - aa_equals "Check revision2 mime_type correct" $mime_type "text/plain" - # - # Check the second revision is now the latest, and is live. + # Create the article # - set p_item_id $item_id - aa_call_component db-news-get-live-revision - aa_call_component db-news-get-latest-revision - aa_equals "Confirm that the second revision of the article is the latest" \ - $latest_revision_id $revision2_id - aa_equals "Confirm that the second revision of the article is live" \ - $live_revision_id $revision2_id - + set p_title "My title" + set p_text "My text" + set p_package_id $_news_package_id + set p_is_live "t" + set p_full_details "t" + aa_call_component db-news-globals + aa_call_component db-news-item-create + } +} { + aa_true "Check the news_id is populated" {$news_id != -1} + set item_id -1 + set revision1_id -1 + set revision2_id -1 + if {$news_id != -1} { + aa_log "News id: $news_id" # - # Okay, lets set the original revision as active. + # Retrieve the row from cr_revisions table to get item_id # - aa_log "Reset the first revision as live" - set p_revision_id $revision1_id - aa_call_component db-news-revision-set-active + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row + set revision1_id $news_id # - # Check the second revision is still the latest, but the first one is live. + # Check the first revision is the latest, and is live. # set p_item_id $item_id aa_call_component db-news-get-live-revision aa_call_component db-news-get-latest-revision - aa_equals "Confirm that the second revision of the article is still the latest" \ - $latest_revision_id $revision2_id - aa_equals "Confirm that the first revision of the article is now live" \ - $live_revision_id $revision1_id + aa_equals "Confirm that the initial revision of the article is the latest" \ + $latest_revision_id $revision1_id + aa_equals "Confirm that the initial revision of the article is live" \ + $live_revision_id $revision1_id # - # Delete the second revision + # Create a new revision of the news article. # - aa_log "Delete the second revision" - set p_revision_id $revision2_id - aa_call_component db-news-revision-delete + set p_item_id $item_id + set p_title "My title 2" + set p_text "My text 2" + set p_description "Description 2" + set p_package_id $_news_package_id + set p_full_details "t" + set p_make_active_revision_p "t" + aa_call_component db-news-revision-create + set revision2_id $revision_id # - # Retrieve the row from cr_revisions table to get item_id + # Retrieve the cr_news column for the new revision # - set p_revision_id $revision2_id - aa_call_component db-get-cr-revisions-row - aa_false "Check the revision row was deleted" $retrieval_ok_p - } + set p_news_id $revision2_id + aa_call_component db-get-cr-news-row + if {!$retrieval_ok_p} { + aa_error "cr_news row not found for new revision news_id $revision2_id" + } else { + aa_log "Check the cr_news fields for the second revision" + aa_equals "Check package_id correct" $package_id $_news_package_id + aa_equals "Check archive_date correct" \ + [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ + $p_archive_date + aa_equals "Check approval_user correct" $approval_user $p_approval_user + aa_equals "Check approval_date correct" \ + [string range $approval_date 0 [expr [string length $p_approval_date] - 1]] \ + $p_approval_date + aa_equals "Check approval_ip correct" $approval_ip $p_approval_ip + + # + # Retrieve the row from cr_revisions table to get item_id + # + set p_revision_id $revision2_id + aa_call_component db-get-cr-revisions-row + if {!$retrieval_ok_p} { + aa_error "cr_revisions row not found for new revision revision_id $revision2_id" + } else { + aa_equals "Check revision2 title correct" $title "My title 2" + aa_equals "Check revision2 description correct" $description "Description 2" + aa_equals "Check revision2 mime_type correct" $mime_type "text/plain" + + # + # Check the second revision is now the latest, and is live. + # + set p_item_id $item_id + aa_call_component db-news-get-live-revision + aa_call_component db-news-get-latest-revision + aa_equals "Confirm that the second revision of the article is the latest" \ + $latest_revision_id $revision2_id + aa_equals "Confirm that the second revision of the article is live" \ + $live_revision_id $revision2_id + + # + # Okay, lets set the original revision as active. + # + aa_log "Reset the first revision as live" + set p_revision_id $revision1_id + aa_call_component db-news-revision-set-active + + # + # Check the second revision is still the latest, but the first one is live. + # + set p_item_id $item_id + aa_call_component db-news-get-live-revision + aa_call_component db-news-get-latest-revision + aa_equals "Confirm that the second revision of the article is still the latest" \ + $latest_revision_id $revision2_id + aa_equals "Confirm that the first revision of the article is now live" \ + $live_revision_id $revision1_id + + # + # Delete the second revision + # + aa_log "Delete the second revision" + set p_revision_id $revision2_id + aa_call_component db-news-revision-delete + + # + # Retrieve the row from cr_revisions table to get item_id + # + set p_revision_id $revision2_id + aa_call_component db-get-cr-revisions-row + aa_false "Check the revision row was deleted" $retrieval_ok_p + } + } } - } } { - # - # Delete the item. - # - if {$item_id != -1} { - aa_log "Deleting item." - set p_item_id $item_id - aa_call_component db-news-item-delete - } + # + # Delete the item. + # + if {$item_id != -1} { + aa_log "Deleting item." + set p_item_id $item_id + aa_call_component db-news-item-delete + } } ################################################################################ # # Testcase check-news-archive # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } "db-check-news-archive" { - Checks the news database functions make_permanent and news_archive. + Checks the news database functions make_permanent and news_archive. } { - set news_id -1 + set news_id -1 - if {!$_news_package_mounted_p} { - aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" - } else { - # - # Attempt to create the article - # - set p_title "My title" - set p_text "My text" - set p_package_id $_news_package_id - set p_is_live "t" - set p_full_details "t" - aa_call_component db-news-globals - aa_call_component db-news-item-create - } + if {!$_news_package_mounted_p} { + aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" + } else { + # + # Attempt to create the article + # + set p_title "My title" + set p_text "My text" + set p_package_id $_news_package_id + set p_is_live "t" + set p_full_details "t" + aa_call_component db-news-globals + aa_call_component db-news-item-create + } } { - aa_true "Check the news_id is populated" {$news_id != -1} - set item_id -1 - if {$news_id != -1} { - aa_log "News id: $news_id" - # - # Retrieve the row from cr_revisions table to get item_id - # - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row + aa_true "Check the news_id is populated" {$news_id != -1} + set item_id -1 + if {$news_id != -1} { + aa_log "News id: $news_id" + # + # Retrieve the row from cr_revisions table to get item_id + # + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row - # - # Call make_permanent to nullify the archive_date. - # - set p_item_id $item_id - aa_call_component db-news-make-permanent + # + # Call make_permanent to nullify the archive_date. + # + set p_item_id $item_id + aa_call_component db-news-make-permanent - # - # Retrieve the news row to check its archive date. - # - set p_news_id $news_id - aa_call_component db-get-cr-news-row - aa_equals "Check the archive_date is null" $archive_date [db_null] + # + # Retrieve the news row to check its archive date. + # + set p_news_id $news_id + aa_call_component db-get-cr-news-row + aa_equals "Check the archive_date is null" $archive_date [db_null] - # - # Set the archive period, providing an explicit archive date. - # - set p_item_id $item_id - set p_archive_date "2005-11-05" - aa_call_component db-news-archive + # + # Set the archive period, providing an explicit archive date. + # + set p_item_id $item_id + set p_archive_date "2005-11-05" + aa_call_component db-news-archive - # - # Retrieve the news row to check its archive date. - # - set p_news_id $news_id - aa_call_component db-get-cr-news-row - aa_equals "Check the explicitly set archive_date is $p_archive_date" \ - [string range $archive_date 0 [expr [string length $p_archive_date] - 1]] \ - $p_archive_date + # + # Retrieve the news row to check its archive date. + # + set p_news_id $news_id + aa_call_component db-get-cr-news-row + aa_equals "Check the explicitly set archive_date is $p_archive_date" \ + [string range $archive_date 0 [expr [string length $p_archive_date] - 1]] \ + $p_archive_date - # - # Set the archive period, relying on the overloaded "default" function for - # archive_date. - # - set p_item_id $item_id - set p_archive_date "" - aa_call_component db-news-archive + # + # Set the archive period, relying on the overloaded "default" function for + # archive_date. + # + set p_item_id $item_id + set p_archive_date "" + aa_call_component db-news-archive + # + # Retrieve the news row to check its archive date. + # + # Note, this could potentially fail if for some reason it executes over + # midnight...... + # + set p_news_id $news_id + aa_call_component db-get-cr-news-row + aa_true "Check the cr_news row was found" $retrieval_ok_p + set todays_date [clock format [clock seconds] -format "%Y-%m-%d"] + aa_equals "Check the explicitly set archive_date is $todays_date" \ + [string range $archive_date 0 [expr [string length $todays_date] - 1]] \ + $todays_date + } +} { # - # Retrieve the news row to check its archive date. + # Delete the item. # - # Note, this could potentially fail if for some reason it executes over - # midnight...... - # - set p_news_id $news_id - aa_call_component db-get-cr-news-row - aa_true "Check the cr_news row was found" $retrieval_ok_p - set todays_date [clock format [clock seconds] -format "%Y-%m-%d"] - aa_equals "Check the explicitly set archive_date is $todays_date" \ - [string range $archive_date 0 [expr [string length $todays_date] - 1]] \ - $todays_date - } -} { - # - # Delete the item. - # - if {$item_id != -1} { - aa_log "Deleting the item." - set p_item_id $item_id - aa_call_component db-news-item-delete - } + if {$item_id != -1} { + aa_log "Deleting the item." + set p_item_id $item_id + aa_call_component db-news-item-delete + } } @@ -1116,152 +1116,152 @@ # Testcase check-news-set-approve # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } "db-check-news-set-approve" { - Checks the news database function for approving/unapproving news articles. - Tests news.set_approve function. + Checks the news database function for approving/unapproving news articles. + Tests news.set_approve function. } { - set news_id -1 + set news_id -1 - if {!$_news_package_mounted_p} { - aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" - } else { - # - # Create the article - # - set p_title "My title" - set p_text "My text" - set p_package_id $_news_package_id - set p_is_live "t" - set p_full_details "t" - aa_call_component db-news-globals - aa_call_component db-news-item-create - } + if {!$_news_package_mounted_p} { + aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" + } else { + # + # Create the article + # + set p_title "My title" + set p_text "My text" + set p_package_id $_news_package_id + set p_is_live "t" + set p_full_details "t" + aa_call_component db-news-globals + aa_call_component db-news-item-create + } } { - aa_true "Check the news_id is populated" {$news_id != -1} - set item_id -1 - set revision1_id -1 - set revision2_id -1 - if {$news_id != -1} { - # - # Retrieve the row from cr_revisions table to get item_id - # - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row - set revision1_id $news_id + aa_true "Check the news_id is populated" {$news_id != -1} + set item_id -1 + set revision1_id -1 + set revision2_id -1 + if {$news_id != -1} { + # + # Retrieve the row from cr_revisions table to get item_id + # + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row + set revision1_id $news_id - # - # Create a new revision of the news article. - # - set p_item_id $item_id - set p_title "My title 2" - set p_text "My text 2" - set p_description "Description 2" - set p_package_id $_news_package_id - set p_full_details "t" - set p_make_active_revision_p "t" - aa_call_component db-news-revision-create - set revision2_id $revision_id + # + # Create a new revision of the news article. + # + set p_item_id $item_id + set p_title "My title 2" + set p_text "My text 2" + set p_description "Description 2" + set p_package_id $_news_package_id + set p_full_details "t" + set p_make_active_revision_p "t" + aa_call_component db-news-revision-create + set revision2_id $revision_id - # - # Unapprove revision2. - # - set p_revision_id $revision2_id - set p_approve_p "f" - aa_call_component db-news-set-approve + # + # Unapprove revision2. + # + set p_revision_id $revision2_id + set p_approve_p "f" + aa_call_component db-news-set-approve - # - # Retrieve the cr_news column for revision 2 - # - set p_news_id $revision2_id - aa_call_component db-get-cr-news-row - if {!$retrieval_ok_p} { - aa_error "cr_news row not found for new revision news_id $revision2_id" - } else { - aa_equals "Check the archive_date is null" $archive_date [db_null] - aa_equals "Check the approval_date is null" $approval_date [db_null] - aa_equals "Check the aprroval_user is null" $approval_user [db_null] - aa_equals "Check the approval_ip is null" $approval_ip [db_null] - } + # + # Retrieve the cr_news column for revision 2 + # + set p_news_id $revision2_id + aa_call_component db-get-cr-news-row + if {!$retrieval_ok_p} { + aa_error "cr_news row not found for new revision news_id $revision2_id" + } else { + aa_equals "Check the archive_date is null" $archive_date [db_null] + aa_equals "Check the approval_date is null" $approval_date [db_null] + aa_equals "Check the aprroval_user is null" $approval_user [db_null] + aa_equals "Check the approval_ip is null" $approval_ip [db_null] + } - # - # Retrieve the row from cr_revisions table to check publish date. - # - set p_revision_id $revision2_id - aa_call_component db-get-cr-revisions-row - if {!$retrieval_ok_p} { - aa_error "cr_revisions row not found for new revision revision_id $revision2_id" - } else { - aa_equals "Check revision 2 publish_date is null" $publish_date [db_null] - } + # + # Retrieve the row from cr_revisions table to check publish date. + # + set p_revision_id $revision2_id + aa_call_component db-get-cr-revisions-row + if {!$retrieval_ok_p} { + aa_error "cr_revisions row not found for new revision revision_id $revision2_id" + } else { + aa_equals "Check revision 2 publish_date is null" $publish_date [db_null] + } - # - # Approve revision 1 and set it as the live revision. - # - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2001-11-01" - set p_archive_date "2001-11-02" - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2001-11-01" + set p_archive_date "2001-11-02" + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the second revision is now live. - # - set p_item_id $item_id - aa_call_component db-news-get-live-revision - aa_equals "Confirm that revision 1 of the article is now live" \ - $live_revision_id $revision1_id + # + # Check the second revision is now live. + # + set p_item_id $item_id + aa_call_component db-news-get-live-revision + aa_equals "Confirm that revision 1 of the article is now live" \ + $live_revision_id $revision1_id - # - # Retrieve the cr_news column for revision 1 - # - set p_news_id $revision1_id - aa_call_component db-get-cr-news-row - if {!$retrieval_ok_p} { - aa_error "cr_news row not found for new revision news_id $revision1_id" - } else { - aa_equals "Check the archive_date is correct" \ - [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ - $p_archive_date - aa_equals "Check the approval_date is correct" \ - [string range $approval_date 0 [expr [string length $p_approval_date]-1]] \ - $p_approval_date - aa_equals "Check the aprroval_user is correct" \ - [string range $approval_user 0 [expr [string length $p_approval_user]-1]] \ - $p_approval_user - aa_equals "Check the approval_ip is correct" \ - [string range $approval_ip 0 [expr [string length $p_approval_ip]-1]] \ - $p_approval_ip - } + # + # Retrieve the cr_news column for revision 1 + # + set p_news_id $revision1_id + aa_call_component db-get-cr-news-row + if {!$retrieval_ok_p} { + aa_error "cr_news row not found for new revision news_id $revision1_id" + } else { + aa_equals "Check the archive_date is correct" \ + [string range $archive_date 0 [expr [string length $p_archive_date]-1]] \ + $p_archive_date + aa_equals "Check the approval_date is correct" \ + [string range $approval_date 0 [expr [string length $p_approval_date]-1]] \ + $p_approval_date + aa_equals "Check the aprroval_user is correct" \ + [string range $approval_user 0 [expr [string length $p_approval_user]-1]] \ + $p_approval_user + aa_equals "Check the approval_ip is correct" \ + [string range $approval_ip 0 [expr [string length $p_approval_ip]-1]] \ + $p_approval_ip + } + # + # Retrieve the row from cr_revisions table to check publish date. + # + set p_revision_id $revision1_id + aa_call_component db-get-cr-revisions-row + if {!$retrieval_ok_p} { + aa_error "cr_revisions row not found for new revision revision_id $revision1_id" + } else { + aa_equals "Check revision 1 publish_date is null" \ + [string range $publish_date 0 [expr [string length $p_publish_date]-1]] \ + $p_publish_date + } + } +} { # - # Retrieve the row from cr_revisions table to check publish date. + # Delete the item. # - set p_revision_id $revision1_id - aa_call_component db-get-cr-revisions-row - if {!$retrieval_ok_p} { - aa_error "cr_revisions row not found for new revision revision_id $revision1_id" - } else { - aa_equals "Check revision 1 publish_date is null" \ - [string range $publish_date 0 [expr [string length $p_publish_date]-1]] \ - $p_publish_date + if {$item_id != -1} { + aa_log "Deleting item." + set p_item_id $item_id + aa_call_component db-news-item-delete } - } -} { - # - # Delete the item. - # - if {$item_id != -1} { - aa_log "Deleting item." - set p_item_id $item_id - aa_call_component db-news-item-delete - } } @@ -1270,176 +1270,176 @@ # Testcase check-news-status # aa_register_case -cats { - db + db } -init_classes { - mount-news-package + mount-news-package } "db-check-news-status" { - Checks the news database function that returns information about a news article publish - and archive status. - Tests news.status function. + Checks the news database function that returns information about a news article publish + and archive status. + Tests news.status function. } { - set news_id -1 + set news_id -1 - if {!$_news_package_mounted_p} { - aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" - } else { - # - # Create the article - # - set p_title "My title" - set p_text "My text" - set p_package_id $_news_package_id - set p_is_live "t" - set p_full_details "t" - aa_call_component db-news-globals - aa_call_component db-news-item-create - } + if {!$_news_package_mounted_p} { + aa_error "News package not mounted, error from initialiser: $_news_package_mounted_err" + } else { + # + # Create the article + # + set p_title "My title" + set p_text "My text" + set p_package_id $_news_package_id + set p_is_live "t" + set p_full_details "t" + aa_call_component db-news-globals + aa_call_component db-news-item-create + } } { - aa_true "Check the news_id is populated" {$news_id != -1} - set item_id -1 - set revision1_id -1 - set revision2_id -1 - if {$news_id != -1} { - # - # Retrieve the row from cr_revisions table to get item_id - # - set p_revision_id $news_id - aa_call_component db-get-cr-revisions-row - set revision1_id $news_id + aa_true "Check the news_id is populated" {$news_id != -1} + set item_id -1 + set revision1_id -1 + set revision2_id -1 + if {$news_id != -1} { + # + # Retrieve the row from cr_revisions table to get item_id + # + set p_revision_id $news_id + aa_call_component db-get-cr-revisions-row + set revision1_id $news_id - # - # Unapprove revision 1 and set it as the live revision. - # - aa_log "Unapproving revision 1, setting publish_date null, archive_date null" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date [db_null] - set p_archive_date [db_null] - set p_approval_user [ad_conn "user_id"] - set p_approval_date [db_null] - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Unapprove revision 1 and set it as the live revision. + # + aa_log "Unapproving revision 1, setting publish_date null, archive_date null" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date [db_null] + set p_archive_date [db_null] + set p_approval_user [ad_conn "user_id"] + set p_approval_date [db_null] + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the status of revision 1. - # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Unapproved status" $status unapproved + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Unapproved status" $status unapproved - # - # Approve revision 1 and set it as the live revision. - # - aa_log "Approving revision 1, setting archive date as null" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2005-11-01" - set p_archive_date [db_null] - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + aa_log "Approving revision 1, setting archive date as null" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2005-11-01" + set p_archive_date [db_null] + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the status of revision 1. - # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Going live no archive status" $status going_live_no_archive + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Going live no archive status" $status going_live_no_archive - # - # Approve revision 1 and set it as the live revision. - # - aa_log "Approving revision 1, setting archive date as future value" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2005-11-01" - set p_archive_date "2005-11-10" - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + aa_log "Approving revision 1, setting archive date as future value" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2005-11-01" + set p_archive_date "2005-11-10" + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the status of revision 1. - # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Going live scheduled for archive status" $status going_live_with_archive + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Going live scheduled for archive status" $status going_live_with_archive - # - # Approve revision 1 and set it as the live revision. - # - aa_log "Approving revision 1, setting publish date in past, archive date null" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2000-11-01" - set p_archive_date [db_null] - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + aa_log "Approving revision 1, setting publish date in past, archive date null" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2000-11-01" + set p_archive_date [db_null] + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the status of revision 1. - # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Published no archive status" $status published_no_archive + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Published no archive status" $status published_no_archive - # - # Approve revision 1 and set it as the live revision. - # - aa_log "Approving revision 1, setting publish date in past, archive date in past" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2000-11-01" - set p_archive_date "2000-11-01" - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + aa_log "Approving revision 1, setting publish date in past, archive date in past" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2000-11-01" + set p_archive_date "2000-11-01" + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve - # - # Check the status of revision 1. - # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Archived status" $status archived + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Archived status" $status archived - # - # Approve revision 1 and set it as the live revision. - # - aa_log "Approving revision 1, setting publish date in past, archive date in future" - set p_revision_id $revision1_id - set p_approve_p "t" - set p_publish_date "2000-11-01" - set p_archive_date "2005-11-01" - set p_approval_user [ad_conn "user_id"] - set p_approval_date "2001-11-03" - set p_approval_ip [ad_conn "peeraddr"] - set p_live_revision_p "t" - aa_call_component db-news-set-approve + # + # Approve revision 1 and set it as the live revision. + # + aa_log "Approving revision 1, setting publish date in past, archive date in future" + set p_revision_id $revision1_id + set p_approve_p "t" + set p_publish_date "2000-11-01" + set p_archive_date "2005-11-01" + set p_approval_user [ad_conn "user_id"] + set p_approval_date "2001-11-03" + set p_approval_ip [ad_conn "peeraddr"] + set p_live_revision_p "t" + aa_call_component db-news-set-approve + # + # Check the status of revision 1. + # + set p_news_id $revision1_id + aa_call_component db-news-status + aa_equals "Published with archive" $status published_with_archive + } +} { # - # Check the status of revision 1. + # Delete the item. # - set p_news_id $revision1_id - aa_call_component db-news-status - aa_equals "Published with archive" $status published_with_archive - } -} { - # - # Delete the item. - # - if {$item_id != -1} { - aa_log "Deleting item." - set p_item_id $item_id - aa_call_component db-news-item-delete - } + if {$item_id != -1} { + aa_log "Deleting item." + set p_item_id $item_id + aa_call_component db-news-item-delete + } }