All Downloads are FREE. Search and download functionalities are using the official Maven repository.

doc.devdocs.testing.TestPlan-Fedora-2.1.doc Maven / Gradle / Ivy

Go to download

The Fedora Client is a Java Library that allows API access to a Fedora Repository. The client is typically one part of a full Fedora installation.

The newest version!
??ࡱ?;??	??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????B	

???? !"#$%&'()*+,-./0123456789:;<=>?@A????????DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?Root Entry??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????	?FMicrosoft Word-Dokument
MSWordDocWord.Document.8?9?q???????Oh??+'??08
p	x
??
????????3@??_@??!@D???Q?@????Q?
Ross Wayland
Ross WaylandNormal.dot3
[f??fDefaultA$$a$1$
?*$/B*OJQJCJmH	sH	PJnH?^JaJ_HtHRR	Heading 1'@&
&F?^??]??`?$5\BA@???BAbsatz-Standardschriftart&????&	WW8Num7z05(???(
WW8Num15z0>*(???(
WW8Num17z05(???!(
WW8Num22z05(???1(
WW8Num24z05(???A(
WW8Num25z05(???Q(
WW8Num28z05H???aHWW-Absatz-Standardschriftart&???q&	WW8Num6z05&????&	WW8Num9z05(????(
WW8Num21z0>*.????.
WW-WW8Num24z054????4
WW8Num29z0OJQJPJ^J0????0
WW8Num29z1OJQJ^J,????,
WW8Num29z2OJQJ,????,
WW8Num29z3OJQJ(????(
WW8Num34z05(???(
WW8Num37z05(???(
WW8Num38z05(???!(
WW8Num43z05(???1(
WW8Num47z05B???ABWW-Default Paragraph Font6UBQ6
Internet LinkB*ph?>*@?Ba@WW-Comment ReferenceCJaJ2???q2Numbering Symbols,B?,	Text body(5\ /?? List)^J@??@Caption
*?x?x$CJ6^JaJ]&??&Index+$^JF??FHeading
,???x$OJQJCJPJ^J	aJF??F
WW-Caption
-?x?x$CJ6^JaJ],??,WW-Index.$^JL??L
WW-Heading
/???x$OJQJCJPJ^J	aJ???WW-HTML Preformatted70
?2?(?
P?x?4 ?#\'?*?.2?5@9OJQJCJPJ
^JaJ:?:WW-Comment Text1CJaJF?"FWW-Balloon Text2OJQJCJ^JaJ?T?????4!n*?0?=?S~_2i4y??WXYZ[\]^_`a(x	p
?NB)8?;?BIlLUxa4l?o?tx?{?}????F???T???????Ġh?x???bcdefghijklmnopqrstuvwxyz{|}~????Unknownunknown?345???l??????@Bx?????1	2	4	?	?	?	$
%
X
?
?
?
?
NOr???MN???
 
"
m
?
?
?
?

UVX???S????$%qrs???
[\]?????a???78????+,-ghi??????WXZ???JKL??????LMN?????Ay??!?!"'i'j'k'?'?'?'I(J(?()o)p)?)?)?)[*\*^*?*U+V+?+?+?+h,i,k,?,--X-Y-j-?-?-?-.a.b.?.?.?.#/$/&/~/?/?/"0#050?0?0?0?03141?1?1?1?1?1?1@2A2B2?2?2?2?2?2?2N3O3h:?:?:?TX??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??X??????????????????????????????????????????????????????????????????????????		?????????

