if { [catch { # Source Tcl libraries set script_dir [file dirname [info script]] source "${script_dir}/../../../etc/install/tcl/test-procs.tcl" source "${script_dir}/simulation-test-procs.tcl" # Test Execution START # Demo data start set actors_list { Teacher Student Agent1 Agent2 } array set characters { Bernadette "Bernadette" MOTORHOME "MOTORHOME" "A of Lawfirm X" "Her lawyer" "A of Lawfirm Y" "Its lawyer" "B of Lawfirm X" "Partner firm X" "B of Lawfirm Y" "Partner firm Y" "C of Lawfirm X" "Secretary firm X" "C of Lawfirm Y" "Secretary firm Y" "Portal" "Library" } array set properties { "Demo Property 1" "Demo Property 1" "Demo Property 2" "Demo Property 2" } array set tasks { "Ask information from Bernadette" {assigned_role "Her lawyer" recipient_role "Bernadette"} "Ask information from MOTORHOME" {assigned_role "Her lawyer" recipient_role "MOTORHOME"} "Ask information from opponent's lawyer 1" {assigned_role "Its lawyer" recipient_role "Her lawyer"} "Ask information from opponent's lawyer 2" {assigned_role "Her lawyer" recipient_role "Its lawyer"} "Ask information from library" {assigned_role "Her lawyer" recipient_role "Library"} "Ask information from partner" {assigned_role "Her lawyer" recipient_role "Partner firm X"} "Intervene" {assigned_role "Partner firm X" recipient_role "Her lawyer"} "Reply to intervention" {assigned_role "Her lawyer" recipient_role "Partner firm X"} "Give information as Bernadette" {assigned_role "Bernadette" recipient_role "Her lawyer"} "Give information as Motorhome" {assigned_role "MOTORHOME" recipient_role "Her lawyer"} "Make/edit draft report" {assigned_role "Her lawyer" recipient_role "Her lawyer"} "Edit draft report" {assigned_role "Her lawyer" recipient_role "Her lawyer"} "Give information to opponent's lawyer" {assigned_role "Her lawyer" recipient_role "Its lawyer"} "Send final report" {assigned_role "Her lawyer" recipient_role "Partner firm X"} "Send draft report" {assigned_role "Her lawyer" recipient_role "Partner firm X"} } # Demo data end ::twt::log_section "Login the site wide admin" ::twt::user::login_site_wide_admin ::twt::log_section "Add demo users to system" for {set i 1} {$i <= 20} {incr i} { ::twt::simulation::add_user -first_names Demo -last_name "User $i" } ::twt::log_section "Add demo groups" for {set i 1} {$i <= 5} {incr i} { do_request "/admin/group-types/one?group_type=group" link follow ~u "parties/new" field find ~n group.group_name field fill "Demo group $i" form submit } ::twt::log_section "Add demo users to groups" for {set i 1} {$i <= 5} {incr i} { set add_user_url [::twt::simulation::add_user_to_group_url -group_name "Demo group $i"] for {set user_count [expr ($i - 1)*4 + 1]} {$user_count <= [expr $i*4]} {incr user_count} { ::twt::simulation::add_user_to_group -add_user_url $add_user_url -user_name "Demo User $user_count" } } ::twt::log_section "Create a demo user in each permission group" foreach group_name { "Sim Admins" "Template Authors" "Case Authors" "Service Admins" "City Admins" "Actors" } { set first_names $group_name set last_name "Test User" ::twt::simulation::add_user -first_names $first_names -last_name $last_name ::twt::simulation::add_user_to_group -group_name $group_name -user_name "$first_names $last_name" } ::twt::log_section "Create an image object" do_request /simulation/citybuild link follow ~u object-edit form find ~n object field find ~n content_type field select2 ~v image field find ~n __refreshing_p field fill 1 form submit field find ~n title field fill "New Jersey Lawyers" field find ~n description field fill "New Jersey Lawyers and Consumers" field find ~n content_file field fill [::twt::config::serverroot]/packages/simulation/test/new-jersey-lawyer-logo.gif form submit ::twt::log_section "Create characters" foreach character_name [array names characters] { ::twt::simulation::add_object -type character -title $character_name } ::twt::log_section "Create properties" foreach property_name [array names properties] { ::twt::simulation::add_object -type sim_prop -title $property_name } ::twt::log_section "Create simulation template" do_request /simulation/simbuild/template-edit set template_name "Elementary Private Law" field fill $template_name ~n pretty_name field find ~n template_ready_p field fill t form submit ::twt::log_section "Create roles for template" ::twt::simulation::visit_template_page $template_name link follow ~u role-edit set add_role_url [response url] foreach character_name [array names characters] { do_request $add_role_url field find ~n name field fill $characters($character_name) form submit } ::twt::log_section "Add tasks to template" ::twt::simulation::visit_template_page $template_name link follow ~u task-edit set add_task_url [response url] foreach task_name [array names tasks] { array set task $tasks($task_name) do_request $add_task_url field find ~n name field fill $task_name field find ~n assigned_role field select $task(assigned_role) field find ~n recipient_role field select $task(recipient_role) field find ~n description field fill "This is the task description for task $task_name" form submit } } result] } { global errorInfo # Output error stack trace and HTML response body ::twt::log $result ::twt::log "*** Tcl TRACE ***" ::twt::log $errorInfo ::twt::log "The response body is: [response body]" error "Test failed: $result" }