Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.html,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.html 30 Sep 2003 12:10:03 -0000 1.3
+++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.html 7 Aug 2017 23:47:59 -0000 1.4
@@ -1,418 +1,418 @@
-
-
-
-
-Group Admin Pages - Acceptance test
-ACS subsite docs : Group Admin Pages - Acceptance test
-
-
-DEVELOPER DEFINED GROUP TYPES TEST
-
-The first thing we have to test is developer defined group types
-working in conjunction with the user defined ones.
-
-Create the following object type in SQL*Plus.
-
-
-begin
- acs_object_type.create_type (
- supertype => 'group',
- object_type => 'developer_defined_test_type',
- pretty_name => 'Developer defined test type',
- pretty_plural => 'Developer defined test types',
- table_name => 'developer_defined_test_types',
- id_column => 'test_group_id',
- package_name => 'developer_defined_test_type',
- name_method => 'acs_group.name'
- );
-end;
-/
-show errors;
-
-
-create table developer_defined_test_types (
- test_group_id integer primary key references groups(group_id)
-);
-
-
-create or replace package developer_defined_test_type
-as
-
- function new (
- TEST_GROUP_ID IN DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE DEFAULT NULL,
- GROUP_NAME IN GROUPS.GROUP_NAME%TYPE,
- OBJECT_TYPE IN ACS_OBJECTS.OBJECT_TYPE%TYPE DEFAULT 'developer_defined_test_type'
- ) return DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE;
-
- procedure delete (
- TEST_GROUP_ID in DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
- );
-
-end developer_defined_test_type;
-/
-show errors
-
-create or replace package body developer_defined_test_type
-as
-
- function new (
- TEST_GROUP_ID IN DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE DEFAULT NULL,
- GROUP_NAME IN GROUPS.GROUP_NAME%TYPE,
- OBJECT_TYPE IN ACS_OBJECTS.OBJECT_TYPE%TYPE DEFAULT 'developer_defined_test_type'
- ) return DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
- is
- v_TEST_GROUP_ID DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE;
- begin
-
- v_TEST_GROUP_ID := acs_group.new (
- group_id => new.TEST_GROUP_ID,
- GROUP_NAME => new.GROUP_NAME,
- OBJECT_TYPE => new.OBJECT_TYPE
- );
-
- insert into DEVELOPER_DEFINED_TEST_TYPES
- (TEST_GROUP_ID)
- values
- (v_TEST_GROUP_ID);
-
- return v_TEST_GROUP_ID;
-
- end new;
-
- procedure delete (
- TEST_GROUP_ID in DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
- )
- is
- begin
-
- acs_group.del( developer_defined_test_type.delete.TEST_GROUP_ID );
-
- end delete;
-
-end developer_defined_test_type;
-/
-show errors
-
-
-
-
-
- - Go to /admin/group-types and select "Developer defined test types"
-
- Add a permissible rel type of Membership Relation
-
- Add a group named "Test group"
-
-
-
-
-
-GROUP TYPE PAGES BASIC FUNCTIONALITY
-
-(Start at /admin)
-
-
-
-
- - Click on group types
-
-
- Click on Groups
-
-
- Click on "Group name" under "Attributes of this type of group"
-
-
- Ensure that you see the properties of the attribute and that you
- are offered no administrative links
-
-
- Make sure you cannot add attributes or do anything under administration
-
-
- Make sure you see Composition and Membership Relation as the
- default relationship types
-
-
- Add a new group called "Foobar" - Make sure Foobar appears after
- adding the group
-
-
- Click on Foobar
-
-
- Click on nuke this group then click no. Ensure group is not deleted
-
-
- Click on nuke this group then click yes. Group should no longer show up
-
-
- Recreate the group Foobar
-
-
- Click on foobar, then change the name to "ArsDigita"
-
-
- Change ArsDigita's join policy to closed
-
-
-
-DYNAMICALLY EXTENDING GROUPS
-
-(Start at /admin/group-types/)
-
-
-
- - Click on "Define a new group type" and create a new group type
- called "Project" with type "project". Ensure that all the fields
- you see are required (try submitting without entering in
- anything).
-
-
- Define another group type, child of group, named "Test"
-
-
- Define another group type, 'subproject', child of project. Ensure
- that the index page correctly displays the hierarchy.
-
-
- Define a new group type with group type = group. See error
- message saying type already exists.
-
-
- Go back to the index page (/admin/group-types).
-
-
- Click on the Test group type. Make sure that:
-
-
- - there are no groups
-
- Group name attribute is inherited from groups
-
- you have a link to add an attribute
-
- you see Composition and Membership Relation as the default
- relationship types
-
- You have a link to change the default join policy
-
- You have a link to delete the group type
-
-
- - Click on "Add a permissible relationship type." Ensure that you
- are not given a select bar but are offered a link to "create a new
- relationship type"
-
-
- Create a group of type test.
-
-
- Delete the test group type (first verify that the cancel button
- works)
-
-
- Go to the "project" group type
-
-
- Add a required attribute called "Project type" of datatype
- enumeration. Values are "Client" "Toolkit"
-
-
- Add an optional attribute "Monthly fee" of type integer and
- default of "10000"
-
-
- Add a third attribute called test.
-
-
- Make sure you can see all the attributes. Delete the test attribute
-
-
- Go to "/admin/object-types/one?object_type=project" and ensure
- that start_date and monthly fees are listed as attributes. Also
- make sure:
-
- - test attribute is not visible
-
- monthly_fee has a default specified (NULL) in the pl/sql parameter list
-
- start_date has no default specified
-
-
- - Go to "/admin/object-types/one?object_type=subproject" and
- ensure the new attributes of project are in the pl/sql package
-
-
- Now go back to the group type admin page for the "Projects"
- group type. Remove the composition relation. Make sure you get a
- link back to add a relationship type. Add back the composition
- relation.
-
-
- Add a group of type project named GuideStar.org
-
-
-
-RELATIONSHIP TYPE PAGES BASIC FUNCTIONALITY
-
-
-
- - Create a new relationship type, Employment relation, that is a
- subtype of Membership relation, between group and person. Group
- has role of employer, person role of employee.
-
-
- Select the employment relation and add an attribute age (integer,
- not required)
-
-
- Delete the employment relationship type.
-
-
- Re-add the employment relationship type (we're testing to make
- sure the age attribute is correctly removed and flushed from the
- cache)
-
-
- Click on membership relation, then click on create subtype
-
-
- Click on membership relation -> Create subtype
- type: project_lead_relation
- name: Project Lead
- between projects (the composite) and persons (the project leader
- new role)
-
-
- Create a new, dummy rel type, subtype of Project Lead
- Relation. Make sure the only things in object type one are
- project and subproject
-
-
- Select the dummy relationship type and then delete it.
-
-
- Select the Employment relation and add a required attribute
- "salary" (type integer)
-
-
-
-SEGMENTS, CONSTRAINTS AND RELATIONS
-
-
-
- - Go back to the admin page (/admin)
-
-
- Click on the Groups -> GuideStar.org. Add ArsDigita as a component
-
-
- Remove the composition rel type from this group
-
-
- Readd the composition rel type. Make sure arsdigita doesn't show up
-
-
- remove the composition rel type
-
-
- Add a permissible rel type: project_lead_relation
-
-
- Click yes to create a rel segment named "GuideStar Project Leads"
-
-
- Go back to /admin/groups
-
-
- Click on "relationship to site"
-
-
- Remove yourself from the group.
-
-
- Add yourself again as a member (using the membership
- relation). You will have to select an existing party from the
- system.
-
-
- Make sure you see the segment "Main Site Members" for parties
- with a membership relation to the main site.
-
-
- Go to the ArsDigita group.
-
-
- Add guidestar.org as a component
-
-
- Remove the membership relation type from this group
-
-
- Add the employment relation type
-
-
- Create a segment named "ArsDigita employees"
-
-
- Add a constraint named "ArsDigita employees must be Main Site
- Members" for employees and the segment "Main Site Members"
-
-
- Go back to the guidestar.org group
-
-
- Add yourself as a project lead.
-
-
- Click on the project lead segment "GuideStar Project Leads"
-
-
- Click delete this segment. Say no.
-
-
- Click delete this segment. Say Yes.
-
-
- Recreate the "GuideStar Project Leads" segment
-
-
- Add a constraint named "Project leads must be employees" that
- says all "project leaders must be employees of ArsDigita"
-
-
- Make sure you see yourself as a violation. Remove the violating
- relation and finish adding the constraint
-
-
- Try to add a project leader to guidestar. You should see that
- there "There is no other Person that can be added as Project Leader to
- GuideStar.Org"
-
-
- Add yourself as an arsdigita employee
-
-
- Make yourself the project lead on guidestar.org
-
-
- Go back to /admin/groups and select "relationship typ site."
- Remove your membership relation. You should get prompted to
- remove relation to arsdigita, then to guidestar. Remove all of
- these relations.
-
-
- Make yourself a project lead of guidestar again.
-
-
-
-Testing with more Users
-
-Now we're going to test that the user interface remains consistent if
-there are a few more users.
-
-
-
- - Go to /acs-admin/users and add 4 users
-
-
- Go to /admin/groups and click on "relationship to site." You
- should see all of the people you just entered listed as members of
- the subsite.
-
-
- Try to remove your Membership relation. You should see only one
- constraint violation.
-
-
- Remove one of the other people from the registered users
- group. You should be allowed to do it immediately.
-
-
- Add back the person you removed.
-
-
- Remove yourself from the registered users group. Make yourself
- a project lead on guidestar again.
-
-
- Make another user a project lead on guidestar.
-
-
-
-
-
-CLEANING UP
-
-
- - Go to /admin/group-types
-
-
- Select the project group type
-
-
- Delete this group type. Should get prompted to delete sub
- projects group type.
-
-
- Delete the sub projects group type.
-
-
- Should get prompt to delete the project lead rel type
-
-
- Delete the project lead rel type. Continue until you delete the
- project group type.
-
-
- Delete the ArsDigita group.
-
-
- Go to /admin/rel-types/
-
-
- Click on "View all roles"
-
-
- Click on "Project Leader" - delete this role
-
-
- Click on "Employer" then on Employment Relation
-
-
- Delete the employment relation type.
-
-
- Delete the employee, employer, and project_leader roles
-
-
- Delete any groups you created for the developer defined type
-
-
- Drop the developer defined type (in SQL*Plus):
-
-
-exec acs_object_type.drop_type('developer_defined_test_type');
-drop table developer_defined_test_types;
-drop package developer_defined_test_type;
-
-
-
-
-
-
-Michael Bryzek
-
$Id$
-
-
+
+
+
+Group Admin Pages - Acceptance test
+
+
+
+
+Group Admin Pages - Acceptance test
+ACS subsite docs : Group Admin Pages - Acceptance test
+
+
+DEVELOPER DEFINED GROUP TYPES TEST
+
+The first thing we have to test is developer defined group types
+working in conjunction with the user defined ones.
+
+Create the following object type in SQL*Plus.
+
+
+begin
+ acs_object_type.create_type (
+ supertype => 'group',
+ object_type => 'developer_defined_test_type',
+ pretty_name => 'Developer defined test type',
+ pretty_plural => 'Developer defined test types',
+ table_name => 'developer_defined_test_types',
+ id_column => 'test_group_id',
+ package_name => 'developer_defined_test_type',
+ name_method => 'acs_group.name'
+ );
+end;
+/
+show errors;
+
+
+create table developer_defined_test_types (
+ test_group_id integer primary key references groups(group_id)
+);
+
+
+create or replace package developer_defined_test_type
+as
+
+ function new (
+ TEST_GROUP_ID IN DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE DEFAULT NULL,
+ GROUP_NAME IN GROUPS.GROUP_NAME%TYPE,
+ OBJECT_TYPE IN ACS_OBJECTS.OBJECT_TYPE%TYPE DEFAULT 'developer_defined_test_type'
+ ) return DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE;
+
+ procedure delete (
+ TEST_GROUP_ID in DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
+ );
+
+end developer_defined_test_type;
+/
+show errors
+
+create or replace package body developer_defined_test_type
+as
+
+ function new (
+ TEST_GROUP_ID IN DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE DEFAULT NULL,
+ GROUP_NAME IN GROUPS.GROUP_NAME%TYPE,
+ OBJECT_TYPE IN ACS_OBJECTS.OBJECT_TYPE%TYPE DEFAULT 'developer_defined_test_type'
+ ) return DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
+ is
+ v_TEST_GROUP_ID DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE;
+ begin
+
+ v_TEST_GROUP_ID := acs_group.new (
+ group_id => new.TEST_GROUP_ID,
+ GROUP_NAME => new.GROUP_NAME,
+ OBJECT_TYPE => new.OBJECT_TYPE
+ );
+
+ insert into DEVELOPER_DEFINED_TEST_TYPES
+ (TEST_GROUP_ID)
+ values
+ (v_TEST_GROUP_ID);
+
+ return v_TEST_GROUP_ID;
+
+ end new;
+
+ procedure delete (
+ TEST_GROUP_ID in DEVELOPER_DEFINED_TEST_TYPES.TEST_GROUP_ID%TYPE
+ )
+ is
+ begin
+
+ acs_group.del( developer_defined_test_type.delete.TEST_GROUP_ID );
+
+ end delete;
+
+end developer_defined_test_type;
+/
+show errors
+
+
+
+
+
+ - Go to /admin/group-types and select "Developer defined test types"
+
- Add a permissible rel type of Membership Relation
+
- Add a group named "Test group"
+
+
+
+
+
+GROUP TYPE PAGES BASIC FUNCTIONALITY
+
+(Start at /admin)
+
+
+
+
+ - Click on group types
+
+
- Click on Groups
+
+
- Click on "Group name" under "Attributes of this type of group"
+
+
- Ensure that you see the properties of the attribute and that you
+ are offered no administrative links
+
+
- Make sure you cannot add attributes or do anything under administration
+
+
- Make sure you see Composition and Membership Relation as the
+ default relationship types
+
+
- Add a new group called "Foobar" - Make sure Foobar appears after
+ adding the group
+
+
- Click on Foobar
+
+
- Click on nuke this group then click no. Ensure group is not deleted
+
+
- Click on nuke this group then click yes. Group should no longer show up
+
+
- Recreate the group Foobar
+
+
- Click on foobar, then change the name to "ArsDigita"
+
+
- Change ArsDigita's join policy to closed
+
+
+
+DYNAMICALLY EXTENDING GROUPS
+
+(Start at /admin/group-types/)
+
+
+
+ - Click on "Define a new group type" and create a new group type
+ called "Project" with type "project". Ensure that all the fields
+ you see are required (try submitting without entering in
+ anything).
+
+
- Define another group type, child of group, named "Test"
+
+
- Define another group type, 'subproject', child of project. Ensure
+ that the index page correctly displays the hierarchy.
+
+
- Define a new group type with group type = group. See error
+ message saying type already exists.
+
+
- Go back to the index page (/admin/group-types).
+
+
- Click on the Test group type. Make sure that:
+
+
+ - there are no groups
+
- Group name attribute is inherited from groups
+
- you have a link to add an attribute
+
- you see Composition and Membership Relation as the default
+ relationship types
+
- You have a link to change the default join policy
+
- You have a link to delete the group type
+
+
+ - Click on "Add a permissible relationship type." Ensure that you
+ are not given a select bar but are offered a link to "create a new
+ relationship type"
+
+
- Create a group of type test.
+
+
- Delete the test group type (first verify that the cancel button
+ works)
+
+
- Go to the "project" group type
+
+
- Add a required attribute called "Project type" of datatype
+ enumeration. Values are "Client" "Toolkit"
+
+
- Add an optional attribute "Monthly fee" of type integer and
+ default of "10000"
+
+
- Add a third attribute called test.
+
+
- Make sure you can see all the attributes. Delete the test attribute
+
+
- Go to "/admin/object-types/one?object_type=project" and ensure
+ that start_date and monthly fees are listed as attributes. Also
+ make sure:
+
+ - test attribute is not visible
+
- monthly_fee has a default specified (NULL) in the pl/sql parameter list
+
- start_date has no default specified
+
+
+ - Go to "/admin/object-types/one?object_type=subproject" and
+ ensure the new attributes of project are in the pl/sql package
+
+
- Now go back to the group type admin page for the "Projects"
+ group type. Remove the composition relation. Make sure you get a
+ link back to add a relationship type. Add back the composition
+ relation.
+
+
- Add a group of type project named GuideStar.org
+
+
+
+RELATIONSHIP TYPE PAGES BASIC FUNCTIONALITY
+
+
+
+ - Create a new relationship type, Employment relation, that is a
+ subtype of Membership relation, between group and person. Group
+ has role of employer, person role of employee.
+
+
- Select the employment relation and add an attribute age (integer,
+ not required)
+
+
- Delete the employment relationship type.
+
+
- Re-add the employment relationship type (we're testing to make
+ sure the age attribute is correctly removed and flushed from the
+ cache)
+
+
- Click on membership relation, then click on create subtype
+
+
- Click on membership relation -> Create subtype
+ type: project_lead_relation
+ name: Project Lead
+ between projects (the composite) and persons (the project leader
+ new role)
+
+
- Create a new, dummy rel type, subtype of Project Lead
+ Relation. Make sure the only things in object type one are
+ project and subproject
+
+
- Select the dummy relationship type and then delete it.
+
+
- Select the Employment relation and add a required attribute
+ "salary" (type integer)
+
+
+
+SEGMENTS, CONSTRAINTS AND RELATIONS
+
+
+
+ - Go back to the admin page (/admin)
+
+
- Click on the Groups -> GuideStar.org. Add ArsDigita as a component
+
+
- Remove the composition rel type from this group
+
+
- Readd the composition rel type. Make sure arsdigita doesn't show up
+
+
- remove the composition rel type
+
+
- Add a permissible rel type: project_lead_relation
+
+
- Click yes to create a rel segment named "GuideStar Project Leads"
+
+
- Go back to /admin/groups
+
+
- Click on "relationship to site"
+
+
- Remove yourself from the group.
+
+
- Add yourself again as a member (using the membership
+ relation). You will have to select an existing party from the
+ system.
+
+
- Make sure you see the segment "Main Site Members" for parties
+ with a membership relation to the main site.
+
+
- Go to the ArsDigita group.
+
+
- Add guidestar.org as a component
+
+
- Remove the membership relation type from this group
+
+
- Add the employment relation type
+
+
- Create a segment named "ArsDigita employees"
+
+
- Add a constraint named "ArsDigita employees must be Main Site
+ Members" for employees and the segment "Main Site Members"
+
+
- Go back to the guidestar.org group
+
+
- Add yourself as a project lead.
+
+
- Click on the project lead segment "GuideStar Project Leads"
+
+
- Click delete this segment. Say no.
+
+
- Click delete this segment. Say Yes.
+
+
- Recreate the "GuideStar Project Leads" segment
+
+
- Add a constraint named "Project leads must be employees" that
+ says all "project leaders must be employees of ArsDigita"
+
+
- Make sure you see yourself as a violation. Remove the violating
+ relation and finish adding the constraint
+
+
- Try to add a project leader to guidestar. You should see that
+ there "There is no other Person that can be added as Project Leader to
+ GuideStar.Org"
+
+
- Add yourself as an arsdigita employee
+
+
- Make yourself the project lead on guidestar.org
+
+
- Go back to /admin/groups and select "relationship typ site."
+ Remove your membership relation. You should get prompted to
+ remove relation to arsdigita, then to guidestar. Remove all of
+ these relations.
+
+
- Make yourself a project lead of guidestar again.
+
+
+
+Testing with more Users
+
+Now we're going to test that the user interface remains consistent if
+there are a few more users.
+
+
+
+ - Go to /acs-admin/users and add 4 users
+
+
- Go to /admin/groups and click on "relationship to site." You
+ should see all of the people you just entered listed as members of
+ the subsite.
+
+
- Try to remove your Membership relation. You should see only one
+ constraint violation.
+
+
- Remove one of the other people from the registered users
+ group. You should be allowed to do it immediately.
+
+
- Add back the person you removed.
+
+
- Remove yourself from the registered users group. Make yourself
+ a project lead on guidestar again.
+
+
- Make another user a project lead on guidestar.
+
+
+
+
+
+CLEANING UP
+
+
+ - Go to /admin/group-types
+
+
- Select the project group type
+
+
- Delete this group type. Should get prompted to delete sub
+ projects group type.
+
+
- Delete the sub projects group type.
+
+
- Should get prompt to delete the project lead rel type
+
+
- Delete the project lead rel type. Continue until you delete the
+ project group type.
+
+
- Delete the ArsDigita group.
+
+
- Go to /admin/rel-types/
+
+
- Click on "View all roles"
+
+
- Click on "Project Leader" - delete this role
+
+
- Click on "Employer" then on Employment Relation
+
+
- Delete the employment relation type.
+
+
- Delete the employee, employer, and project_leader roles
+
+
- Delete any groups you created for the developer defined type
+
+
- Drop the developer defined type (in SQL*Plus):
+
+
+exec acs_object_type.drop_type('developer_defined_test_type');
+drop table developer_defined_test_types;
+drop package developer_defined_test_type;
+
+
+
+
+
+
+Michael Bryzek
+
$Id$
+
+