???????????????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????.???????.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????.???????.???????.???????.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????5.???????.?????.???????.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????.???????.???????.?8????8.???0???>*.???????.???????5.???????.???????.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????.???????.???????5.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????.???????5.???????5.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????.???????.???????.?p?L??p.?@????@.?????.???L???.???????.???????.?P?L??P.???????5.???????.?$	????$	.?@????@.?????.???L???.???????.???????.?P?L??P.???????.?????)?7????7.?R????R.?n????n.???????.???????.???????.???????.??	?????	.????????????????????????????????????	

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????WW8Num1WW8Num2WW8Num3WW8Num4WW8Num5WW8Num6WW8Num7WW8Num8WW8Num9WW8Num10WW8Num11WW8Num12WW8Num13WW8Num14WW8Num15WW8Num16WW8Num17WW8Num18WW8Num19WW8Num20WW8Num21WW8Num22WW8Num23WW8Num24WW8Num25WW8Num26WW8Num27WW8Num28WW8Num29Outline?@?T?TPG?Times New Roman5?Symbol3&?Arialm?Nimbus Roman No9 LTimes New Roman?4?Courier New;?WingdingsK?TahomaLucidasansO&?Bitstream Vera Sans5?MinchoK?TahomaLucidasansI&?Arial Unicode MS5&?TahomaB???hi??Ei??E??'0?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?Lhttp://localhost:8080/fedora/describe?D???y??????K????y??????K?Lhttp://localhost:8080/fedora/describe?D???y??????K????y??????K?Lhttp://localhost:8080/fedora/describe?D???y??????K????y??????K?Rhttp://localhost:8080/fedora/get/demo:10?D???y??????K????y??????K?Rhttp://localhost:8080/fedora/get/demo:10?D???y??????K????y??????K?Rhttp://localhost:8080/fedora/get/demo:10?D???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex?D???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex?D???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex?D???y??????K????y??????K?Xhttp://localhost:8080/fedora/get/demo:10/DC?D???y??????K????y??????K?Xhttp://localhost:8080/fedora/get/demo:10/DC?D???y??????K????y??????K?Xhttp://localhost:8080/fedora/get/demo:10/DCD???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndexD???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndexD???y??????K????y??????K??http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndex?D???y??????K????y??????K?|http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/?D???y??????K????y??????K?|http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/?D???y??????K????y??????K?|http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/?D???y??????K????y??????K?lhttp://localhost:8080/fedora/getObjectHistory/demo:10?D???y??????K????y??????K?lhttp://localhost:8080/fedora/getObjectHistory/demo:10?D???y??????K????y??????K?lhttp://localhost:8080/fedora/getObjectHistory/demo:10?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K?~http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K?Zhttp://localhost:8080/fedora/mgmt/getNextPID?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K??http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo?D???y??????K????y??????K?Vhttp://localhost:8080/fedora/get/de&&mo:10?D???y??????K????y??????K?Lhttp://localhost:8080/fedora/risearchD???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5/D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1/D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1/D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1[D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail[D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail[D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail?D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5?D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5?D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5D???y??????K????y??????K??http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5?D???y??????K????y??????K?Hhttp://localhost:8080/fedora/reportFedora Test Plan??M ?0??Caolan70,?T??W??b ??l????4?\F	b->p
J?-?0 M-J
&?f?(p/+A-?Fedora Test Plan
Automated and Manual Tests
Version 2.1

AUTOMATED TESTS

Test Configuration Assignments
Windows 2000 and MYSQL4.0      (Bob)
Windows XP and MYSQL 3.23.x   (Sandy)
Solaris and MYSQL 4.1.7               (Ross)
Linux and McKoi                            (Eddie)
MAC OSX and Oracle 9i                (Chris)
Windows XP and McKoi                (Bill)

CAN WE EACH RUN ANT TEST ON OWN MACHINES?
Make sure to put all test objects in special directory.

AutoTest 0:  Build and Run  
(ant Test target   currently executes fedora-start)
Start with clean database and LLSTORE
Build server from source
Test new mysql-config script if using mysql
Start server with default configuration values

AutoTest 1: Bulk Ingest Test 
(ant test target   currently executes fedora-ingest-demos)
Ingest all demo objects (run fedora-ingest-demos.bat)
see: fedora.test.integration.TestIngestDemoObjects


AutoTest 2:  FOXML/METS Conversion Test  
(ant test target   run existing JUnit (modify server/test/FormatConversionTest.class)
Ingest FOXML test object obj_test_100.
API-A-LITE test (see AutoTest 3)   this FOXML test object will exercise all cases of datastreams and disseminators
Export as METS
Purge test:100
Ingest the METS export file
Repeat API-A-LITE test (see AutoTest 3) 
Export as FOXML
Compare original FOXML XML file to exported FOXML; note any loss or difference
Repeat API-A-LITE test (see AutoTest 3) 

AutoTest 3:  API-A-LITE Test via Default Disseminator 
see: fedora.test.integration.TestAPIALite
HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"(ant test target   add a bunch of wget executions)
HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"?This test can be done on one or more objects.  Example syntax below is for demo:10.
describeRepository
HYPERLINK "http://localhost:8080/fedora/describe"http://localhost:8080/fedora/describeHYPERLINK "http://localhost:8080/fedora/describe"
getObjectProfileHYPERLINK "http://localhost:8080/fedora/describe"
HYPERLINK "http://localhost:8080/fedora/get/demo:10"http://localhost:8080/fedora/get/demo:10HYPERLINK "http://localhost:8080/fedora/get/demo:10"
listDatastreams (via item index)HYPERLINK "http://localhost:8080/fedora/get/demo:10"
HYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex"http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndexHYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex"
getDatastreamDissemination  (for all datastreams)HYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewItemIndex"
HYPERLINK "http://localhost:8080/fedora/get/demo:10/DC"http://localhost:8080/fedora/get/demo:10/DCHYPERLINK "http://localhost:8080/fedora/get/demo:10/DC"
listMethods (dissemination index)HYPERLINK "http://localhost:8080/fedora/get/demo:10/DC"
HYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndex"http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndexHYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndex"
getDissemination (for all methods)HYPERLINK "http://localhost:8080/fedora/get/demo:10/fedora-system:3/viewMethodIndex"
HYPERLINK "http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/"http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/HYPERLINK "http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/"
getObjectHistoryHYPERLINK "http://localhost:8080/fedora/get/demo:10/demo:8/getThumbnail/"
HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10"http://localhost:8080/fedora/getObjectHistory/demo:10HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10"
run all of the above operations with the xml=true parameterHYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10"
HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"http://localhost:8080/fedora/getObjectHistory/demo:10?xml=trueHYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"HYPERLINK "http://localhost:8080/fedora/getObjectHistory/demo:10?xml=true"

AutoTest 4:  Dissemination Test  
(ant test target - write a new JUnit test class that configures all demo disseminations)
run all disseminations of all demo objects
figure out if failures are obscured via .jsp error pages (can we still detect that an HTTP error occurred via header?)


AutoTest 5:  API-M-LITE Test
see: fedora.test.integration.TestAPIMLite
HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"(ant test target = add new wget executions)
HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"?Run API-M-Lite method: getNextPID:  
run via URL (see syntax is in API-M-LITE)
HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"http://localhost:8080/fedora/mgmt/getNextPIDHYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID"
HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demoHYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"HYPERLINK "http://localhost:8080/fedora/mgmt/getNextPID?numpids=10&namespace=demo"

AutoTest 6:  PID Validation Test
should be a pretty straightforward adaptation of TestAPIALite (in fact, you might just add additional calls and assertXXX methods to the existing tests.
(ant test target   write a new JUnit test for this?)
Check PID validation via API-A-LITE
Try to access an object with a bad PID in the URL
HYPERLINK "http://localhost:8080/fedora/get/de&&mo:10"http://localhost:8080/fedora/get/de&&mo:10
Run listMethods using PID with bad syntax
Run listDatastreams using PID with bad syntax
Run getDatastreamDissemination using PID with bad syntax
Run getDissemination using PID with bad syntax
Run getObjectProfile using PID with bad syntax
Run getObjectHistory using PID with bad syntax

AutoTest 7: Resource Index Test
Eddie will refactor this to use the new testing framework. It does run via ant at the moment.
(ant test target   Eddie s JUnit test from last time?  Can he get it running outside eclipse)
(ant test target   add new wget executions for RI Search queries?)
RI Unit Testing
Configure:  Unit tests use the test.fcfg file in fedora/src/fcfg/server.  You don't need to replace fedora.fcfg. The two config files can co-exist. The RI unit tests use a ConfigurationLoader class to load test.fcfg. People should configure test.fcfg to use whatever test environment directories and datastores they would like to use for unit testing.
Run the unit tests in src/test/fedora/server/resourceIndex/.  You can run the unit tests easily within Eclipse: 
add src/test/junit as a source directory
Run AllTests as a JUnit Test.
Eddie is setting up an Ant target to run the tests outside Eclipse! 
The unit tests doe not require any test objects to be pre-ingested.  They will populate the RI behind the scenes using the RI test objects right out of the directory.  The unit tests will not ingest the objects, but will just read them and  add, modify, and delete triples in the triple store.  Unit tests will also query the RI.  They will do things for different index level options (on/off/on+method permutations).
DEPENDENCIES   NEW STUFF  (EDDIE define this)
RI Usability Testing
Ingest RI test objects from directory: src/test/fedora/server/resourceIndex/foxmlTestObjects
Run sample queries via new RI service interface
HYPERLINK "http://localhost:8080/fedora/risearch"http://localhost:8080/fedora/risearch
Chris will provide a set of files with sample queries.  

AutoTest 8: Command-line Utilities Test 
Incomplete. See: fedora.test.integration.TestCommandLineUtilities
(ant test target   add new wget executions; both http/s)
Run fedora-purge to purge demo:5
Run fedora-ingest to read demo:5
Run fedora-purge on all batch objects (demo:3010-3019)
Run fedora-batch-build on batch-demo objects
Run fedora-batch-ingest on batch-demo objects
Run fedora-purge on all batch objects
Run fedora-batch-buildingest to build/ingest batch-demo objects
Run fedora-purge on demo:32
Run fedora-modify on sample modify directives file
Run fedora-export to export demo:5
Run fedora-convert-demos on all demo objects (to show that it will change the host:port for relative repository URLs.  Look at demo:26 to verify results on a datastream URL.  Look at demo:13 to verify results in the WSDL datastream of a BMech object (in the wsdl:port element the http:address location for the saxon servlet should have the new host:port).
Did we finally resolve problem with spaces in path names when running command line utilities?

AutoTest 9: SoapClient Test  
see: fedora.test.integration.TestAPIA (note: this doesn't use SoapClient, but I'm assuming the point was to test API-A, not SoapClient)
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"(ant test target   add new wget executions)
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"?Test API-A (soapclient tests API-A as opposed to API-A-Lite)
getDatastreamDissemination
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1"http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1"
getDisseminationHYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDatastreamDissemination&PID_=demo:5&dsID_=DS1"
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail"http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnailHYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail"
listMethodsHYPERLINK "http://localhost:8080/soapclient/apia?action_=GetDissemination&PID_=demo:5&&bDefPID_=demo:1&methodName_=getThumbnail"
HYPERLINK "http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5"http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5HYPERLINK "http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5"
listDatastreamsHYPERLINK "http://localhost:8080/soapclient/apia?action_=ListMethods&PID_=demo:5"
HYPERLINK "http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5"http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5HYPERLINK "http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5"
getObjectProfileHYPERLINK "http://localhost:8080/soapclient/apia?action_=ListDatastreams&PID_=demo:5"
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5"http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5"
getObjectHistoryHYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectProfile&PID_=demo:5"
HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"HYPERLINK "http://localhost:8080/soapclient/apia?action_=GetObjectHistory&PID_=demo:5"
Test using timestamp options

AutoTest 10:  OLD OAI Test 
see: fedora.test.integration.TestOAIService
(ant test target   add new wget executions)
Start server
Run OAI request to list metadata formats 
http://localhost:8080/fedora/oai?verb=ListMetadataFormats
Run OAI request for all DC records
http://localhost:8080/fedora/oai?verb=ListRecords& metadataPrefix=oai_dc
Run OAI request for DC records updated as of particular date
http://localhost:8080/fedora/oai?verb=ListMetadataFormats&from2002-05-21& metadataPrefix=oai_dc
II.  MANUAL TESTS

Test 1:  New OAI Service Test 
DEFINE TESTS:  (CHRIS/EDDIE)

Test 2:   New Services in Framework
DEFINE TESTS:  (CHRIS/EDDIE)
DirIngest
PrOAI

Test 3:  Test Repository Rebuilder Utility (both RI and Dissemination DB)
DEFINE TESTS:  (BOB/EDDIE)

Test 4:  Secure Repository Test
DEFINE TESTS:  (BILL, others)

NOTE:  by default the repository has a set of baseline policies in the active policy directory (these are the  baseline approximating 2.0  set of policies).  Also, by default Fedora.fcfg has the enforce policies parameter set to ON (so that these baseline policies are enforced).
To secure the repository, reconfigure server as follows ( Guide:  How to Secure Your Repository )
Web.xml -- put web-secure.xml in place
so authN is on for all stuff
SSL redirect is active (http ?? https)
Fedora fcfg -- turn datastream mediation ON
Fedora fcfg   make sure enforce policies is ON (it should be by default)
Put the  BE services  policies in play
Use the BE Service configuration web form (which will automatically create  BE services  policies for backend services)
Are there other  secure repo  policies?
RUN TESTS:  (BILL, others define)
Changes to host/port and SSL/non-SSL
Policy enforcement tests
More& 

Test 5: SQL Reporting Test

Bring up reporting interface at HYPERLINK "http://localhost:8080/fedora/report"http://localhost:8080/fedora/report
Try various combinations of options

Test 6:  API-M Test via Fedo??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ra Administrator
note that this should be a test of the admin gui more than a test of API-A/M. API-A/M tests should move into the appropriate unit test.
File/New
Create new object (no datastreams and no disseminators)
Add datastream and disseminator
Save modifications
Run GetObjectXML and review results
API-A test for object
Item index   get datastreams
Dissemination Index   run all disseminations
File/Open Object (object editor changes)
Add datastream
Purge datastream   full, as of date
Modify datastream   versioning
Add disseminator
Purge disseminator   full, as of date
Modify disseminator
Add-modify-delete different sequences
Interplay between radio buttons, drop downs   different combos
Modify MIME type and formatURI
Disseminate via web with date-time stamps
getDissemination
getDatastreamDissemination
listmethods
listDatastreams
getObjectprofile
Use getObjectHistory to verify change dates are reflected in object history
File/Ingest & Export (round trips) 
Export all objects to directory as FOXML; Purge all objects; Ingest all from directory
Export a set of objects as METS; Purge objects; Ingest them back in from METS export files.
Export one object to file; Ingest one from file
Export demo:26 (which as relative repository URL for ds location) as FOXML and select the  migrate  export context.  View export XML to make sure you see  fedora.local.server  in ds location. 
Export demo:26 as FOXML in the  public  export context.  View export XML to make sure you see the actual host:port of the repository in ds location.  Also ensure that the FEDORA_URI attribute appears on the object root element and on each datastream.  The FEDORA_URI only shows up on public export files.
File/Purge & View Object XML
Run ViewObjectXML and examine results 
Run Purge
Purge an existing demo object
Check SQL database for any artifacts of the object
Try to disseminate purged object; note proper error msg
Re-ingest and disseminate the object
Change Repository
Connect to another repository of same version number
Run Repository search
Run ViewObjectXML on selected objects

Tools/Search
Run Search/Browse Repository test
No restrictions   confirm all demo objects appear
Bang on search options for single and sets of objects
Tools/Batch
Run Batch Build on batch-demo objects (METS and FOXML)
Run Batch Ingest
API-A Search via web interface (see that all batch objects are there)
API-A test for each object
Item index   get datastreams
Dissemination Index   run all disseminations
Run File/Purge on all batch objects
Run Batch ingest on METS and FOXML batch demo objects
Run Batch and Ingest on batch-demo objects
Tools/Batch/Modify
Validate sample directives file(dist/client/demo/batch-demo/batch-modify-directives.xml)
Process modify directives file
Use File/ObjectEditor and File/ViewObjectXML to verify modifications in object
Try adhoc set of modify-directives w/ and w/out schema errors to test validation error checking
Validation Test (with FOXML test objects) 
Via Administrator, ingest FOXML test objects from the directory: src/test/fedora/server/validation/foxmlTestObjects
Review the ingest log file for expected failure messages:
Bad PID -  test:101 (expect fail)
Bad object type   test:102  (NOTE! This shows a bug in the ingest from directory option which will ignore files that don t have valid object types already!  This will fail only if you ingest it as a single file.)
Bad BDef (does not exist)   test:103 (expect fail)
Bad BMech (does not exist)   test:104 (expect fail)
Bad datastream id (too long)   test:105 (expect fail)
Bad datastream control group   test:106 (expect fail)
Bad inline XML (malformed)   test:107 (expect fail)
Bad disseminator binding to datastream   test:108 (expect fail)
Bad URL on M datastream   test:109 (expect fail)
Bad date format on object created date   test:110 (NOTE! This shows a bug in the lack of date validation.  Unfortunately, it  ingests successfully.)
Missing object type property   test:111 (NOTE! Same problem as test b)
NOTE!  This test shows how ugly the messages from XML Schema validation are.  In the previous releases we had much more Schematron validation since the METS XML schema did not enforce Fedora rules.  Now that FOXML enforces most of what we need, we don t get pretty messages anymore.  We need to consider if we want redundant Schematron rules so the user gets a better set of error messages!
BDef/BMech Builder Test
1.  Purge a bdef, bmech, and related objects
Create BDef and Save + Ingest
Create BMech and Save + Ingest
Test particular new features:
new DC entry table
new Service Profile Tab
new selection of BDef contract
new auto-load of BDef method definitions in Methods Tab
new auto-load of Datastream binding info in Datastreams Tab
Ingest data objects that use new BDef and BMech
API-A test for each object (BDef, BMech, data object)
a. Item index   get datastreams
b. Examine new service profile datastream
c. Dissemination Index   run all disseminations

Test 7: Server Re-Configuration Test
 See fedora.test.integration.TestFedoraConfigurations
Essentially: 
identify what tests should be run
create a properties file for the different configuration
ShutdownServer /ChangeConfigVars /StartServer /Test
Test different configurations of retainPID in fedora.fcfg
Blank
*
specific PID namespaces
Test different configurations of Resource Index
Test change of host and port to see if about translations  local.fedora.server  in FOXML.

Test 8:  Repository Migration Test
(note:  migration is not necessary from 2.0 to 2.1)
(test migration from 1.2.1 to 2.1 since this should work since there are no db schema changes and no foxml schema changes.)

Install empty new repository
Apply patch #2 to an existing 1.2.1 repository (see: /fedora/patch/1.2.1/patch2/)
Restart 1.2.1 repository 
Start 2.1 repository configured with different host:port than 1.2.1 repository
2.1 Administrator - File/Ingest/Objects by Type/FromRepository  (these are METS)
2.1 API-A Search via web interface (see that all demo objects are there)
Examine FOXML for demo:10 for METS-to-FOXML lossiness.  There should be FORMAT_URIs on X datastreams preserving the METS metadata section types (descMD, techMD, rightsMD), and a RELS-INT datastream preserving relationships between datastreams that were specified using METS ADMID and DMDID attributes.
2.1 API-A-LITE test for selected objects  (see AutoTest 3)


Test 9: Miscellaneous

1. Fedora Schemas: eyeball new schema locations on API-A outputs
2. Concurrent Ingest : (two ingests of many objects run at same point in time)
a.  run ingest script via command line 
b. simultaneously, run ingest from directory via Admin GUI

"Xpr?????.???B<	v	x	?	*
b
?
?
?
T2Nn????4
?
?
?z???dfhjl??????????????ǽǶ????????ң????????j?UjUUB*ph?5\Hh[??65
HhZ??56cHdhZ??
cHdhZ??56B*ph?5B*ph?65B*ph?65B*ph?65B*ph?>*CJ5aJ5ln
????<>@???????|~???????BDF??????`bdfhj???FHJL????????????????????????????????????????????????jLUjMUj?Uj?UjUjGUj?U0J%0J%cHdh[??j?U
cHdh[??j?UU5B*ph?cHdh[??;?VXZ\^`???(*,??????TVXZ\^
???FHJL??<>@BDF???VXZ????  ? ? ? ? ? ? 4!??????????????????????????????????????????????j?Uj?Uj?Uj?Uj?
Uj?Uj?U
cHdh[??jU0J%0J%cHdh[??jJ
UUjK	U=4!6!8!?!?!?!("*","."?"?"*#,#.#0#2#4#?#?#?#H$J$L$?$?$?$?$?$|%~%?%?%?%&&&& &?&?&?&?&?&P'R'T'V'X'?'?'?'?'?':(?(4*n*?????????????????????????????????????????????B*ph?5j?Uj?Uj?Uj?Uj?Uj?UjUj/U
cHdh[??jRU0J%0J%cHdh[??UjuU9n*?*?*?*h+j+l+n+?+?+l,n,p,r,t,?,---?-?-?-?-?-?-T.V.X.Z.\.?.?.?.?.?.D/F/H/J/L/?/?/?/?/?/406080:0<0?0?0?0?0????????????????????????????????????????jU"Uj?!Uj? Uj?Uj)Uj^U0J%0J%cHdh\??j?U
cHdh\??j?UB*ph?cHdh\??j?UUB*ph?5\Hh\??5?0?0?0Z1\1^1?1?1?1?2?2?2?2?2>3@3B3D3F3?3?3?3?3?3?4?4?4?4?4B5D5F5H5J5?5?5?5?5?5:6l7?7?8?8?8?8?8H9J9?;?;?<B=?=?????????????????????????????????????????B*ph?Hh$??0J%0J%j*U	B*ph?B*ph?Hh"??B*ph?5j)Uj(Uj'Uj&Uj%Uj$U0J%0J%cHdh\??j #UU5?=?EBF?F&G?G?G?G?G?G8H:H?HII?I?IJJBJ\J?J?J?JKLKrK?K?K?K$LtL?L?L?LM,MXM?M?PQ R"R$R?R?R?R?R?R?S?S?S?S?S?S??????????????????????ڨ?????????5B*ph?cHdh]??j?,Uj?+U\5B*ph?Hh^??5B*ph?55B*ph?Hh`??5B*ph?Hha??	B*ph?0J%0J%j?*UUaJ^JCJOJQJB*ph?56?S?T?T?T?T?TUFUHUJUV V"V?V?V?V?W?W?W?W?W?W?X?X?X?X?X?X?Y?Y?Y?Z?Z?Z?[?[?[?[?[?[?\?\?\?\?\?\z]|]~]^
^^?^?^?^?^?^?^x_z_|_~_???????????????????????????????????????????????jJ8UjM7UjP6Uj?4Uj?3Uj?2Uj1Uj?/U0J%0J%cHdh]??j?.U
cHdh]??Uj?-U=~_?_?_,`.`0`?`?`?`paratava?a?aDbFbHbJbLbNb?b?b?b?c?c?cBdDdFdHdjdldeeee e"e?e?e?effhfjfggggg?g?g?g?g?g~h?h?h?h?h2i??????????????????????????????????????????????j?BUjyAUjr@Ujk?Ujd>Uj]=UjV<UjQ;U
cHdh]??jL:U0J%0J%cHdh]??jG9UU<2i4i6i8i:i?i?i?i?i?i?j?j?j?j?j?jknk?k?k4l?l?l?m?m?n?n?n?n oZo\o?o?o?op?p?p?pqHqJquu:w?w?wxJxVx?x?x0y2y4y??????????????????????????????㡡?????????j?FUB*ph?6OJQJB*ph?65	>*5]]6]cHdh??
cHdh??B*ph?6]cHdh??B*ph?Hh??B*ph?55j?EUj?DUUj?CU64yzy|y?y"z0{?
?,?b?z?????T??&?$?0??(?؋?????8?F?F?Ġ??*?z???ڡ?J?|?~?Ĥ,?$?&???ܫ???4?????ެ?????????????????????????????????????????5Hh'??5Hh&??5Hh%??665]\56
Hh%??5U0J%0J%4"Xpr???h?(?????????~j
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??^??]??`?$
?
(?h^?h?]??`?(
&F??^???]??0?`?0?
?($a$$a$$a$(???.???B??	v	x	???????????{y
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?((
&F??^???]????`???
?
&F??^???]????`???
?
x	?	*
?
?
?
TN4
R
p
????????????
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
??^???]??`?
&F??^???]????`???
?p
?
?
?
z?l?????????????}i
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
????hN^?\N??????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?ND?? 0"2#?'?':(?(B)??????ywua
&F?8^?8?]????`???
?
?8^?8?]??`?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
B)0*2*4*n*?*?+?,-?0?5?5:6l7?78???????????????
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?8^?8?]????`???
?8?8L9?9?9n:?:*;?;?;??????s_]
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?$	^?$	?]????`???
?
&F??^???]????`???
?	?;?;?<B=?=?=?@?A?AB?B????????vb
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??^??]??`?$?^??]??`?$
?
?B?EBFlF&G?Gt?t?t????????????y
&F?p^?p?]??L?`?L?
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
?tuju?uJv:w?w?wx??????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?p^?p?]??L?`?L?
?xJxVxXx?x?x~y?y?y"z2{D{?{??????????k
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??^??]??`?$
?
&F??^???]????`???
?
&F??^???]????`???
??{?{|b|?|?|"}t}?}??????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??}?}~:~?~?~?~x???????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??
?,?b?z?????T?????????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F??^???]????`???
???J??b??F???·???????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
??????>?b?̉??D?F???????s_Q
??^???]??`?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?	F?`????t??????????????s_
&F?p^?p?]??L?`?L?
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F
??^???]????`???
?
&F??^???]????`???
???ތ?r???&?|???T???????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?@^?@?]????`???
?
&F?@^?@?]????`???
?
&F?p^?p?]??L?`?L?
?T???0??F?.????????????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?????^?ʕ6??????????????s_
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
???8?F?v?М?J???????????s_
&F?p^?p?]??L?`?L?
?
&F	?^??]????`???
?
&F	?^??]????`???
?
&F	?^??]????`???
?
&F	?^??]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
???ܝ????b?Ο?b? Ġ??????yk][
??^???]???`??
??^???]???`??
??^???]???`??
&F	?^??]????`???
?
&F	?^??]????`???
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
&F?p^?p?]??L?`?L?
?
Ġ?z???ڡL???(?4?8?h??????????m
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F?^??]????`???
?
&F?^??]????`???
?
h?ȣ|?~?Ĥ,?$?&?`??8?֧x???????????}i
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?x?
?f?ܫޫ?????.?~????????????????u
??^???]??`?
??^???]??`?
??^???]??`?
??^???]??`?
??^???]??`?
&F??^???]????`???
?
&F??^???]????`???
?
&F??^???]????`???
?*??/ ??=!??"??#??$??2P1?h3P(20Root Entry????????	?F@CompObj????jOle
????????1Table?????????2Data
????????????UGSummaryInformation(????????hWordDocument????????????C,????????????????




© 2015 - 2025 Weber Informatics LLC | Privacy Policy