Acceptance Test
for the Arsdigita Community System
by Tracy Adams
Use this to test an ACS installation. Going through these steps is also
a good way to learn the major features of Arsdigita Community System
administration.
Installation
You should ensure the database has been properly configured and that your
AOLserver installation will actually start.
Suggested method:
- Open up a sqlplus session as the Oracle user your AOLserver will connect
as. We want to ensure we've completed the installation step of adding
NLS_DATE_FORMAT = "YYYY-MM-DD" to the Oracle instance init file. Make sure the date format is set correctly.
SQL> select to_date('1-1-2000', 'MM-DD-YYYY') as y2k from dual ;
Y2K
----------
2000-01-01
If the date did not read "2000-01-01" that installation step failed.
- Next, make sure that the step of feeding Oracle the data model works. In the same sqlplus session, make sure the
country_codes
, counties
, and states
tables were loaded:
SQL> select table_name from user_tables where lower(table_name) in ('country_codes', 'states', 'counties') ;
TABLE_NAME
------------------------------
COUNTIES
COUNTRY_CODES
STATES
If these three tables do not show up, we failed to properly feed Oracle the
data model.
- Spot-check that database objects created in
.../doc/sql
exist.
- If you installed site-wide-search make sure the im_convert PL/SQL proc is there. This procedure converts a search string into a form interMedia understands to perform the search.
SQL> select im_convert('foo bar') from dual ;
IM_CONVERT('FOOBAR')
--------------------------------------------------------------------------------
( { foo } NEAR { bar })*2.0,about( foo bar )
If this is not what you see, then you likely failed to properly feed Oracle
the data model.
- Unless you have specified port numbers for both the ns_sock and ns_ssl (if
applicable) modules that are greater than 1024, you will need
sudo
permissions or root access for the following command.
As root
make sure your server will start
/webroot/aol30/bin/nsd -fc /webroot/aol30/.ini -r /webroot
The -f
option runs the server in the foreground, so you can easily see any errors that may have occurred when the server was run. If you see any errors indicating the failure of a virtual server to start, this step failed.
Registration
You should test basic registration and the login process.
Suggested method:
- Go to /pvt/home.tcl
- Walk through registering as a new user
- Go back to /pvt/home.tcl and "Log out"
- Go back to /pvt/home.tcl again and log in as the same user
User Administration
You should test adding a user, searching for users, modifying user data, banning or deleting a user, and spamming a class of users.
Suggested method:
- Go to /admin/users
- Create a test user
- Search for a class of users (which includes the test user)
- View the list of matching users and edit the user data for the new test user
- Spam a (small) group of users.
- Delete the test user
- Ban the test user
- Nuke the test user
Bboard System
You should test setting up a bboard, posting a message, alerts, and searching.
Suggested method:
- Create a test bboard
- Sign up for an instantaneous alert
- Post a message
- Respond to your message
- Search for your message (Note that you must wait for the index to be rebuilt before you'll actually see your new posting. Or you can do it manually by going to SQL*Plus and typing
alter index sws_ctx_index rebuild parameters('sync')
.)
- Deactivate the test bboard (you can leave it for later testing)
Classified Ads
You should test setting up a domain, posting/editing and ad, alerts, hot auctions and searching.
Suggested Method:
- Go to /admin/gc and create a domain. Make sure you add a least one category.
- Go to /gc and add an instant alert.
- Post an ad.
- Edit your ad.
- Place a bid on the ad.
- Search for your ad.
- Deactivate your domain (you can leave it for later testing).
Download
You should test adding new downloads, upload versions of existing downloads, adding rules to all versions/specific version of a download, edit/remove download data, download a file, view download history.
Suggested Method:
- Add a new download
- Upload a new version of the download
- Add a rule to the download
- Edit the download data
- Go to user pages and download the version
- Go back to admin pages and view the download history
- Remove the version
- Remove the whole download
User searchers
The searches you made in the bboard and classified ads should have been
logged. View the user searches section in the admin pages to verify.
News
You should test story posting, story approval, and story editing (for both site-wide and group scope). You can also test the interface into the general comments module.
Suggested Method:
- Add a story
- Approve the story in the admin pages (depends on policy)
- Add a comment to the story
- Approve the comment in the admin pages (depends on policy)
- Revoke approval for the story in the admin pages. The story should not appear the user pages.
Calendar
You should test adding an event, approving events, and adding comments.
Suggested Method:
- Add a category through the admin pages
- Add an event through the user pages
- Approve the event (depends on policy)
- Comment on the event
- Approve comment (depends on policy)
- Revoke approval on the news story so the item does not show up
Curriculum
- Turn on curriculum in the parameters file.
- Create some curriculum items from the site-wide admin pages
- View the curriculum and visit some of the pages.
- Make the curriculum disappear by visiting all the pages
- Visit /curriculum to turn it back on again and to view the reasons.
Neighbor to Neighbor
You should test creating a domain and subcategory, adding and approving a posting, adding and adding and approving a comment, and searching.
Suggested Method:
- Create a domain
- Create a subcategory
- Add a posting
- Approve the posting (depends on policy)
- Add a comment
- Approve the comment (depends on policy)
- Search for posting
- Inactivate the domain (you can leave it for later testing)
Stolen equipment registry
You should test adding and entry, adding a comment, and searching.
Suggested method:
- Add an entry
- Add a comment
- Approve the comment (depends on policy)
- Search
- Delete the entry using the the admin pages
HTML Comments and Related Links
You should test syncing the html pages with the database, adding/editing comments, adding/editing related links.
Suggested method:
- Create a test html file
- Sync the database with the system
- Add, then edit a comment on your test page.
- Add, then edit a comment on your test page.
- Delete the comment and link from the admin pages.
Referrals
You should test that referral tracking is working.
Suggested method:
- Link to your server from another site.
- View the admin pages for referrals. You should see the foreign referral, but no local ones.
Clickthroughs
You should test that clickthroughs are logging.
Suggested Method:
- Create a valid clickthrough test link
- Click on the link and then verify that is was tracked
Ad Server
You should test that you can insert and view ads.
Suggested Method:
- Add an ad in the admin pages
- View the ad the the user pages
Contest System
You should test setting up a contest, contest entry, modifying contest parameters, and voting.
Suggested method:
- Create a current contest. Add some customized columns.
- Verify that you can add a contest entry from the user pages.
- Edit the domain parameters and verify the changes.
Ticket Tracker
You should test adding users, creating a project, and creating an issue.
Suggested path:
- Add a user to the Ticket Administration
- as that user create a new project and feature area
- Add an issue
- Close the issue
- Add and remove an assigned user (as the ticket administrator user)
- Add a watch on a ticket (via the link at the bottom of the page)
- Check that the watch shows up on /pvt/alerts.tcl
- Add a comment on a ticket
Chat
- Go to /admin/chat/ and create a public chat room
- Go to /chat/ and enter the room
- Log in to /chat/ as a different user on a different browser
- Open up the javascript version on both browsers and have a nice chat
- Delete all the messages from the room
- Delete the room
File-Storage
- Upload a URL and a file (.gif, .jpg or .doc)
- Set read permission for an arbitrary user and a group
- Upload a new version of the file, and check that the permissions
got copied
- Create a folder
- Edit the file to move it into the new folder
- Download the file (checking the MIME type)
- In the "Shared Document Tree", click on a folder containing files
and subfolders. Check the layout, and the links for files and folders
- Go to your "Personal Document Tree" and upload a file,
giving it permissions that make it unviewable to the public
- Upload another file and make it viewable to a specific user
- Upload a third file and make it viewable to a specific group
- Log in as the user you just specified and check if you can read the last
two uploaded documents (using "All public files"; make sure the user
is a member of the above group)
- Check that the "Go to" list only shows trees for which you have either
write permission, or which contain files you can read (site-wide
administrators can read all files - so be sure to also test this as
a normal user)
- Delete a file in the shared and in your personal document tree
- Do the same as above for /admin/file-storage
Bookmarks
- Add one bookmark manually by URL only
- Create a new folder and a subfolder
- Edit the bookmark by
- changing its name
- changing its location to the new folder
- making it private
- Make the folder private and check if its contents
are marked as private, too
- Click on a folder and subfolder to open/close them
- Delete (through edit) the folder, thereby deleting
the bookmarks as well
- Import bookmarks from a Netscape bookmarks.html file
- View the Javascript version
- Check validity the links and delete some dead links
Portals
- Define a group type
portal_group
.
- Create two groups of this type. Each of these groups will have its own
portal.
- Create a group called "Super Administrators" of type "portal_group"
- Add yourself as a
Super Administrator
from the /admin/portals
page.
- Create tables from
/portals/admin/
- Lay out the portal pages by masquerading as an administrator
of the various portal groups
- View the resultant user page
Pull-Down Menus
- Upon installation you should have two pull-down menus predefined, if not load them with
sqlplus user/password < pdm-data.sql
- View one of these pull-down menus by clicking from /admin/pull-down-menus
- Go to /admin/pull-down-menus and create a new pull-down menu filling in only the necessary fields
- Go to the new pull-down menu and a top level item and a child of that item
- Delete the test pull-down menu
Address Book
You should test adding, editing, viewing and searching for a contact.
Suggested path:
- Add a contact
- View a contact
- Edit a contact
- Search for the contact
Directory
You should test searching and browsing the directory.
Suggested path:
- Search by last name, then email, and then both (try apostrophe)
- Click on browse
- Click on "look at user-uploaded portraits
Glossary
You should test definition entry, editing, approval, and deletion.
Suggested Method:
- Add a definition
- Approve the definition in the admin pages (depends on policy)
- Edit the definition from the user pages (depends on policy)
- Edit the definition from the admin pages
- Delete the definition in the admin pages.
The definition should no longer appear.
General Links
You should test link entry, rating, editing, approval, and deletion.
Suggested Method:
- Create a test page that calls
ad_general_links_list
- Add a link from the test page
- Go to user index page
- Add a link from the user index page
- Approve/reject a link in the admin pages (depends on policy)
- Edit a link from the admin pages
- Delete a link in the admin pages.
The definition should no longer appear.
Polls
You should test poll entry, editing, voting, and reporting.
Suggested Method:
- Go to /admin/poll and add a new poll.
- Add some poll choices. Move them around.
- Go to /poll. Make sure the poll is there and has the proper choices.
- Vote. Check the results.
- Edit the poll. Revisit the poll and make sure the changes appear.
- Delete the poll.
User groups
You should test links to sections, group membership and group spamming.
Suggested Method:
- Make sure links to group modules and sections are working on both group public and group admin pages.
- Add and remove a member of a group, change member's role, change new member policy, toggle option to send email to administrators on new membership request.
- Change group spam policy to open, wait and closed, and try sending spams to group members and administrators from both the admin and the user pages, view, for wait policy, approve and disapprove emails that are waiting, view email history from both admin and user pages.
General Permissions
Run the automated
acceptance test. This tests all PL/SQL functions against the data
model.
Press
You should test adding, viewing, editing, and deleting a press item:
- Go to /press/admin/ and add a new low-priority press item
- Verify that the item shows up with the correct number of days left
for display
- Go to /press/ and make sure the item is formatted correctly
- Go to /admin/press/ and add a new template to the system
- Verify that the template is displayed correctly
- Go to /press/admin/, select your test item, and then select your
template to display it
- Delete the item
- Delete the template
FAQ
- As site-wide admin:
- Go to /admin/faq/
- Create a public FAQ
- Create a private FAQ for Group X
- Visit /admin/ug/index.tcl and make sure that the group_type of which group X is a member is associated with the FAQ module.
- Visit /faq/ and click on the public faq
- Click on Maintain this FAQ
- Add questions, edit questions, swap questions, insert after..
- Edit the FAQ name
- As a simple user:
- Go to /faq/
- Visit the public FAQ
- As an administrator for Group X
- Visit /groups/X/faq/
- Perform the same tests on the private FAQ that you did on the public one
Events
You should make sure that you can create an event, register for it, and
review registrations.
Suggested method:
- Create a venue
- Create an activity
- Create an event for that activity
- Add organizers to that event
- Register for an event
- Cancel a registration
- Review order histories
Template System
Go to a number of pages under /ecommerce/
and make
sure they get displayed with uniform style, e.g.
index.tcl
-> product-search.tcl
shopping-cart.tcl
gift-certificate-order.tcl
gift-certificate-order-2.tcl
-> gift-certificate-order-3.tcl
-> gift-certificate-order-4.tcl
(The style is defined in
/web/yourservername/tcl/ecommerce-styles.tcl
).
Note: this is the old template system, documented in style.html; the new one by Karl
Goldstein is not included in the ACS.
Categorization and User Profiling
You should be able to add categories, define their positions in
category hierarchy and, as registered user, choose content
categories you're interested in.
- Add new category 'scratch1' through category admin pages /admin/categories/
- Add subcategory 'scratch2' of 'scratch1'
- Try to nuke category 'scratch1', system should return
proper error message
- Edit parentage of 'scratch2', remove link to parent 'scratch1'
- Edit parentage of 'scratch1' and make it child of 'scratch2'
- See if the categories are placed properly in hierarchy tree view
- In /pvt/home.tcl both categories should
show up, check 'scratch1', update interest,
then check 'scratch2' and update interests again
- User interest changes should be reflected in user admin pages as
well
- When tired of playing, nuke both scratch categories in proper
order.
Graphing
Stick this into a .tcl file and then access it with your browser:
set legend [list "1997" "1998" "1999" "2000"]
set subcategory_category_and_value_list [list [list "Dog" "Favorite Animal" [list "45" "47" "40" "45"]] \
[list "Cat" "Favorite Animal" [list "20" "21" "19" "21"]] \
[list "Other" "Favorite Animal" [list "35" "32" "41" "34"]] \
[list "Pizza" "Favorite Food" [list "34" "33" "35" "35"]] \
[list "Chocolate" "Favorite Food" [list "24" "25" "24" "25"]] \
[list "Other" "Favorite Food" [list "42" "42" "41" "40"]]]
ns_return 200 text/html "<font face=arial size=+2>Madrona Elementary School Annual Poll Results</font>
<p>
[gr_sideways_bar_chart -legend $legend $subcategory_category_and_value_list]
"
It should produce a lovely four-color bar chart!
Ecommerce
After you have completed the setup tasks in Technical Details of the Ecommerce Module, here are some good tests of the things most likely to be broken:
- Go to http://yourserver/ecommerce/ . If the page is broken, it's because the data model wasn't automatically loaded with the rest of the ACS (the ecommerce data model is omitted intentionally to save publishers who aren't doing ecommerce from having a gigantic number of unused tables). Solution: load the two files ecommerce.sql and ecommerce-plsql.sql with
sqlplus scott/tiger < ecommerce.sql
(same for ecommerce-plsql.sql). If you get an error while loading the data model, it may mean that you're not using Oracle 8i (required).
- Go to https://yourservername/admin/ecommerce/products/add.tcl (or http:// instead of https:// if you don't have SSL) and try to add a product without a picture. If you get an error on add-2.tcl, it's probably because the directory to hold auxiliary product info cannot be created.
Make sure the directory (specified by the parameters EcommerceDataDirectory and ProductDataDirectory) exists. By default, this is /web/yourserver/data/ecommerce/product/ . Also make sure the permissions are correctly set (AOLserver has to be able to create new directories inside of this directory).
- Now try to add a product with a picture. If it can't be created, that may mean that ImageMagick is not installed or is not at the expected path (/usr/local/bin/convert).
- Go to the customer service submodule (https://yourserver/admin/ecommerce/customer-service/ -- or http:// instead of https:// if you don't have SSL) and add an interaction (if you get an error on interaction-add-2.tcl, that may mean the zip_codes table hasn't been loaded). Use the email address of an existing user. All the other information can be garbage. Return to the main customer service admin page and find the issue you just created (look under Customer Service Issues). When you're viewing the issue, click Send Email at the top. Try sending email. Possible problem #1: spell checker doesn't exist. Solution: install spell checker (tools module). Possible problem #2: can't send email. Solution: install qmail on your machine.
- Go to http://yourserver/ecommerce/ and click on one of the products you just added. Add it to your shopping cart and try to check out (using a real credit card). If all has gone well, you will never see finalize-order.tcl (you'll be redirected immediately to thank-you.tcl), but if you get an error on finalize-order.tcl that may mean that CyberCash has not been correctly set up.
Once all this is working, you can further test your system:
Display Module
Test cascaded style sheet settings and uploading of a logo
- changing background color
- changing body text color
- changing color of the links
- changing color of the visited links
- changing the font type
- changing links display (underlined, non-underlined, ...)
- uploading logo
- enabling and disabling logo
General Comments
Test tcl procedures used for adding comments to pages and test
general comments admin pages
- adding a comment using
ad_general_comment_add
- updating a comment using
ad_general_comment_update
- displaying general comments using
ad_general_comments_summary
and ad_general_comments_summary_sorted
- approving/disapproving a comment through admin pages
- editing a comment through admin pages
- deleting a comment through admin pages
- using dimensions on admin pages (sections, approving/disapproving, number of days)
Help
Make sure that help links work and that appropriate .help files are used
Content Sections
Test content section admin pages
- add a static section
- add a module (for groups having a complete module administration)
- add a custom sections (for groups having custom section module installed
- edit section properties (section key, section pretty name, sort
key, help, intro)
- enable/disable sections
- test view links on content-sections index page
- section navigation (make sure that correct navigation bars are generated)
New modules
Systematically go through each option making sure:
- Instructions and page flow make sense
- Page layout is standard
- All inserts are immune to double clicks
- Links are all valid
- Everything is spelled correctly
- You can't type in data that will cause errors. Try ', ", and blank entries
Intranet
Suggested Method:
- Setup
- Set IntranetEnabledP=1 in the server .ini file and restart your web server
- Create an account for yourself
- goto /intranet - should be denied access.
- Log in as a site-wide administrator
- Add yourself as an employee (from Employee Administration)
- Go back to employee administration and add yourself as an Intranet Administrator
- Go to the admin user group page for intranet. Add news and address-book as modules associated with groups in intranet.
- Log in as yourself - should be automatically redirected to intranet workspace
- Testing
- Add an office. Add yourself to that office and make yourself the primary contact. Email the office.
- Add a partner. Add a contact to and a correspondence with that partner. Spam people working with the partner.
- Add a procedure.
- Add a customer (Make sure it's marked as current).
- Add a project.
- Create a ticket tracker from the project page.
- Remove yourself from the project.
- Go back to your workspace. Make sure your customer shows up.
- Move your customer from current to past state.
- Click on status report. Make sure customer status change shows up.
- Click on "Your public information" and make sure your office comes up.
- Log some hours.
- Add an office absence. Edit it. Remove it.
- Upload a portrait of yourself.
- Edit your public information.
- Edit your h.r. information.
- Change your password, log out and back in.
- Add a couple of new users and make them employees from Employee Administration.
- Create one or two direct reports by setting the users' supervisor id's to you.
- Create some direct reports for your direct reports.
- Check the org chart from your workspace.
Data Pipeline
Data Pipeline will be fully exercised by the Intranet module.
Simple Survey
You should test creating a new survey, editing a survey, enabling a survey,
responding to a survey and viewing responses.
- Creating a new survey:
- log in as a simple survey administrator
- go to /survsimp/admin/ and create a new survey
- Editing a survey:
- log in as a simple survey administrator
- go to /survsimp/admin/ and select the survey to edit
- edit description
- add new categories
- insert new questions
- change question properties: active/inactive, response required/not required,
order (swap with previous)
- delete a question; repeat this step after having responded to the survey
and viewed the responses
- go to /survsimp/ and check that the new survey isn't listed
- Enabling a survey:
- log in as a site-wide administrator
- go to /admin/survsimp/
- enable the survey
- Responding to a survey:
- log in as a regular user
- go to /survsimp/
- check that the new survey is now listed and select it
- submit responses
- respond again to the same survey and check your previous responses
- Viewing responses:
- log in as a simple survey administrator
- go to /survsimp/admin/
- select the survey to check
- view responses by user and summary of responses and check that your
responses were correctly inserted
WimpyPoint
- Go to /wp and create a new, public presentation. Select "I'll provide my own" as the style.
- Create a fancy style with wacky colors. Verify that the color picker widgets work
properly.
- Add an image. Verify that clicking on the image filename displays the image.
- Go to the list of presentations. Verify that the presentation shows up.
- Edit the presentation. Add several slides with some attachments. Return to the
main editing page for your presentation by clicking your presentation's title in the
navigation bar.
- Click Show presentation, viewing comments from collaborators and "edit" links.
Make a comment or two.
- Log out. Go to http://yourservername.com/wp/ and view your presentation.
- Log back in. Click Edit the presentation properties, change a thing or
two, and save your changes.
- Bulk copy slides from one of your presentations into the current presentation,
and from a presentation belonging to another user. (Just follow onscreen prompts.)
Verify that the slides were properly added.
- Create a ZIP file containing several images (GIF, JPG, or PNG). Upload the
batch, verifying that the slides were properly added.
- Change the order of slides in the presentation.
- Click Change people who can view/edit this presentation and:
- Make the presentation private.
- Invite an ACS user to view and make changes to the presentation.
- Invite a non-ACS user to administer the presentation (decide who gets to
view/edit it.)
Ensure that both users receive emails, and that following the instructions in
the emails gives them appropriate access to the presentation.
- Freeze the current slide set. Make a change to a slide. View the previous
(frozen) version of the presentation, ensuring that the change is not apparent
here. View the current version of the presentation, ensuring that the change is
apparent here. Revert to the original version of the presentation, ensuring that
the change has disappeared.
- Log out, ensuring that the public cannot see the (now-private) presentation.
- Log back in and delete the presentation.
CRM
- Go to the admin page and add at least two states.
- Add some transitions. Try to pick conditions so that it will be
true for at least some people. Example: Users who have had some
activity in the last month: 0 < activity_since(user_id,
add_months(sysdate, -1)).
- Run the state machine a few times and see if any users move around
from state to state.
Referer Module
- Make sure the referer parameter section of the server.ini file is set up correctly.
- Go to some other web server, create a page with a link to the
server you are testing on. Click on that link a few times.
- Go to the referer admin page and see if your clicks were recorded.
(Note: there's a cutoff so referers with only a few counts don't show.
If you select a report for one day only, three clicks on the referring link should do the trick).
Member Value Module
- Make sure the member value parameter section of the server.ini file is switched on .
- Go to a page which supports member value (e.g. delete a bboard message).
- Execute the page (e.g. actually delete a bboard message and charge the user for it).
- Go to admin pages, member value. Look at expensive users and all charges. If your charge shows up there, fine, otherwise it's broken (aka this document is badly written).
- Make sure you switch the parameter off again after testing.
- If you stumble across an error on other pages related to member value, please inform the module owner, as he has no clue where the calls to member value are and will be used, as this is and will be the responsibility of every single module owner (this being a meta system).
Education Module
- Go to /admin/education/ and create a new department.
- Go to the admin page of your new department.
- Add a user to the deparment.
- Add a subject to the department.
- Go to the admin page for the subject.
- Add a class under the subject.
- Go to the class's admin page.
- Upload a syllabus.
- Add an assignment.
- Add lecture notes.
- Go to the permissions page and make sure that there are values under
the roles (e.g. where it says Singular and Plural, there should be four
roles there). If there are not, then the trigger that creates those roles
were not created properly.
Glassroom
- Add one each of: logbook entry, software module, procedure, service,
host, certificate, domain
- From /glassroom, 'view' each entry by clicking on it's entry
in each section (i.e. logbook, software modules, etc.) You should
have a successful view of each page, then just back arrow to /glassroom.
- There is no /admin/glassroom section, and no delete function, so
go into sqlplus and delete the entries from the glassroom tables.
Robot Detection
In order to test the Robot Detection package, we need to be able to
request URLs from the site with a User-Agent
that is
listed in the robots
table and see for ourselves that the
results are as expected.
The simplest approach to testing this is to add a
FilterPattern
into the
[ns/server/yourservername/acs/robot-detection]
section of the parameters file and to add a record into
robots
that matches a web browser program and use that
browser to access the site. The following SQL works for Microsoft
Internet Explorer 4.01 on Windows NT:
insert into robots(robot_id, robot_name, robot_details_url, robot_useragent)
values('msie4', 'Microsoft Internet Explorer 4.0 (for testing purposes only)',
'http://www.microsoft.com/ie/', 'Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)');
Just be sure to delete this row when you go into production!
teadams@mit.edu