Index: openacs-4/packages/forums/tcl/test/forums-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/forums/tcl/test/forums-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/forums/tcl/test/forums-procs.tcl 15 Nov 2003 15:30:06 -0000 1.1 +++ openacs-4/packages/forums/tcl/test/forums-procs.tcl 13 Jan 2005 13:58:16 -0000 1.2 @@ -6,7 +6,7 @@ @cvs-id $Id$ } -aa_register_case forum_new { +aa_register_case -cats {api smoke} forum_new { Test the forum::new proc. } { @@ -27,7 +27,7 @@ } } -aa_register_case forum_message_new { +aa_register_case -cats {api smoke} forum_message_new { Test the forum::message::new proc. } { @@ -53,3 +53,94 @@ aa_equals "message was created succesfully" $success_p 1 } } + +aa_register_case -cats {db smoke} forum_count_test { + Test the thread count and reply count tracking code. +} { + + aa_run_with_teardown \ + -rollback \ + -test_code { + + # Create open forum + set forum_id [forum::new \ + -name foo \ + -package_id [ad_conn package_id]] + + forum::get -forum_id $forum_id -array forum + aa_equals "New forum has zero approved threads" $forum(approved_thread_count) 0 + aa_equals "New forum has zero threads" $forum(thread_count) 0 + + # Create message + set message_id [forum::message::new \ + -forum_id $forum_id \ + -subject foo \ + -content foo] + + forum::get -forum_id $forum_id -array forum + aa_equals "After post forum has one approved thread" $forum(approved_thread_count) 1 + aa_equals "After post forum has one threads" $forum(thread_count) 1 + + forum::message::get -message_id $message_id -array message + aa_equals "New post has zero approved replies" $message(approved_reply_count) 0 + aa_equals "New post has zero threads" $message(reply_count) 0 + + set reply_id [forum::message::new \ + -forum_id $forum_id \ + -parent_id $message_id \ + -subject foo \ + -content foo] + + forum::get -forum_id $forum_id -array forum + aa_equals "After reply forum has one approved thread" $forum(approved_thread_count) 1 + aa_equals "After reply forum has one thread" $forum(thread_count) 1 + + forum::message::get -message_id $message_id -array message + aa_equals "After reply post has one approved replies" $message(approved_reply_count) 1 + aa_equals "After reply post has one reply" $message(reply_count) 1 + + # Create moderated forum + set forum_id [forum::new \ + -name bar \ + -posting_policy moderated \ + -package_id [ad_conn package_id]] + + # Create message + set message_id [forum::message::new \ + -forum_id $forum_id \ + -subject "foo" \ + -content "foo"] + + forum::get -forum_id $forum_id -array forum + aa_equals "After post moderated forum has zero approved threads" $forum(approved_thread_count) 0 + aa_equals "After post moderated forum has one thread" $forum(thread_count) 1 + + set reply_id [forum::message::new \ + -forum_id $forum_id \ + -parent_id $message_id \ + -subject "foo" \ + -content "foo"] + + forum::message::get -message_id $message_id -array message + aa_equals "After reply moderated post has zero approved replies" $message(approved_reply_count) 0 + aa_equals "After reply moderated post has one reply" $message(reply_count) 1 + + forum::message::set_state -message_id $message_id -state approved + + forum::get -forum_id $forum_id -array forum + aa_equals "After approval moderated forum has one approved thread" $forum(approved_thread_count) 1 + aa_equals "After approval moderated forum has one thread" $forum(thread_count) 1 + + forum::message::set_state -message_id $reply_id -state approved + + forum::message::get -message_id $message_id -array message + aa_equals "After reply approval post has one approved reply" $message(approved_reply_count) 1 + aa_equals "After reply approval post has one reply" $message(reply_count) 1 + + forum::message::delete -message_id $message_id + + forum::get -forum_id $forum_id -array forum + aa_equals "After deletion moderated forum has zero approved threads" $forum(approved_thread_count) 0 + aa_equals "After deletion moderated forum has zero threads" $forum(thread_count) 0 + } +}