caldav::test::basic_setup (private)

 caldav::test::basic_setup [ -user_id user_id ] [ -once ] [ -private ] \
    [ calendar_name ]

Defined in packages/caldav/tcl/test/caldav-test-procs.tcl

Create a simple calendar with a few items for testing purposes.

Switches:
-user_id (optional)
-once (optional, boolean)
-private (optional, boolean, defaults to "false")
Parameters:
calendar_name (optional, defaults to "test_calendar")

Partial Call Graph (max 5 caller/called nodes):
%3 test_basic_caldav_web_request basic_caldav_web_request (test caldav) caldav::test::basic_setup caldav::test::basic_setup test_basic_caldav_web_request->caldav::test::basic_setup aa_log aa_log (public) caldav::test::basic_setup->aa_log aa_true aa_true (public) caldav::test::basic_setup->aa_true acs::test::user::create acs::test::user::create (public) caldav::test::basic_setup->acs::test::user::create calendar::create calendar::create (public) caldav::test::basic_setup->calendar::create calendar::item::add_recurrence calendar::item::add_recurrence (public) caldav::test::basic_setup->calendar::item::add_recurrence

Testcases:
basic_caldav_web_request
Source code:

        if {$user_id eq ""} {
            #
            # We use here a password to be able to connect to this
            # client also via caldav from external clients.
            #
            set email caldav-test-user@test.test
            set user_info [::acs::test::user::create  -email $email  -password cal789dav]
            aa_log "USER created: $user_info"
            set user_id [dict get $user_info user_id]
            set calendar_name "private calendar of $email"

            #
            # Check, if this user has already a private calendar
            #
            set priv_calendar_id [::xo::dc get_value get_calendar {
                select calendar_id from calendars
                where  calendar_name = :calendar_name
                and    private_p = true
                and    owner_id = :user_id
            } 0]
            aa_log "select calendar $calendar_name for user $user_id returns $priv_calendar_id"

            if {$priv_calendar_id == 0} {
                #
                # This user does not have a private calendar, create
                # one with a simple item.
                #
                set priv_calendar_id [calendar::create $user_id true $calendar_name]
                aa_log "created private calendar $priv_calendar_id "
                aa_true "valid calendar id" {$priv_calendar_id > 0}
            } else  {
                set priv_cal_item_ids [::xo::dc list get_calitems {
                    select c.cal_item_id from cal_items c where on_which_calendar = :priv_calendar_id
                }]
                aa_log "initial calitems for $priv_calendar_id: $priv_cal_item_ids"
                foreach cal_item_id $priv_cal_item_ids {
                    calendar::item::delete -cal_item_id $cal_item_id
                }
            }

            #
            # add private calendar items
            #
            set cal_item_id1 [calendar::item::new  -start_date "2019-04-20 13:19:33.264032+02"  -end_date   "2019-04-20 14:19:33.264032+02"  -name "remember!"  -description "my first private entry"  -calendar_id $priv_calendar_id]

            #
            # recurring item
            #
            set cal_item_id2 [calendar::item::new  -start_date "2019-01-01 16:00:00.0+02"  -end_date   "2019-01-01 17:00:00.0+02"  -name "My recurring entry"  -description "This is a private recurring entry"  -calendar_id $priv_calendar_id]
            set recurrence_id [calendar::item::add_recurrence  -cal_item_id $cal_item_id2  -interval_type "day"  -every_n 1  -days_of_week ""  -recur_until "2019-01-31"]
            #
            # all-day event
            #
            set cal_item_id3 [calendar::item::new  -start_date "2019-01-02 00:00:00"  -end_date   "2019-01-02 00:00:00"  -name "Private All day long"  -description "private all day long entry"  -calendar_id $priv_calendar_id]

        }
        set priv_cal_item_ids [::xo::dc list get_calitems {
            select c.cal_item_id from cal_items c where on_which_calendar = :priv_calendar_id
        }]
        aa_log "found [llength $priv_cal_item_ids] calendar items in private calendar $priv_calendar_id"

        #
        # If we have such a test calendar already, just get the cal_items.
        #
        set calendar_name "test_calendar"

        set calendar_id [::xo::dc get_value get_calendar {
            select calendar_id from calendars
            where  calendar_name = :calendar_name
            and    private_p = :private_p
            and    owner_id = :user_id
        } 0]

        if {$calendar_id > 0} {

            set cal_item_ids [::xo::dc list get_calitems {
                select c.cal_item_id from cal_items c where on_which_calendar = :calendar_id
            }]
            aa_log "found [llength $cal_item_ids] calendar items in calendar $calendar_id"
            foreach cal_item_id $cal_item_ids {
                calendar::item::delete -cal_item_id $cal_item_id
            }

        } else {
            #
            # Create test calendar
            #
            set calendar_id [calendar::create $user_id false $calendar_name]
            aa_log "created calendar $calendar_id "
            aa_true "valid calendar id" {$calendar_id > 0}
        }
        #
        # Add calendar items
        #
        set cal_item_ids {}

        # make a longer description, add a newline to it.
        set description [string repeat "This is a sample entry. " 10]
        set description $description\n$description

        # simple example from rfc5545
        set summary "Project XYZ Final Review\nConference Room - 3B\nCome Prepared."

        # a name containing characters which have to be escaped
        set name {Chars needing escaping are \ ; , (see rfc5545 Page 45)}

        #
        # simple item
        #
        set cal_item_id1 [calendar::item::new  -start_date "2019-01-01 13:19:33.264032+02"  -end_date   "2019-01-01 14:19:33.264032+02"  -name $name  -description $description  -calendar_id $calendar_id]
        lappend cal_item_ids $cal_item_id1

        #
        # recurring item
        #
        set cal_item_id2 [calendar::item::new  -start_date "2019-01-01 16:00:00.0+02"  -end_date   "2019-01-01 17:00:00.0+02"  -name "My recurring entry"  -description "This is a sample recurring entry"  -calendar_id $calendar_id]
        set recurrence_id [calendar::item::add_recurrence  -cal_item_id $cal_item_id2  -interval_type "day"  -every_n 1  -days_of_week ""  -recur_until "2019-01-31"]
        lappend cal_item_ids $cal_item_id2

        #
        # all-day event
        #
        set cal_item_id3 [calendar::item::new  -start_date "2019-01-02 00:00:00"  -end_date   "2019-01-02 00:00:00"  -name "All day long"  -description $summary  -calendar_id $calendar_id]
        lappend cal_item_ids $cal_item_id3

    return [list  calendar_id $calendar_id  calendar_name $calendar_name  user_id $user_id  user_info $user_info  cal_item_ids $cal_item_ids  priv_calendar_id $priv_calendar_id  priv_cal_item_ids $priv_cal_item_ids]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: